Le champ existait côté serveur depuis le début mais manquait dans le client
généré — c'est ce qui expliquait que personne ne l'envoyait, et donc qu'aucune
question ne soit reliée à la suivante en base.
Édité à la main, générateur non relancé. flutter build web vert.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Miroir du champ ajouté côté serveur, édité à la main comme le reste du client —
le générateur n'est pas relancé.
Le client est partagé avec mymuseum-visitapp et tablet-app par dépendance
locale, donc vérifié ici aussi : flutter build web vert.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Miroir de ResourceDTO côté serveur. Édition manuelle, conformément à la règle
du projet : manager_api_new ne se régénère pas, la génération écraserait les
patches déjà accumulés dans ce client.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PDF en média d'étape — la liste de types du sélecteur de médias devient un
paramètre (`kSliderContentResourceTypes` par défaut) et l'étape de parcours
passe `kGuidedStepResourceTypes`, soit les types du slider plus Pdf.
QuestionType — le client généré nomme ses valeurs number0/1/2, ce qui
poussait le front à comparer des entiers bruts (`?.value == 2 ? 'Puzzle'`).
Alias nommés d'après l'enum serveur ajoutés à la main dans
question_type.dart (simple / multipleChoice / puzzle), `values` inchangé :
ce sont les mêmes trois valeurs. Les 7 usages number* du dialogue de
question sont migrés avec.
Fournisseur de carte (W1) — décision : visitapp-web reste sur Leaflet. Le
champ ne peut pas être masqué pour le web, il est porté par la section et
une même configuration est servie au mobile comme au web ; il est donc
conservé et documenté dans l'interface comme réglage mobile/tablette.
flutter build web ✅, analyse du dossier sans erreur ni warning.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Suppression des 14 fichiers modèle orphelins de manager_api_new/lib/model/
et de leurs 14 stubs de test. api.dart déclarait 139 `part` pour 153
fichiers : les 14 restants portaient `part of openapi.api;` sans être
listés par leur bibliothèque, donc hors du graphe de compilation. Le
compilateur ne les voyait jamais, l'analyzer les lisait — d'où les 68
erreurs de bruit qui rendaient `flutter analyze` inutilisable comme feu
vert.
Suppression de lib/api/openApiTest.dart, qui n'est pas du modèle mort mais
le déclencheur de la génération (@Openapi + build_runner). Le retirer
verrouille la règle du projet : le client s'édite à la main, et un
build_runner lancé par réflexe écrasait onboarding_api.dart, le câblage
d'AIApi et le mapping isGood → isCorrect.
Mesuré avant / après :
- flutter analyze manager_api_new : 67 → 3 issues (les 3 warnings légitimes)
- flutter analyze global : 68 erreurs de bruit → 3, toutes dans
test/widget_test.dart, cassé et connu
- flutter build web : ✅ inchangé
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Statistiques — refonte complète, aucun changement backend
statistics_screen.dart réécrit (+1832) : barres horizontales monochromes à la place
des barres verticales tronquées et des deux anneaux, barre de filtres unique avec les
volumes par canal, règle mono-canal, 4 KPI portant chacun leur variation, bandeau
« à retenir », courbe en aire avec bandes de week-end. La période précédente s'obtient
en rappelant le même endpoint.
statistics_report.dart : export PDF généré côté client (paquet pdf Dart), il partage
les valeurs calculées de l'écran — un chiffre ne peut pas diverger entre l'écran et le
document envoyé à la commune. Deux puces du sommaire promettaient des données
inexistantes (parcours terminés, questions au guide IA), retirées.
⚠️ Jamais ouvert dans un navigateur. Cases de test : test-plan.md §8bis / §8ter.
Guide IA
Screens/GuideIa/guide_ia_screen.dart — onglet Configuration. Menu conditionné à
isAssistant, le même drapeau que la garde d'AiController. L'onglet « Ce que demandent
vos visiteurs » n'est pas dans ce commit : le schéma backend est prêt, l'UI non.
Onboarding self-service
Screens/Auth/ (mot de passe oublié, définition du mot de passe),
Screens/Billing/subscription_screen.dart, ai_quota_hint.dart.
⚠️ Aucun parcours joué de bout en bout — test-plan.md §18.
Parcours guidés
progression_mode.dart : 9 booléens sur 3 niveaux remplacés par 3 questions.
Popups GuidedPath / GuidedStep / QuizQuestion mises à jour en conséquence.
Client API (manager_api_new) — édité À LA MAIN, ne pas relancer la génération
onboarding_api.dart, authentication_api.dart (+80), instance_dto (champs Guide*),
guided_step / quiz_question_guided_step (flags morts retirés).
Le // @dart=2.18 manquant dans onboarding_api.dart cassait les 3 apps Flutter d'un
coup — corrigé ici.
i18n : ~180 clés par langue (FR/EN/NL) + fichiers générés.
Tests : progression_mode_test, statistics_report_test (le second a attrapé deux
plantages qui seraient sortis au premier clic).
flutter build web ✅. flutter analyze : 68 erreurs, toutes dans les fichiers modèle
orphelins de manager_api_new — dette connue, pas une régression, ces fichiers ne sont
pas dans le graphe de compilation.