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 @@
# "security/ir.model.access.csv",
# datas
# templates
"templates/training_list.xml",
"templates/training_page.xml",
# views
"views/training.xml",
......
......@@ -8,8 +8,26 @@ from odoo.addons.http_routing.models.ir_http import slug, unslug
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)
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
current_slug = training_id
_, training_id = unslug(training_id)
......
......@@ -33,6 +33,14 @@ class Training(models.Model):
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):
super(Training, self).action_cancel()
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 @@
<div class="oe_structure" id="oe_structure_website_training_1"/>
<div class="container">
<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 class="oe_structure" id="oe_structure_website_training_2"/>
......@@ -15,15 +15,68 @@
</template>
<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"/>
<t t-if="training.program_id.objective">
<h3>Objectifs</h3>
<p t-field="training.program_id.objective" />
</t>
<!-- Données du programme -->
<div t-if="training.program_id.objective" class="training-description-block">
<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 class="col-12 col-md-4" style="background-color: #F7F6F6;">
<h3>Infos pratiques</h3>
<div t-if="training.place_access" class="training-description-block">
<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>
</template>
</odoo>
......@@ -19,8 +19,8 @@
</button>
</xpath>
<xpath expr="//field[@name='slot_count']" position="after">
<field name="website_id"/>
<xpath expr="//field[@name='company_id']" position="after">
<field name="website_id" groups="base.group_no_one" />
<field name="website_url" widget="url" />
</xpath>
</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