diff --git a/models/survey_user_input.py b/models/survey_user_input.py index dd6b6adc541e42b7b95fc46206c5d2c11ac95edf..9e10838c7bc152ff39a09e4c177db9c10ee46aa8 100644 --- a/models/survey_user_input.py +++ b/models/survey_user_input.py @@ -1,7 +1,7 @@ # Copyright 2019-2022 Le Filament (<https://le-filament.com>) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo import fields, models +from odoo import fields, models, api class SurveyUserInput(models.Model): @@ -16,7 +16,9 @@ class SurveyUserInput(models.Model): comodel_name="training.training", string="Formation", ondelete="cascade", + compute="_compute_training_id" ) + training_survey_type = fields.Selection( string="Type de questionnaire formation", related="survey_id.training_survey_type", @@ -29,10 +31,50 @@ class SurveyUserInput(models.Model): # ------------------------------------------------------ # Override ORM # ------------------------------------------------------ + def _mark_done(self): + """ + Hérite la fonction parente pour gérer les inscriptions aux formations au moment + de la validation du questionnaire + """ + super()._mark_done() + + student_model = self.env["training.student"].sudo() + + student_id = student_model.create( + { + "partner_id": self.partner_id.id, + "training_id": self.training_id, + "student_company": self.company, + } + ) + # Création de la réponse au sondage + answer_id = self.create( + { + "partner_id": self.partner_id.id, + "email": self.partner_id.email, + "nickname": self.partner_id.lastname, + "firstname": self.partner_id.firstname, + "company": self.company, + "survey_id": self.training_id.registration_survey_id.id, + "student_id": student_id.id, + "training_id": self.training_id.id, + } + ) + # ------------------------------------------------------ # Compute # ------------------------------------------------------ + @api.depends("survey_id") + def _compute_training_id(self): + + for user_input in self: + user_input.training_id = self.env['training.training'].search( + [ + ('registration_survey_id', '=', user_input.survey_id.id), + ('partner_id', '=', user_input.partner_id.id) + ] + ) # ------------------------------------------------------ # Buttons