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