# Cahier journal — checklist de vérification manuelle

À exécuter après tout changement significatif au module cahier journal.

1. **Créer une séance** (tous champs) → apparaît dans la bonne case jour/heure, couleur
   bandeau correcte selon matière.
2. **Éditer une séance existante** → modale pré-remplie correctement (y compris cascade
   domaine/compétence déjà positionnée), sauvegarde reflète le changement.
3. **Dupliquer "lendemain"** un vendredi → nouvelle carte le lundi suivant (pas le samedi).
4. **Dupliquer "autre date"** → carte apparaît à la date choisie ; message de confirmation
   affiché dans tous les cas.
5. **Supprimer** → carte disparaît après double clic de confirmation, persistance vérifiée
   après rechargement de la page.
6. **Cascade référentiel** Matière→Domaine→Compétence → sélection matière filtre les
   domaines correspondants, idem domaine→compétence.
7. **Navigation semaine précédente/suivante** → dates et séances correspondantes chargées.
8. **Champs obligatoires vides** (Titre/Matière) → validation empêche la sauvegarde côté
   API, message d'erreur affiché dans la modale sans fermeture ni perte de saisie.

## Emploi du temps

À exécuter après tout changement significatif au module emploi du temps.

1. **Créer une grille "à partir de zéro"** sur une période → apparaît dans la liste,
   ouverture de la grille affiche bien la période choisie en sous-titre.
2. **Ajouter des créneaux** matière + rituel + pause sur plusieurs jours → couleur du
   bandeau correcte dans chaque cas (matière → couleur de la matière, rituel/pause →
   couleur de l'étiquette choisie), position/hauteur du bloc cohérente avec l'heure
   saisie.
3. **Dupliquer une grille existante** (mode "Copier un existant" du modal Ajouter) →
   vérifier que tous les créneaux sont copiés avec un nouvel `emploi_du_temps_id` (les
   créneaux de la grille source restent inchangés).
4. **Glisser-déposer un bloc** d'un jour à un autre → jour et horaires mis à jour,
   persistance vérifiée après rechargement de la page.
5. **Redimensionner un bloc** via la poignée en bas → seule l'heure de fin change,
   persistance vérifiée après rechargement.
6. **Clic sur une case vide** → modal de création pré-rempli avec le jour et l'heure
   cliqués, mais tous les champs restent modifiables avant enregistrement.
7. **Clic sur un bloc existant** → popover avec Éditer (rouvre la modale pré-remplie),
   Dupliquer (choix d'un jour cible, le créneau apparaît sur ce jour sans supprimer
   l'original) et Supprimer (confirmation à deux clics, pas de suppression silencieuse).
8. **Renommer une grille** (icône crayon en vue grille, ou "Renommer" dans le menu de la
   vue liste) → nouveau titre persistant après rechargement.
9. **Modifier les préférences** (heure de début/fin, jours actifs) via le bouton
   "Préférences" → colonnes de la grille et graduations horaires mises à jour en
   conséquence.
10. **Supprimer une grille** → confirmation demandée, puis vérifier en base que les
    `creneaux_edt` associés ont bien été supprimés en cascade.
