Implemente le mini-jeu Scenario (situation, choix, consequences)
Build and deploy / test-python (push) Failing after 59s
Build and deploy / test-js (push) Successful in 50s
Build and deploy / lint-python (push) Failing after 59s
Build and deploy / lint-js (push) Failing after 1m1s
Build and deploy / build-and-push (push) Skipped
Build and deploy / deploy (push) Skipped
Build and deploy / sonarqube (push) Failing after 59s

Cinquieme mini-jeu du support de formation : le createur ecrit une
situation initiale, definit 2 a 4 choix, indique lequel est le bon, et
redige la consequence de chaque choix. Plusieurs scenarios peuvent etre
crees, joues dans l'ordre d'ecriture (jamais melanges, contrairement a
Association/Memory/Mots meles : ce sont des mises en situation
sequentielles). En Apercu, l'apprenant lit la situation, choisit une
option, decouvre la consequence de SON choix et si c'etait le bon, puis
passe au scenario suivant. Comme Association/Memory/Mots meles, le
dernier scenario reste affiche une fois repondu : seul le bouton
Recommencer apparait, jamais un ecran de resultat separe (reserve au
Quiz). Reutilise les classes visuelles du Quiz (docQuizOptions/
docQuizFeedback/docQuizNextBar) plutot que de dupliquer ces regles.

Verifie via simulation DOM reelle (jsdom) : progression entre plusieurs
scenarios, choix correct/incorrect avec revelation de la bonne reponse,
comportement de fin de partie, panneau Proprietes (ajout/suppression de
scenario, changement du nombre de choix, selection du bon choix).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
william
2026-09-20 16:50:10 +02:00
co-authored by Claude Sonnet 5
parent d8be80ebd1
commit b2292de122
10 changed files with 669 additions and 23 deletions
+27 -10
View File
@@ -500,36 +500,40 @@ img.docImage {
color: var(--doc-muted);
}
/* ---- Quiz/Association/Memory/Mots mêlés : mini-jeux interactifs en Mode
Aperçu (voir docs/plan/maquettes/document-formation-web.html —
référence visuelle du Quiz). Masqués en édition (seul
.docMinigameBadge y est visible, voir plus haut) ; jamais les deux
visibles en même temps. ---- */
/* ---- Quiz/Association/Memory/Mots mêlés/Scénario : mini-jeux
interactifs en Mode Aperçu (voir docs/plan/maquettes/
document-formation-web.html — référence visuelle du Quiz). Masqués en
édition (seul .docMinigameBadge y est visible, voir plus haut) ;
jamais les deux visibles en même temps. ---- */
.docQuizPlayer,
.docAssocPlayer,
.docMemoryPlayer,
.docMotsPlayer {
.docMotsPlayer,
.docScenarioPlayer {
display: none;
}
.docEditor3.docEditor3--preview [data-kind="quiz"] .docMinigameBadge,
.docEditor3.docEditor3--preview [data-kind="association"] .docMinigameBadge,
.docEditor3.docEditor3--preview [data-kind="memory"] .docMinigameBadge,
.docEditor3.docEditor3--preview [data-kind="mots"] .docMinigameBadge {
.docEditor3.docEditor3--preview [data-kind="mots"] .docMinigameBadge,
.docEditor3.docEditor3--preview [data-kind="scenario"] .docMinigameBadge {
display: none;
}
.docEditor3.docEditor3--preview [data-kind="quiz"] .docQuizPlayer,
.docEditor3.docEditor3--preview [data-kind="association"] .docAssocPlayer,
.docEditor3.docEditor3--preview [data-kind="memory"] .docMemoryPlayer,
.docEditor3.docEditor3--preview [data-kind="mots"] .docMotsPlayer {
.docEditor3.docEditor3--preview [data-kind="mots"] .docMotsPlayer,
.docEditor3.docEditor3--preview [data-kind="scenario"] .docScenarioPlayer {
display: block;
}
.docEditor3.docEditor3--preview [data-kind="quiz"],
.docEditor3.docEditor3--preview [data-kind="association"],
.docEditor3.docEditor3--preview [data-kind="memory"],
.docEditor3.docEditor3--preview [data-kind="mots"] {
.docEditor3.docEditor3--preview [data-kind="mots"],
.docEditor3.docEditor3--preview [data-kind="scenario"] {
border: none;
background: transparent;
}
@@ -541,7 +545,9 @@ img.docImage {
.docEditor3.docEditor3--preview .docMemoryPlayer,
.docEditor3.docEditor3--preview .docMemoryPlayer *,
.docEditor3.docEditor3--preview .docMotsPlayer,
.docEditor3.docEditor3--preview .docMotsPlayer * {
.docEditor3.docEditor3--preview .docMotsPlayer *,
.docEditor3.docEditor3--preview .docScenarioPlayer,
.docEditor3.docEditor3--preview .docScenarioPlayer * {
/* .docEditor3--preview désactive pointer-events sur tout [data-element-id]
(voir plus bas) pour empêcher la sélection/le déplacement pendant
l'Aperçu — réactivé ici spécifiquement pour que ces mini-jeux restent
@@ -1312,6 +1318,17 @@ img.docImage {
flex: 1;
}
/* ---- Scénario : panneau Propriétés — chaque choix garde sa case "bon
choix"/son texte (.docQuizChoiceRow, réutilisé tel quel) ET, en plus,
sa conséquence en dessous (voir forgeDocRenderScenarioChoiceHtml,
static/document/js/document-editor.js) — un bloc de plus que le Quiz,
d'où ce conteneur dédié. ---- */
.docScenarioChoiceBlock {
display: flex;
flex-direction: column;
gap: 6px;
}
.docQuizAddBtn {
width: 100%;
justify-content: center;