Skip to content
Extraits de code Groupes Projets
Valider dff79150 rédigé par Benjamin - Le Filament's avatar Benjamin - Le Filament
Parcourir les fichiers

[ADD] student creation button from subscription answer

parent f39d8223
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
from werkzeug.urls import url_join from werkzeug.urls import url_join
from odoo import Command, fields, models from odoo import Command, fields, models
from odoo.exceptions import UserError
class SurveyUserInput(models.Model): class SurveyUserInput(models.Model):
...@@ -120,6 +121,21 @@ class SurveyUserInput(models.Model): ...@@ -120,6 +121,21 @@ class SurveyUserInput(models.Model):
self.ensure_one() self.ensure_one()
self.update({"state": "in_progress", "is_resent": True}) self.update({"state": "in_progress", "is_resent": True})
def action_create_student(self):
if self.student_id:
raise UserError("Un stagiaire est déjà associé à cette réponse")
if not self.training_id:
raise UserError(
"Impossible de créer le stagiaire, aucune formation "
"n'est associée à cette réponse"
)
if self.training_survey_type != "subscribe":
raise UserError(
"On ne peut créer un stagiaire qu'à partir d'une réponse "
"de questionnaire d'inscription"
)
self._create_student()
# ------------------------------------------------------ # ------------------------------------------------------
# Business method # Business method
# ------------------------------------------------------ # ------------------------------------------------------
......
...@@ -7,6 +7,14 @@ ...@@ -7,6 +7,14 @@
<field name="inherit_id" ref="survey.survey_user_input_view_form" /> <field name="inherit_id" ref="survey.survey_user_input_view_form" />
<field name="priority">60</field> <field name="priority">60</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//header" position="inside">
<button
name="action_create_student"
type="object"
string="ObjectButton"
attrs="{'invisible': ['|', '|', ('student_id', '!=', False), ('training_id', '=', False), ('training_survey_type', '!=', 'subscribe')]}"
/>
</xpath>
<xpath expr="//sheet/group/group" position="inside"> <xpath expr="//sheet/group/group" position="inside">
<field name="comment" /> <field name="comment" />
<field <field
...@@ -38,6 +46,11 @@ ...@@ -38,6 +46,11 @@
name="training_id" name="training_id"
attrs="{'invisible': [('training_survey_type', '=', False)]}" attrs="{'invisible': [('training_survey_type', '=', False)]}"
/> />
<field
name="student_id"
readonly="1"
attrs="{'invisible': [('training_survey_type', '=', False)]}"
/>
<field <field
name="training_survey_type" name="training_survey_type"
attrs="{'invisible': [('training_survey_type', '=', False)]}" attrs="{'invisible': [('training_survey_type', '=', False)]}"
...@@ -46,6 +59,38 @@ ...@@ -46,6 +59,38 @@
</field> </field>
</record> </record>
<!-- Tree View -->
<record id="survey_user_input_training_tree" model="ir.ui.view">
<field name="name">survey.user_input.training.list</field>
<field name="model">survey.user_input</field>
<field name="inherit_id" ref="survey.survey_user_input_view_tree" />
<field name="priority">60</field>
<field name="arch" type="xml">
<xpath expr="//field[@name='scoring_percentage']" position="after">
<field
name="is_resent"
readonly="1"
optional="hide"
/>
<field
name="training_id"
attrs="{'invisible': [('training_survey_type', '=', False)]}"
optional="hide"
/>
<field
name="training_survey_type"
attrs="{'invisible': [('training_survey_type', '=', False)]}"
optional="hide"
/>
<field
name="student_id"
attrs="{'invisible': [('training_survey_type', '=', False)]}"
optional="hide"
/>
</xpath>
</field>
</record>
<!-- Kanban View --> <!-- Kanban View -->
<record id="survey_user_input_training_kanban" model="ir.ui.view"> <record id="survey_user_input_training_kanban" model="ir.ui.view">
<field name="name">survey.user_input.training.kanban</field> <field name="name">survey.user_input.training.kanban</field>
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter