From 7c255ccc8d3e5b6acb8f4333092666a29d4dac1c Mon Sep 17 00:00:00 2001
From: Juliana <juliana@le-filament.com>
Date: Tue, 15 Jun 2021 18:06:08 +0200
Subject: [PATCH] [ADD] Manage button save + add related fields on user_input
 and user_input_line + Mail auto

---
 __manifest__.py         |  1 +
 models/survey_survey.py | 24 ++++++++++++++++++++++++
 templates/layout.xml    |  3 +--
 views/subtype_views.xml | 12 ++++++++++++
 views/survey_views.xml  |  5 +++++
 5 files changed, 43 insertions(+), 2 deletions(-)
 create mode 100644 views/subtype_views.xml

diff --git a/__manifest__.py b/__manifest__.py
index e58fa39..73bb0b4 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -11,5 +11,6 @@
         'templates/assets.xml',
         'templates/layout.xml',
         'views/survey_views.xml',
+        'views/subtype_views.xml',
     ],
 }
diff --git a/models/survey_survey.py b/models/survey_survey.py
index f55ede5..e5e0fca 100644
--- a/models/survey_survey.py
+++ b/models/survey_survey.py
@@ -28,6 +28,15 @@ class Survey(models.Model):
     background_image = fields.Binary('Image de fond')
     type_id = fields.Many2one('survey.type', string="Type", required=True)
     product_id = fields.Many2one('survey.product', string="Produit", required=True)
+    stage_id = fields.Many2one('survey.stage', track_visibility='onchange')
+    is_button_display = fields.Boolean("Afficher le bouton enregistrer")
+    is_mail_auto = fields.Boolean("Envoi du mail automatique")
+
+    def _track_subtype(self, init_values):
+        self.ensure_one()
+        if (('stage_id' in init_values) and (self.stage_id.name == "Fermé")):
+            return 'ethikis_survey.survey_state_change'
+        return super(Survey, self)._track_subtype(init_values)
 
 
 class SurveyQuestion(models.Model):
@@ -46,9 +55,24 @@ class SurveyLabel(models.Model):
     num_question = fields.Char("Numéro de question")
 
 
+class SurveyUserInputLine(models.Model):
+    _inherit = "survey.user_input"
+
+    stage_id = fields.Many2one('survey.stage', string="Etape du sondage", related='survey_id.stage_id', store=True, readonly=False)
+
+    @api.onchange('state')
+    def on_change_state(self):
+        if self.state == 'done':
+            if self.survey_id.is_mail_auto:
+                return
+                # Envoi du mail automatique
+
+
 class SurveyUserInput(models.Model):
     _inherit = "survey.user_input"
 
+    stage_id = fields.Many2one('survey.stage', string="Etape du sondage", related='survey_id.stage_id', store=True, readonly=False)
+
     @api.multi
     def action_reopen_survey(self):
         """ Passer le sondage à state=skip """
diff --git a/templates/layout.xml b/templates/layout.xml
index 690de14..3c98d7f 100644
--- a/templates/layout.xml
+++ b/templates/layout.xml
@@ -149,7 +149,7 @@
             <xpath expr="//form//div[@class='text-center mt16 mb16']" position="replace">
                 <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="save_quit">Save or continue</button>
+                    <button t-if="not last and survey.is_button_display" type="submit" class="btn ethikis-btn-blue" name="button_submit" value="save_quit">Save or continue</button>
                     <button t-if="not last" type="submit" class="btn ethikis-btn-blue" name="button_submit" value="next">Next page</button>
                     <button t-if="last" type="submit" class="btn ethikis-btn-blue" name="button_submit" value="finish">Submit survey</button>
                 </div>
@@ -184,7 +184,6 @@
                             <div t-if='survey.quizz_mode'>You scored <t t-esc="user_input.quizz_score" /> points.</div>
                             <div><a class="final_links" t-att-href="'/survey/print/%s/%s' % (slug(survey), token)">Check answers</a></div>
                             <div><a class="final_links" href="https://longtimelabel.com">Know more about LONGTIME</a></div>
-                            <div><a class="final_links" href="https://ethikis.com">Our ethical tools</a></div>
                         </div>
                     </div>
                 </div>
diff --git a/views/subtype_views.xml b/views/subtype_views.xml
new file mode 100644
index 0000000..34c9264
--- /dev/null
+++ b/views/subtype_views.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!-- Copyright 2021 Le Filament
+     License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
+
+<odoo>
+	<record id="survey_state_change" model="mail.message.subtype">
+	    <field name="name">Suivi du sondage</field>
+	    <field name="res_model">survey.survey</field>
+	    <field name="default" eval="True"/>
+	    <field name="description">Suivi du sondage</field>
+	</record>
+</odoo>
\ No newline at end of file
diff --git a/views/survey_views.xml b/views/survey_views.xml
index a3a1687..030cc1f 100644
--- a/views/survey_views.xml
+++ b/views/survey_views.xml
@@ -36,6 +36,11 @@
                 </page>
             </xpath>
 
+            <xpath expr="//notebook//page//group//field[@name='users_can_go_back']" position="after">
+                <field name="is_button_display" />
+                <field name="is_mail_auto" />
+            </xpath>
+
             <xpath expr="//div[hasclass('oe_title')]" position="after">
                 <group>
                     <field name="product_id" />
-- 
GitLab