diff --git a/data/mail_aect.xml b/data/mail_aect.xml index 918b6d328a27b62f39d881f84c3c81238331abdb..ccb15aa22389f81514cc00dda53d7cdaee8c3800 100644 --- a/data/mail_aect.xml +++ b/data/mail_aect.xml @@ -30,7 +30,7 @@ </ul> </t> <br /> - je t’adresse le lien vers le formulaire d'autoévaluation des compétences terminales que tu voudras bien renseigner : + je t’adresse les liens vers deux formulaires en ligne que tu voudras bien renseigner : <br /> <a class="btn btn-info" t-att-href="env.context.get('survey_user_input').get_start_url()">Autoévaluation des compétences terminales</a> <br /><br /> diff --git a/models/training.py b/models/training.py index e14f705f801a63ee818e1d6ba3c882edbbf335ec..f0716f730be93813a0070d3db119742768ba42dd 100644 --- a/models/training.py +++ b/models/training.py @@ -68,6 +68,34 @@ class Training(models.Model): "context": {"create": 0, "delete": 0}, } + def action_send_aect(self): + self.ensure_one() + aect_template_id = self.env.ref("training_survey.mail_template_training_aect") + student_ids = self.student_ids.filtered(lambda s: s.state == "confirmed") + for student in student_ids: + student._create_and_send_survey( + self.aect_survey_id, aect_template_id + ) + self.message_post( + subject="Questionnaire AECT envoyé", + body=f"Participants : {', '.join(student_ids.mapped('partner_id.name'))}", + ) + + def action_send_satisfaction(self): + self.ensure_one() + satisfaction_template_id = self.env.ref( + "training_survey.mail_template_training_satisfaction" + ) + student_ids = self.student_ids.filtered(lambda s: s.state == "confirmed") + for student in student_ids: + student._create_and_send_survey( + self.satisfaction_survey_id, satisfaction_template_id + ) + self.message_post( + subject="Questionnaire de satisfaction envoyé", + body=f"Participants : {', '.join(student_ids.mapped('partner_id.name'))}", + ) + # ------------------------------------------------------ # Inherit parent # ------------------------------------------------------ diff --git a/models/training_student.py b/models/training_student.py index 316ac642aecd628b3a291f894fe377355cd85209..5f8207278975ab427c337914a5d3294a8c876b55 100644 --- a/models/training_student.py +++ b/models/training_student.py @@ -26,7 +26,7 @@ class TrainingStudent(models.Model): def _compute_aeci_sent(self): for student in self: aeci = student.student_survey_ids.filtered( - lambda ui: ui.survey_id.training_survey_type == "AECI" + lambda ui: ui.survey_id.training_survey_type == "aeci" ) student.aeci_sent = True if aeci else False @@ -52,26 +52,12 @@ class TrainingStudent(models.Model): self.training_id.program_id.aeci_survey_id, aeci_template_id ) - def action_create_aect(self): - aect_template_id = self.env.ref("training_survey.mail_template_training_aect") - self._create_and_send_survey( - self.training_id.program_id.aect_survey_id, aect_template_id - ) - - def action_create_satisfaction(self): - aect_template_id = self.env.ref( - "training_survey.mail_template_training_satisfaction" - ) - self._create_and_send_survey( - self.training_id.program_id.aect_survey_id, aect_template_id - ) - # ------------------------------------------------------ # Business methods # ------------------------------------------------------ def get_certification_name(self): self.ensure_one() - if self.training_id.training_type_id == self.env.ref("training_type_present"): + if self.training_id.training_type_id == self.env.ref("training.training_type_present"): return "Attestation de fin de formation" else: return "Certificat de réalisation" diff --git a/views/training.xml b/views/training.xml index f220faadd303caee3cb7f89838bf8a2f04cab2c9..ba1718f815ef4c5211f3976086818b6bf34a715f 100644 --- a/views/training.xml +++ b/views/training.xml @@ -6,6 +6,28 @@ <field name="model">training.training</field> <field name="inherit_id" ref="training.training_training_form" /> <field name="arch" type="xml"> + <xpath expr="//header" position="inside"> + <button + name="action_send_aect" + type="object" + icon="fa-question-circle-o" + class="btn-info" + confirm="Valider l'envoi des questionnaires AECT ?" + attrs="{'invisible': ['|', ('is_passed', '=', False), ('is_filled', '=', False)]}" + > + Envoyer les questionnaires AECT + </button> + <button + name="action_send_satisfaction" + type="object" + icon="fa-graduation-cap" + class="btn-info" + confirm="Valider l'envoi des certificats/attestations ?" + attrs="{'invisible': ['|', ('is_passed', '=', False), ('is_filled', '=', False)]}" + > + Envoyer certificats/attestations + </button> + </xpath> <xpath expr="//div[@name='button_box']" position="inside"> <button name="action_view_survey" @@ -19,15 +41,13 @@ <xpath expr="//notebook" position="inside"> <page string="Questionnaires" name="survey"> <group> - <group> - <field - name="satisfaction_survey_id" - options="{'no_create': 1, 'no_edit': 1}" - /> - <field name="registration_survey_id" /> - <field name="aeci_survey_id" /> - <field name="aect_survey_id" /> - </group> + <field + name="satisfaction_survey_id" + options="{'no_create': 1, 'no_edit': 1}" + /> + <field name="registration_survey_id" /> + <field name="aeci_survey_id" /> + <field name="aect_survey_id" /> </group> </page> </xpath> diff --git a/views/training_student.xml b/views/training_student.xml index b48e15f3d2c4d7825b765aa1b80a79aa5beae3dd..5d8088d764031d8d1c3d3fa3bfa1cdb74d47b87e 100644 --- a/views/training_student.xml +++ b/views/training_student.xml @@ -7,16 +7,6 @@ <field name="model">training.student</field> <field name="inherit_id" ref="training.training_student_form" /> <field name="arch" type="xml"> - <xpath expr="//header" position="inside"> - <field name="aeci_sent" invisible="1" /> - <button - name="action_create_aeci" - type="object" - string="Envoyer AECI" - class="btn-primary" - attrs="{'invisible': ['|', ('aeci_sent', '=', True), ('state', '!=', 'confirmed')]}" - /> - </xpath> <xpath expr="//div[@name='button_box']" position="inside"> <button name="action_view_survey" @@ -31,6 +21,28 @@ /> </button> </xpath> + + <xpath expr="//group" position="after"> + <notebook> + <page name="survey" string="Questionnaires"> + <field name="aeci_sent" invisible="1" /> + <button + name="action_create_aeci" + type="object" + string="Envoyer AECI" + class="btn-primary mb-4" + attrs="{'invisible': ['|', ('aeci_sent', '=', True), ('state', '!=', 'confirmed')]}" + /> + <field name="student_survey_ids" readonly="1"> + <tree> + <field name="create_date"/> + <field name="survey_id"/> + <field name="state"/> + </tree> + </field> + </page> + </notebook> + </xpath> </field> </record>