diff --git a/__init__.py b/__init__.py
index 4f121fde31e31b188e0b2a3b97a8e451341cf955..36c841aaf7f1bee5505046dc8f493b38060ed994 100644
--- a/__init__.py
+++ b/__init__.py
@@ -2,3 +2,4 @@
 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
 
 from . import models
+from . import controllers
diff --git a/controllers/__init__.py b/controllers/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..a676f817085c409e6659d0aef11f06ae9c2ff2f5
--- /dev/null
+++ b/controllers/__init__.py
@@ -0,0 +1,4 @@
+# © 2020 Le Filament (<http://www.le-filament.com>)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from . import main
diff --git a/controllers/main.py b/controllers/main.py
new file mode 100644
index 0000000000000000000000000000000000000000..87f423e8a6b7c1d49f850d4ca6ca5b4b24fa7f02
--- /dev/null
+++ b/controllers/main.py
@@ -0,0 +1,60 @@
+# © 2020 Le Filament (<https://www.le-filament.com>)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+import logging
+import json
+
+from odoo import http, SUPERUSER_ID
+from odoo.addons.survey.controllers.main import Survey
+from odoo.http import request
+
+_logger = logging.getLogger(__name__)
+
+
+class WebsiteSurveyExtend(Survey):
+
+    # TODO - Si possible : trouver une manière d'hériter plutôt que réécrire
+    # AJAX submission of a page
+    @http.route(['/survey/submit/<model("survey.survey"):survey>'], type='http', methods=['POST'], auth='public', website=True)
+    def submit(self, survey, **post):
+        _logger.debug('Incoming data: %s', post)
+        page_id = int(post['page_id'])
+        questions = request.env['survey.question'].search([('page_id', '=', page_id)])
+
+        # Answer validation
+        errors = {}
+        for question in questions:
+            answer_tag = "%s_%s_%s" % (survey.id, page_id, question.id)
+            errors.update(question.validate_question(post, answer_tag))
+
+        ret = {}
+        if len(errors):
+            # Return errors messages to webpage
+            ret['errors'] = errors
+        else:
+            # Store answers into database
+            try:
+                user_input = request.env['survey.user_input'].sudo().search([('token', '=', post['token'])], limit=1)
+            except KeyError:  # Invalid token
+                return request.render("survey.403", {'survey': survey})
+            user_id = request.env.user.id if user_input.type != 'link' else SUPERUSER_ID
+
+            for question in questions:
+                answer_tag = "%s_%s_%s" % (survey.id, page_id, question.id)
+                request.env['survey.user_input_line'].sudo(user=user_id).save_lines(user_input.id, question, post,
+                                                                                    answer_tag)
+            save_quit = post['button_submit'] == 'save_quit'
+            go_back = post['button_submit'] == 'previous'
+            next_page, _, last = request.env['survey.survey'].next_page(user_input, page_id, go_back=go_back)
+            vals = {'last_displayed_page_id': page_id}
+            if next_page is None and not go_back:
+                vals.update({'state': 'done'})
+            else:
+                vals.update({'state': 'skip'})
+            user_input.sudo(user=user_id).write(vals)
+            ret['redirect'] = '/survey/fill/%s/%s' % (survey.id, post['token'])
+            if go_back:
+                ret['redirect'] += '/prev'
+            if save_quit:
+                ret['redirect'] = 'https://longtimelabel.com/'
+        return json.dumps(ret)
diff --git a/templates/layout.xml b/templates/layout.xml
index 0ce5839ca18bc0c1e1d4190ee29e7ca97baa6571..68fd0cb8e748f23940a10c5553132ea1ebceae3d 100644
--- a/templates/layout.xml
+++ b/templates/layout.xml
@@ -160,7 +160,8 @@
                     </t>
                     <div class="text-right mt16 mb16 mr32">
                         <button t-if="survey.users_can_go_back and page_nr > 0" type="submit" class="btn ethikis-btn-green" name="button_submit" value="previous">Previous page</button>
-                        <button t-if="not last" type="submit" class="btn ethikis-btn-blue" name="button_submit" value="next">Save or continue</button>
+                        <button t-if="not last" type="submit" class="btn ethikis-btn-blue" name="button_submit" value="save_quit">Sauvegarder et quitter</button>
+                        <button t-if="not last" type="submit" class="btn ethikis-btn-blue" name="button_submit" value="next">Page suivante</button>
                         <button t-if="last" type="submit" class="btn ethikis-btn-blue" name="button_submit" value="finish">Submit survey</button>
                     </div>
                     <div class="float-left">