158 lines
8.3 KiB
Markdown
158 lines
8.3 KiB
Markdown
# Plan de test — refonte Configuration & Sections (2026-09-04)
|
||
|
||
Périmètre : la refonte visuelle des écrans Configuration et Section, de leurs dialogues,
|
||
et le gabarit C de Map / Événement / Jeu. Maquettes : `DOCS/claude design/refonte-configuration-sections.html`
|
||
et `DOCS/claude design/refonte-gabarit-canevas.html`.
|
||
|
||
**Rien n'a été vérifié à l'écran** — `flutter analyze` est propre et `flutter build web` passe,
|
||
c'est tout. `manager-app` n'a que 3 tests et aucun sur ces composants : la vérification est manuelle.
|
||
|
||
Mode d'emploi : coche si le comportement attendu est constaté, laisse vide sinon et note l'écart
|
||
en bas. `→` = résultat attendu.
|
||
|
||
---
|
||
|
||
## §0. Porte d'entrée
|
||
|
||
- [ ] `flutter build web` passe
|
||
- [ ] `flutter analyze` ne remonte que les 3 problèmes connus de `test/widget_test.dart`
|
||
- [ ] L'app se lance, connexion OK → le champ e-mail et le mot de passe sont lisibles et espacés
|
||
|
||
## §1. Le champ partagé — le plus gros risque de régression
|
||
|
||
Ces composants sont importés par une trentaine d'écrans. **Ce qui rentrait juste peut déborder** :
|
||
un débordement Flutter est visible (rayures jaunes), pas silencieux.
|
||
|
||
- [ ] Écran Configuration : les libellés sont **au-dessus** des champs, pas à gauche
|
||
- [ ] Le compteur de caractères est petit et discret sous le champ
|
||
- [ ] Aucune bande jaune de débordement sur : Ressources, Instances, Utilisateurs, Clés API, Devices
|
||
- [ ] Les cases à cocher (Hors ligne, iBeacon…) sont compactes et alignées à gauche de leur libellé
|
||
- [ ] Un champ de ressource vide affiche « Choisir » sur fond clair bordé, pas une pastille pleine
|
||
|
||
## §2. Écran Configuration
|
||
|
||
- [ ] Les actions (Supprimer, Annuler, Enregistrer, Export) sont **dans l'en-tête**, plus de barre en bas
|
||
- [ ] Le sous-titre indique date de création · nombre de sections · nombre de langues
|
||
- [ ] Le nombre de sections est juste **après le chargement** de la liste (et pas 0)
|
||
- [ ] Deux colonnes : Réglages + Sections à gauche, Habillage à droite ; empilées sous 900 px
|
||
- [ ] Enregistrer, puis rouvrir : les valeurs sont bien persistées
|
||
|
||
## §3. La grille de sections
|
||
|
||
- [ ] Les sections sont en grille responsive, plus de liste horizontale
|
||
- [ ] Tuiles 16/9 avec badge d'ordre, image si présente, icône de type sinon
|
||
- [ ] Une section inactive porte le badge « Masquée » et est estompée
|
||
- [ ] Glisser une tuile par sa poignée (coin haut droit) la réordonne → l'ordre est sauvé
|
||
- [ ] La tuile « Ajouter une section » en fin de grille ouvre le dialogue de création
|
||
- [ ] La recherche filtre bien la grille
|
||
|
||
## §4. Dialogue « Nouvelle section »
|
||
|
||
- [ ] Les 13 types sont visibles, groupés en 4 familles, avec une description par type
|
||
- [ ] Sur une **sous-section**, le type Menu n'est pas proposé
|
||
- [ ] L'avertissement « le type ne pourra plus être changé » est dans le pied
|
||
- [ ] Créer sans nom (< 3 caractères) → message d'erreur, pas de création
|
||
|
||
## §5. Écran Section
|
||
|
||
- [ ] En-tête : icône du type, pastille du type, actions ; plus de barre en bas
|
||
- [ ] Le panneau « Diffusion » est déplié dans le rail droit (QR, identifiant, iBeacon)
|
||
- [ ] Cliquer le QR le copie → notification de succès
|
||
- [ ] Cocher iBeacon **enregistre immédiatement** (chemin `save(false, …)`)
|
||
- [ ] Modifier le titre affiché **enregistre immédiatement** (chemin `save(true, …)`)
|
||
|
||
## §6. Modal de traduction — ⚠️ le piège Quill
|
||
|
||
Le point le plus fragile de la refonte. Les éditeurs sont montés en `IndexedStack` ;
|
||
deux chemins recréent les contrôleurs.
|
||
|
||
- [ ] Le rail de gauche liste les langues avec une pastille pleine / vide
|
||
- [ ] Basculer de langue **conserve** ce qui a été tapé dans l'autre langue
|
||
- [ ] La langue source s'affiche en référence au-dessus de l'éditeur
|
||
- [ ] Le compteur de caractères suit la frappe
|
||
- [ ] **« Appliquer à toutes les langues »** : le texte de la langue affichée part dans les autres, et l'éditeur montre le résultat
|
||
- [ ] **« Traduire avec l'IA »** : les langues manquantes se remplissent, l'éditeur montre le résultat, le quota se met à jour
|
||
- [ ] Après une traduction IA, retaper dans une langue traduite fonctionne encore
|
||
- [ ] Un champ **sans HTML** (ex. libellé d'annotation) ouvre le même modal, sans barre de format
|
||
- [ ] Annuler ne conserve rien, Valider conserve
|
||
|
||
## §7. Sélecteur de ressource
|
||
|
||
- [ ] La modale n'a **plus de double défilement** : la grille défile, pas le dialogue
|
||
- [ ] Un clic sur une vignette sélectionne et referme
|
||
- [ ] Sa largeur est inchangée (≈ 85 % de l'écran)
|
||
|
||
## §8. Éditeur de collection — Slider, Article, PDF
|
||
|
||
- [ ] Slider : liste à gauche, contenu édité à droite, plus de modale
|
||
- [ ] Ajouter un contenu, choisir une ressource, un titre → Enregistrer → il est là au retour
|
||
- [ ] Un contenu **sans ressource** n'est pas envoyé au backend (comportement d'avant conservé)
|
||
- [ ] Réordonner par la poignée → l'ordre est conservé après Enregistrer
|
||
- [ ] Supprimer un contenu
|
||
- [ ] Article : contenu, audio et les deux cases fonctionnent, la liste d'images suit
|
||
- [ ] PDF : plus de bloc figé, ajouter / renommer / supprimer un fichier
|
||
|
||
## §9. Quiz, Menu, Agenda
|
||
|
||
- [ ] Quiz : ajouter une question → elle apparaît **et** existe au rechargement
|
||
- [ ] Quiz : modifier l'intitulé, l'image de fond, les réponses → persisté
|
||
- [ ] Quiz : **réordonner** → les rangs ne se marchent plus dessus (bug corrigé), l'ordre tient au rechargement
|
||
- [ ] Quiz : supprimer une question ; en cas d'erreur réseau, la liste revient à son état d'avant
|
||
- [ ] Quiz : les 4 messages de score s'ouvrent et s'enregistrent
|
||
- [ ] Menu : les sous-sections sont en grille, un clic ouvre l'écran de sous-section
|
||
- [ ] Menu : réordonner → ordre correct au rechargement
|
||
- [ ] Menu : créer une sous-section depuis la tuile « Ajouter »
|
||
- [ ] Agenda : plus de bloc de 600 px, la liste suit son contenu, recherche et filtres de date OK
|
||
|
||
## §10. Le canevas — Map
|
||
|
||
- [ ] Trois volets : liste, fiche, carte
|
||
- [ ] Les **autres points** apparaissent en gris sur la carte
|
||
- [ ] Cliquer la carte place le point ouvert dans la fiche ; le pied affiche ses coordonnées
|
||
- [ ] Les outils Point / Ligne / Zone et la couleur fonctionnent
|
||
- [ ] Le bouton « agrandir » élargit la carte et replie la fiche
|
||
- [ ] Recherche et catégories cachent les **mêmes** points dans la liste et sur la carte
|
||
- [ ] « Informations pratiques » se replie/déplie et le compteur est juste
|
||
- [ ] Créer un point, le placer, le renommer → rechargement : tout est là
|
||
- [ ] Supprimer un point passe par la confirmation rouge
|
||
- [ ] ⚠️ **À juger à l'usage** : chaque déplacement de point déclenche un appel API. Si c'est trop bavard, il faudra grouper en fin de geste.
|
||
|
||
## §11. Le canevas — Événement, et Jeu
|
||
|
||
- [ ] Événement : si aucun plan de base n'est choisi, **le premier plan disponible est pris par défaut**
|
||
- [ ] Événement : ajouter une annotation, lui donner un libellé, une icône, une position sur la carte
|
||
- [ ] Événement : la position est **conservée au rechargement** (elle ne l'était jamais avant : la modale ne remplissait pas `geometry`)
|
||
- [ ] Événement : supprimer une annotation
|
||
- [ ] Événement : les blocs de programme s'affichent sans hauteur figée, le parcours est toujours là
|
||
- [ ] Jeu : le choix Puzzle / Taquin est deux pastilles, plus d'onglets
|
||
- [ ] Jeu : le canevas montre le découpage lignes × colonnes sur l'image, et le compte de pièces suit
|
||
|
||
## §12. Sélecteur de géométrie encore en modale
|
||
|
||
Deux appelants n'ont pas été migrés — ils doivent continuer de marcher **à l'identique**.
|
||
|
||
- [ ] Parcours → étape → géométrie : le dialogue s'ouvre, dessine, enregistre
|
||
- [ ] Agenda → événement → géométrie : idem
|
||
|
||
## §13. Catégories de carte — 🐛 bug corrigé
|
||
|
||
- [ ] Ouvrir les catégories d'une Map, **ne rien toucher**, valider → les catégories sont **toujours là**
|
||
(avant : la liste était effacée)
|
||
- [ ] Les boutons du dialogue sont traduits (ils étaient en dur en français)
|
||
- [ ] Ajouter / renommer / supprimer une catégorie fonctionne
|
||
|
||
## §14. i18n
|
||
|
||
- [ ] Passer le manager en EN puis NL : aucun texte français résiduel sur les écrans repris
|
||
- [ ] Les nouveaux libellés sont traduits : familles de types, descriptions de type, « Masquée »,
|
||
« Informations pratiques », « Nouveau point », outils de géométrie
|
||
|
||
---
|
||
|
||
## Écarts constatés
|
||
|
||
| § | Ce qui a été observé | Gravité |
|
||
|---|---|---|
|
||
| | | |
|
||
| | | |
|