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

[UPD] add training list and templates

parent 796b3cbb
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
# "security/ir.model.access.csv", # "security/ir.model.access.csv",
# datas # datas
# templates # templates
"templates/training_list.xml",
"templates/training_page.xml", "templates/training_page.xml",
# views # views
"views/training.xml", "views/training.xml",
......
...@@ -8,8 +8,26 @@ from odoo.addons.http_routing.models.ir_http import slug, unslug ...@@ -8,8 +8,26 @@ from odoo.addons.http_routing.models.ir_http import slug, unslug
class WebsitePartnerPage(http.Controller): class WebsitePartnerPage(http.Controller):
# ------------------------------------------------------
# Routes
# ------------------------------------------------------
@http.route(["/formation/liste"], type="http", auth="public", website=True)
def training_list(self, access_token=False, **post):
"""
Affiche la liste des formations
"""
training_ids = request.env["training.training"].sudo().search([
# ("is_published", "=", True),
# ("state", "in", ["2_broadcast", "3_confirmed"]),
])
values = {"training_ids": training_ids, "edit_page": False}
return request.render("website_training.training_list", values)
@http.route(["/formation/<training_id>"], type="http", auth="public", website=True) @http.route(["/formation/<training_id>"], type="http", auth="public", website=True)
def training_detail(self, training_id, access_token=False, **post): def training_detail(self, training_id, access_token=False, **post):
"""
Affiche le programme d'une formation en détail
"""
# TODO: gérer les access token # TODO: gérer les access token
current_slug = training_id current_slug = training_id
_, training_id = unslug(training_id) _, training_id = unslug(training_id)
......
...@@ -33,6 +33,14 @@ class Training(models.Model): ...@@ -33,6 +33,14 @@ class Training(models.Model):
training.website_id.domain, slug(training) training.website_id.domain, slug(training)
) )
def action_valid(self):
super(Training, self).action_valid()
self.update({"is_published": True})
def action_done(self):
super(Training, self).action_done()
self.update({"is_published": False})
def action_cancel(self): def action_cancel(self):
super(Training, self).action_cancel() super(Training, self).action_cancel()
if self.is_published: if self.is_published:
......
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="training_list" name="Formations">
<t t-call="website.layout">
<div id="wrap">
<div class="oe_structure" id="oe_structure_website_training_1"/>
<div class="container">
<div class="row my-3 py-3">
<h1>Liste des formations</h1>
<t t-foreach="training_ids" t-as="training">
<t t-call="website_training.training_card" />
</t>
</div>
</div>
<div class="oe_structure" id="oe_structure_website_training_2"/>
</div>
</t>
</template>
<template id="training_card" name="Training Card">
<div class="col-12">
<h5 class="text-center" t-field="training.program_id"/>
</div>
</template>
</odoo>
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<div class="oe_structure" id="oe_structure_website_training_1"/> <div class="oe_structure" id="oe_structure_website_training_1"/>
<div class="container"> <div class="container">
<div class="row my-3 py-3"> <div class="row my-3 py-3">
<t t-call="website_training.training_detail"></t> <t t-call="website_training.training_detail" />
</div> </div>
</div> </div>
<div class="oe_structure" id="oe_structure_website_training_2"/> <div class="oe_structure" id="oe_structure_website_training_2"/>
...@@ -15,15 +15,68 @@ ...@@ -15,15 +15,68 @@
</template> </template>
<template id="training_detail" name="Training Details"> <template id="training_detail" name="Training Details">
<div class="col-12 col-md-8"> <div class="col-12">
<h1 class="text-center" t-field="training.program_id"/> <h1 class="text-center" t-field="training.program_id"/>
<t t-if="training.program_id.objective">
<h3>Objectifs</h3> <!-- Données du programme -->
<p t-field="training.program_id.objective" /> <div t-if="training.program_id.objective" class="training-description-block">
</t> <h5>Objectifs de formation</h5>
<div t-field="training.program_id.objective" />
</div>
<div t-if="training.program_id.students_profile" class="training-description-block">
<h5>Public concerné</h5>
<div t-field="training.program_id.students_profile" />
</div>
<div t-if="training.program_id.prerequisites" class="training-description-block">
<h5>Pré-requis</h5>
<div t-field="training.program_id.prerequisites" />
</div>
<div t-if="training.program_id.method" class="training-description-block">
<h5>Principes et méthodes pédagogiques</h5>
<div t-field="training.program_id.method" />
</div>
<div t-if="training.program_id.evaluation" class="training-description-block">
<h5>Modalités d’évaluation des compétences</h5>
<div t-field="training.program_id.evaluation" />
</div>
<!-- Données de la formation -->
<div t-if="training.satisfaction_rating" class="training-description-block">
<h5>Modalités d’évaluation de la satisfaction</h5>
<div t-field="training.satisfaction_rating" />
</div>
<div t-if="training.training_contact" class="training-description-block">
<h5>Contacts</h5>
<div t-field="training.training_contact" />
</div> </div>
<div class="col-12 col-md-4" style="background-color: #F7F6F6;"> <div t-if="training.place_access" class="training-description-block">
<h3>Infos pratiques</h3> <h5>Accessibilité</h5>
<div t-field="training.place_access" />
</div>
<!-- Données du programme -->
<div t-if="training.program_id.description" class="training-description-block">
<h5>Programme de formation</h5>
<div t-field="training.program_id.description" />
</div>
<!-- Données de la formation -->
<div t-if="training.practical_info" class="training-description-block">
<h5>Informations pratiques et matériel requis</h5>
<div t-field="training.practical_info" />
</div>
<div t-if="training.other_info" class="training-description-block">
<h5>Informations complémentaires</h5>
<div t-field="training.other_info" />
</div>
<!-- Données de la société -->
<div t-if="training.company_id.performance_indicators" class="training-description-block">
<h5>Indicateurs de résultats</h5>
<div t-field="training.company_id.performance_indicators" />
</div>
</div> </div>
</template> </template>
</odoo> </odoo>
...@@ -19,8 +19,8 @@ ...@@ -19,8 +19,8 @@
</button> </button>
</xpath> </xpath>
<xpath expr="//field[@name='slot_count']" position="after"> <xpath expr="//field[@name='company_id']" position="after">
<field name="website_id"/> <field name="website_id" groups="base.group_no_one" />
<field name="website_url" widget="url" /> <field name="website_url" widget="url" />
</xpath> </xpath>
</field> </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