documentation_introduction top-level property
String
documentation_introduction
getter/setter pair
Implementation
var documentation_introduction = '''
📄 QuizModel - Documentation
QuizModel est la classe centrale représentant un quiz dans l'application.
Elle gère la logique de navigation, la collecte des réponses, le traitement des conditions d'affichage et la génération des données pour l'API.
🚀 Fonctions principales
| Fonction | Description |
| ----------------------------- | ------------------------------------------------------------------ |
| `initFromTemplate` | Initialise le modèle à partir d'un template JSON. |
| `initFromParticipationsDTO` | Initialise le modèle depuis un DTO de participation. |
| `computeDisplayableQuestions` | Recalcule les questions à afficher selon les conditions. |
| `fillQuizResponse` | Complète les réponses à partir de l'état stocké côté utilisateur. |
| `getPutQuizResponseInput` | Construit un DTO prêt à être envoyé à l'API. |
| `getNextButtonText` | Retourne le texte du bouton "Suivant" selon l'état actuel du quiz. |
| `handleNextStep` | Passe à l'étape suivante. |
| `handlePreviousStep` | Revient à l'étape précédente. |
| `handleNextQuestion` | Passe à la question suivante (mode question par question). |
| `handlePreviousQuestion` | Revient à la question précédente (mode question par question). |
| `getDisplayCondition` | Évalue les conditions d'affichage d'une question. |
📦 Propriétés
| Propriété | Description |
| ----------------------- | -------------------------------------------------------------- |
| `quizTitle` | Titre du quiz. |
| `quizSubTitle` | Sous-titre du quiz. |
| `steppingModeType` | Mode de navigation (`step_by_step` ou `question_by_question`). |
| `steps` | Liste des étapes (`QuizStepModel`). |
| `_userResponses` | Réponses collectées (clé: `questionKey`). |
| `stepperDisplayMode` | Mode d'affichage du stepper (horizontal, vertical, etc.). |
| `showBottomActions` | Affiche ou non les actions bas de page. |
| `theme` | Thématisation du quiz. |
| `dictionnary` | Dictionnaire de textes multilingues. |
| `introStepper` | Stepper d'introduction si applicable. |
| `timer` | Modèle de timer associé. |
| `_currentStepIndex` | Index de l'étape actuelle. |
| `_currentQuestionIndex` | Index de la question actuelle. |
🧩 Utilisation
///Initialiser un quiz depuis un template :
```dart
QuizModel quiz = QuizModel.initFromTemplate(myTemplateJson);
///Initialiser un quiz depuis une participation :
QuizModel quiz = QuizModel.initFromParticipationsDTO(participationDetailsDTO);
///Mettre à jour une réponse utilisateur :
quiz.updateResponse(questionKey: 'Q1', responseValue: 'My answer');
///Passer à la question suivante :
quiz.handleNextQuestion();
///Vérifier si on est à la toute première question :
if (quiz.isAtVeryFirstQuestion) {
// Actions
}
```
🔄 Gestion de la progression
Modes supportés
step_by_step : Navigation étape par étape.
question_by_question : Navigation question par question.
Les méthodes de navigation (handleNextStep, handleNextQuestion, etc.) sont adaptées selon le mode.
🎯 Conditions d'affichage
Les questions ou étapes peuvent avoir des conditions d'affichage dynamiques basées sur les réponses actuelles :
bool shouldDisplay = quiz.getDisplayCondition(myDisplayConditionModel);
🛡 Sécurité & Assertions
La classe vérifie systématiquement que les index ne soient pas hors limites et que les étapes ou questions existent avant toute manipulation.
⚠ Remarques importantes
Toujours appeler computeDisplayableQuestions() après avoir modifié les réponses pour recalculer les questions visibles.
Pour la restauration d'état via l'API, utiliser setCurrentStepFromApi et setCurrentStepQuestionFromApi.
''';