From 317a5bc22235afd10a3dd185d7391726531a81cc Mon Sep 17 00:00:00 2001
From: Julien Ortet <julien@le-filament.com>
Date: Wed, 21 Aug 2024 14:56:57 +0200
Subject: [PATCH] [WIP] tentative de pre inscription
---
models/survey_user_input.py | 44 ++++++++++++++++++++++++++++++++++++-
1 file changed, 43 insertions(+), 1 deletion(-)
diff --git a/models/survey_user_input.py b/models/survey_user_input.py
index dd6b6ad..9e10838 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
--
GitLab