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

[ADD] closed training & training max templates and redirections & add _create_student function

parent 45f11e15
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -19,7 +19,9 @@ ...@@ -19,7 +19,9 @@
"data/mail_subscription.xml", "data/mail_subscription.xml",
"data/mail_training_confirmation.xml", "data/mail_training_confirmation.xml",
# templates # templates
"templates/survey_closed.xml",
"templates/survey_duplicated_answer.xml", "templates/survey_duplicated_answer.xml",
"templates/survey_max_student.xml",
"templates/survey_template_management.xml", "templates/survey_template_management.xml",
# views # views
"views/res_company.xml", "views/res_company.xml",
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import logging import logging
from datetime import date
from odoo import http from odoo import http
from odoo.http import request from odoo.http import request
...@@ -42,7 +43,33 @@ class TrainingSurvey(Survey): ...@@ -42,7 +43,33 @@ class TrainingSurvey(Survey):
training_id = post.get("training_id") training_id = post.get("training_id")
if training_id: if training_id:
training = request.env["training.training"].browse(int(training_id)) training = request.env["training.training"].sudo().browse(int(training_id))
if training.date_limit and date.today() > training.date_limit:
return request.env["ir.qweb"]._render(
"training_survey.survey_closed",
{
"title": survey_sudo.title,
"training": training,
"website": training.website_id,
"main_object": training,
},
)
if (
training.nb_student_max > 0
and (
training.students_waiting_count + training.students_confirmed_count
)
>= training.nb_student_max
):
return request.env["ir.qweb"]._render(
"training_survey.survey_max_student",
{
"title": survey_sudo.title,
"training": training,
"website": training.website_id,
"main_object": training,
},
)
if training and training.registration_survey_id == survey_sudo: if training and training.registration_survey_id == survey_sudo:
answer_sudo.training_id = training answer_sudo.training_id = training
......
...@@ -91,32 +91,12 @@ class SurveyUserInput(models.Model): ...@@ -91,32 +91,12 @@ class SurveyUserInput(models.Model):
super()._mark_done() super()._mark_done()
# Pré-inscription du stagiaire # Pré-inscription du stagiaire
if ( student_id = self._create_student()
self.survey_id.survey_type == "training" if student_id:
and self.survey_id.training_survey_type == "subscribe" template_id = student_id.training_id.company_id._get_subscription_email()
and self.training_id
and not self.student_id
):
student_model = self.env["training.student"].sudo()
student_id = student_model.create(
{
"partner_id": self.partner_id.id if self.partner_id else None,
"training_id": self.training_id.id,
"student_company": self.company,
"student_firstname": self.firstname,
"student_lastname": self.nickname,
"email": self.email,
}
)
# Mise à jour de la réponse au sondage et inscription
self.student_id = student_id
template_id = (
self.student_id.training_id.company_id._get_subscription_email()
)
if template_id: if template_id:
template_id.send_mail( template_id.send_mail(
self.student_id.id, student_id.id,
email_layout_xmlid="training.mail_training_layout", email_layout_xmlid="training.mail_training_layout",
) )
...@@ -193,3 +173,26 @@ class SurveyUserInput(models.Model): ...@@ -193,3 +173,26 @@ class SurveyUserInput(models.Model):
] ]
} }
) )
def _create_student(self):
self.ensure_one()
if (
self.survey_id.survey_type == "training"
and self.survey_id.training_survey_type == "subscribe"
and self.training_id
and not self.student_id
):
student_model = self.env["training.student"].sudo()
student_id = student_model.create(
{
"partner_id": self.partner_id.id if self.partner_id else None,
"training_id": self.training_id.id,
"student_company": self.company,
"student_firstname": self.firstname,
"student_lastname": self.nickname,
"email": self.email,
}
)
# Mise à jour de la réponse au sondage et inscription
self.student_id = student_id
return student_id
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<template id="survey_closed" name="Survey: Training subscription closed">
<t t-call="web.frontend_layout">
<t t-set="html_data" t-value="{'style': 'height: 100%;'}"/>
<t t-set="no_header" t-value="True"/>
<t t-set="no_footer" t-value="True"/>
<div class="wrap d-flex align-items-center h-100">
<div class="container">
<div class="fs-3 fw-light">
Les inscriptions à la formation <span t-out="training.display_name" /> sont closes.
</div>
</div>
</div>
</t>
</template>
</odoo>
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<template id="survey_max_student" name="Survey: Max Student">
<t t-call="web.frontend_layout">
<t t-set="html_data" t-value="{'style': 'height: 100%;'}"/>
<t t-set="no_header" t-value="True"/>
<t t-set="no_footer" t-value="True"/>
<div class="wrap d-flex align-items-center h-100">
<div class="container">
<div class="fs-3 fw-light">
Le nombre de participants maximum à la formation <span t-out="training.display_name" /> a été atteint.
</div>
</div>
</div>
</t>
</template>
</odoo>
...@@ -143,13 +143,17 @@ ...@@ -143,13 +143,17 @@
<!-- Actions --> <!-- Actions -->
<!-- Inherit parent action for domain --> <!-- Inherit parent action for domain -->
<record model="ir.actions.act_window" id="survey.action_survey_form"> <record model="ir.actions.act_window" id="survey.action_survey_form">
<field name="domain">[("survey_type", "=", False), ("company_id", "in", allowed_company_ids)]</field> <field
name="domain"
>[("survey_type", "=", False), ("company_id", "in", allowed_company_ids)]</field>
</record> </record>
<!-- New Actions --> <!-- New Actions -->
<record model="ir.actions.act_window" id="action_training_survey"> <record model="ir.actions.act_window" id="action_training_survey">
<field name="name">Questionnaires formation</field> <field name="name">Questionnaires formation</field>
<field name="res_model">survey.survey</field> <field name="res_model">survey.survey</field>
<field name="domain">[("survey_type", "=", "training"), ("company_id", "in", allowed_company_ids)]</field> <field
name="domain"
>[("survey_type", "=", "training"), ("company_id", "in", allowed_company_ids)]</field>
<field name="view_mode">kanban,tree,form,activity</field> <field name="view_mode">kanban,tree,form,activity</field>
<field name="context">{"default_survey_type": "training"}</field> <field name="context">{"default_survey_type": "training"}</field>
<field name="search_view_id" ref="training_survey_search" /> <field name="search_view_id" ref="training_survey_search" />
......
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