Nouveaux attributs par élément (svg_markup/width/border_radius/bold/ uppercase, tous vides ou False par défaut = comportement historique inchangé), réglables depuis le panneau Propriétés — même esprit que bold/align/color déjà présents sur titre/paragraphe. Fixer une largeur implique toujours de sortir de l'étirement pleine largeur par défaut (align-self:flex-start posé automatiquement avec elle). Le kicker "Module obligatoire" du thème Sécurité Incendie s'en sert maintenant (icône flamme, largeur au contenu, arrondi complet, gras, majuscules) pour être conforme à la maquette d'origine — la puce décorative CSS générique qui la remplaçait disparaît du thème. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
216 lines
8.8 KiB
Python
216 lines
8.8 KiB
Python
"""Contenu de démonstration du thème "Sécurité Incendie" (voir
|
|
theme_catalog.py) — vraie curriculum de formation, jamais du texte de
|
|
remplissage (voir CLAUDE.md, artifact-design : "Build with real content
|
|
throughout, never lorem"). Un support qui applique ce thème en mode
|
|
"utiliser le contenu du modèle" (voir routes/document/
|
|
document_theme_apply.py) reçoit EXACTEMENT ces pages, entièrement
|
|
modifiables ensuite comme n'importe quel contenu créé à la main."""
|
|
|
|
from typing import Any
|
|
|
|
SECURITE_INCENDIE_SEED_PAGES: list[dict[str, Any]] = [
|
|
# Page 1 — Titre (contenu centré verticalement, comme une page de
|
|
# garde — retour utilisateur du 24/09/2026)
|
|
{
|
|
"vertical_align": "center",
|
|
"blocks": [
|
|
{
|
|
"kind": "badge",
|
|
"attributes": {
|
|
"content": "Module obligatoire",
|
|
"svg_markup": (
|
|
'<svg viewBox="0 0 24 24" fill="currentColor">'
|
|
'<path d="M12 2C9 6 6 9 6 13a6 6 0 0 0 12 0c0-2-1-3.5-2-5 '
|
|
'.3 2-.7 3-1.5 2.3C15.5 9 15 6 12 2z"/></svg>'
|
|
),
|
|
"width": "fit-content",
|
|
"border_radius": "999px",
|
|
"bold": True,
|
|
"uppercase": True,
|
|
},
|
|
},
|
|
{"kind": "titre", "attributes": {"content": "Formation Sécurité Incendie", "style": "titre1"}},
|
|
{
|
|
"kind": "paragraphe",
|
|
"attributes": {
|
|
"content": (
|
|
"Reconnaître les risques, réagir dans les 3 premières minutes, protéger les "
|
|
"personnes autour de vous. Durée : 25 min · à renouveler tous les 24 mois."
|
|
),
|
|
"max_width": "60ch",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
# Page 2 — Objectifs
|
|
{
|
|
"blocks": [
|
|
{"kind": "titre", "attributes": {"content": "À l'issue de ce module, vous saurez", "style": "titre2"}},
|
|
{
|
|
"kind": "liste_puces",
|
|
"attributes": {
|
|
"items": [
|
|
"Identifier les causes principales d'un départ de feu sur un poste de travail",
|
|
"Choisir le bon type d'extincteur selon la classe de feu rencontrée",
|
|
"Déclencher l'alarme et évacuer en moins de 3 minutes",
|
|
]
|
|
},
|
|
},
|
|
{
|
|
"kind": "badge",
|
|
"attributes": {
|
|
"content": (
|
|
"Un feu peut doubler de volume toutes les 30 secondes — la rapidité de "
|
|
"réaction compte autant que le geste."
|
|
)
|
|
},
|
|
},
|
|
],
|
|
},
|
|
# Page 3 — Classes de feu
|
|
{
|
|
"blocks": [
|
|
{"kind": "titre", "attributes": {"content": "Les 5 classes de feu", "style": "titre2"}},
|
|
{
|
|
"kind": "paragraphe",
|
|
"attributes": {
|
|
"content": (
|
|
"Chaque classe correspond à un combustible différent — le mauvais "
|
|
"extincteur peut aggraver l'incendie."
|
|
)
|
|
},
|
|
},
|
|
{
|
|
"kind": "row",
|
|
"attributes": {"gap": 10, "align": "stretch", "justify": "flex-start"},
|
|
"children": [
|
|
{
|
|
"kind": "carte",
|
|
"attributes": {"label": "A", "title": "Feux secs", "description": "Bois, papier, tissus"},
|
|
},
|
|
{
|
|
"kind": "carte",
|
|
"attributes": {"label": "B", "title": "Liquides", "description": "Essence, solvants"},
|
|
},
|
|
{"kind": "carte", "attributes": {"label": "C", "title": "Gaz", "description": "Butane, propane"}},
|
|
{
|
|
"kind": "carte",
|
|
"attributes": {"label": "D", "title": "Métaux", "description": "Sodium, magnésium"},
|
|
},
|
|
{
|
|
"kind": "carte",
|
|
"attributes": {"label": "F", "title": "Huiles", "description": "Friteuses, graisses"},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
"kind": "badge",
|
|
"attributes": {
|
|
"content": (
|
|
"⚠ Un feu électrique n'est pas une classe à part : coupez toujours le "
|
|
"courant avant d'intervenir."
|
|
)
|
|
},
|
|
},
|
|
],
|
|
},
|
|
# Page 4 — Méthode P.A.S.S.
|
|
{
|
|
"blocks": [
|
|
{
|
|
"kind": "titre",
|
|
"attributes": {"content": "Utiliser un extincteur : la méthode P.A.S.S.", "style": "titre2"},
|
|
},
|
|
{
|
|
"kind": "liste_numerotee",
|
|
"attributes": {
|
|
"items": [
|
|
"Percuter — retirez la goupille de sécurité",
|
|
"Approcher — à 2 ou 3 mètres du foyer",
|
|
"Serrer — pressions courtes, pas en continu",
|
|
"Balayer — la base des flammes, gauche à droite",
|
|
]
|
|
},
|
|
},
|
|
{
|
|
"kind": "row",
|
|
"attributes": {"gap": 12, "align": "center", "justify": "space-between"},
|
|
"children": [
|
|
{
|
|
"kind": "badge",
|
|
"attributes": {"content": "⚠ Jamais d'eau sur un feu électrique ou une friteuse en feu."},
|
|
},
|
|
{"kind": "bouton", "attributes": {"label": "Fiche consignes", "target": ""}},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
# Page 5 — Évacuation
|
|
{
|
|
"blocks": [
|
|
{"kind": "titre", "attributes": {"content": "Consignes d'évacuation", "style": "titre2"}},
|
|
{
|
|
"kind": "paragraphe",
|
|
"attributes": {"content": "Dès que l'alarme retentit, l'évacuation est immédiate — aucune exception."},
|
|
},
|
|
{
|
|
"kind": "liste_numerotee",
|
|
"attributes": {
|
|
"items": [
|
|
"Cessez toute activité, laissez vos affaires sur place",
|
|
"Suivez le fléchage vers la sortie la plus proche, jamais l'ascenseur",
|
|
"Rejoignez le point de rassemblement, attendez l'appel de votre nom",
|
|
"Ne retournez jamais à l'intérieur avant le signal du responsable",
|
|
]
|
|
},
|
|
},
|
|
],
|
|
},
|
|
# Page 6 — Quiz (SEUL sur sa page : règle du moteur, voir
|
|
# routes/document/document_element_add.py — respectée ici dès la
|
|
# conception du contenu-seed, jamais contournée).
|
|
{
|
|
"blocks": [
|
|
{
|
|
"kind": "quiz",
|
|
"attributes": {
|
|
"theme_color": "#c8102e",
|
|
"timer_enabled": False,
|
|
"timer_seconds": 30,
|
|
"questions": [
|
|
{
|
|
"text": (
|
|
"Quelle classe de feu concerne les liquides inflammables comme "
|
|
"l'essence ou les solvants ?"
|
|
),
|
|
"choices": ["Classe A", "Classe B", "Classe D"],
|
|
"correct_index": 1,
|
|
"points": 10,
|
|
},
|
|
{
|
|
"text": "Quel est le premier geste de la méthode P.A.S.S. ?",
|
|
"choices": [
|
|
"Balayer la base des flammes",
|
|
"Percuter (retirer la goupille)",
|
|
"Approcher à 1 mètre",
|
|
],
|
|
"correct_index": 1,
|
|
"points": 10,
|
|
},
|
|
{
|
|
"text": "Que faire dès que l'alarme incendie retentit ?",
|
|
"choices": [
|
|
"Terminer sa tâche puis sortir",
|
|
"Prendre l'ascenseur pour aller plus vite",
|
|
"Évacuer immédiatement par les issues de secours",
|
|
],
|
|
"correct_index": 2,
|
|
"points": 10,
|
|
},
|
|
],
|
|
},
|
|
}
|
|
],
|
|
},
|
|
]
|