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