116 Commits

Author SHA1 Message Date
Thomas Fransolet
83eba7ff54 Editeurs de traduction : le curseur ne saute plus a chaque frappe
`QuillEditor.basic` fabrique un `FocusNode` et un `ScrollController` neufs a
chaque construction quand on ne lui en passe pas. Or chaque frappe reconstruit
ces widgets — compteur de caracteres, pastilles du rail de langues — donc
l'editeur perdait le focus des le premier caractere saisi.

Les deux conteneurs creent desormais leurs noeuds une fois, dans `initState`,
un par langue, et les liberent au `dispose`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-09 16:54:56 +02:00
Thomas Fransolet
0df5dc03fa Web mobile : le clavier se refermait aussitot ouvert sur le login
Le meta viewport manquant n'expliquait pas tout : le clavier s'ouvrait puis se
refermait apres une demi-seconde. C'est le focus qui etait perdu, pas la saisie
qui n'arrivait pas.

Sur Flutter web, un AutofillGroup se materialise par un <form> DOM qui porte les
inputs caches par lesquels passe la saisie. L'ouverture du clavier redimensionne
la fenetre, l'ecran se reconstruit, le groupe d'autofill est renegocie et le
<form> recree : l'input focus disparait avec lui. Sur desktop rien ne
redimensionne au clic, d'ou un bug invisible hors mobile.

L'AutofillGroup est retire — les autofillHints portes par chaque champ suffisent
au navigateur pour proposer le remplissage, le groupe ne servait qu'a
finishAutofillContext. Trois protections completent la correction :

- les deux champs passent par un TextEditingController detenu par le State, donc
  la saisie survit a une reconstruction, la ou initialValue repartait de zero ;
- ils portent une ValueKey stable, pour etre reapparies plutot que recrees si la
  structure de leurs freres bouge ;
- le Scaffold ne se redimensionne plus a l'ouverture du clavier ; le contenu est
  deja dans un SingleChildScrollView, rien ne reste masque.

Au passage, le pre-remplissage de developpement (localhost) etait ecrit dans
build() a chaque reconstruction : il passe dans initState, ou il a du sens.

Le routeur, lui, etait fabrique dans le builder d'un FutureBuilder et l'appel a
getInstanceInfo partait de l'arbre passe a runApp. Chaque passage du builder
rendait un GoRouter neuf, donc un arbre neuf et un historique perdu. Les deux
sont desormais resolus une fois, avant runApp — 45 lignes de moins.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 22:07:17 +02:00
Thomas Fransolet
0054122829 Carte : filtre par categorie, editeur de point, et corrections users/quotas
Regroupe la configuration de carte en deux blocs (Carte / Points d'interet),
ajoute le filtre par categorie et l'editeur de point geographique, et passe
les ecrans Users et les jauges de quota par AppLocalizations (FR/EN/NL).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 16:22:39 +02:00
Thomas Fransolet
820cd9efa8 Misc update ressource to mediatheque, refonte visuelle complète (WIP) 2026-09-04 16:50:03 +02:00
Thomas Fransolet
bb4d4fe2d5 Écran Statistiques refondu + Guide IA + onboarding (auth, abonnement) + i18n FR/EN/NL
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.
2026-08-09 22:14:37 +02:00
Thomas Fransolet
8073cced5e refacto to aitoken 2026-07-17 15:20:41 +02:00
Thomas Fransolet
e851929dbc misc 2026-07-14 17:20:30 +02:00
Thomas Fransolet
0f2fa9bf3e refacto misc + bento layout 2026-07-14 17:20:20 +02:00
Thomas Fransolet
a54952e5f4 MISC 2026-07-10 16:54:26 +02:00
Thomas Fransolet
205f1ec933 Misc 2026-05-09 00:23:04 +02:00
Thomas Fransolet
2e8b82aa80 Wip manager app, update to support web + fix section event layout 2026-05-07 16:48:58 +02:00
Thomas Fransolet
7669f38ed8 Refacto login screen + update video config to support multiple type + put ia translate button and other in better way (to be tested) 2026-04-17 14:17:10 +02:00
Thomas Fransolet
0059582e9f Multi langues + Assign plan dialog + display quotas + translator IA 2026-04-10 17:17:49 +02:00
Thomas Fransolet
f90f014f36 Add roles garde fou + update gradle + wip sectionAgenda (online and manual) + update EventConfig + missing fields in GuidedSteps update popup + updates in stats screen 2026-03-25 17:41:32 +01:00
Thomas Fransolet
3520d2d3d2 Geometry update, update quill editor, fix save in multiple new features + MISC 2026-03-06 15:23:10 +01:00
Thomas Fransolet
ded4620bf2 Wip changements fantastiquement rapide d'antigravity, très bonne base mais du wip 2026-03-02 09:06:53 +01:00
Thomas Fransolet
9e06afb29e Commit before anti gravity ! :) 2026-02-27 13:52:54 +01:00
Thomas Fransolet
5c318b39dd Updated generation (game etc) 2025-11-27 15:47:21 +01:00
Thomas Fransolet
38c36adc8a Applications -> Mobile Done ! 2025-10-17 23:22:36 +02:00
Thomas Fransolet
61b3289e35 Wip manager, mobile layout + login and added logo + finetuning menu and drawer etc 2025-10-04 23:24:46 +02:00
Thomas Fransolet
3449361b76 WIP mobile app view config + updates input container (text form field) + update service generation 2025-09-18 23:22:34 +02:00
Thomas Fransolet
d47dc15688 Fix Menu + misc 2025-05-27 15:04:20 +02:00
Thomas Fransolet
7263303b7e Service worker update {{}} - menu working ! + clean code 2025-05-23 15:17:01 +02:00
Thomas Fransolet
807d599910 Web, video, pdf, agenda, puzzle, weather + MISC 2025-05-15 17:20:34 +02:00
Thomas Fransolet
e16e898140 Map done ! 2025-05-15 15:11:21 +02:00
Thomas Fransolet
e644cd487f misc ! 2025-05-14 17:13:13 +02:00
Thomas Fransolet
4818a1af52 Configuration (create, update, del) + Section (create, update, del)
more test to be sure for section but should be ok
2025-05-13 17:12:04 +02:00
Thomas Fransolet
d79c4882fc Fix php endpoint not working with param url 2024-07-02 16:37:42 +02:00
Thomas Fransolet
a9f9aa81e0 updated snackbar to flushbar + added copy to other languages 2024-07-02 16:22:45 +02:00
Thomas Fransolet
214fe574e6 Update to add ressource on detail view 2024-06-21 22:44:26 +02:00
Thomas Fransolet
e5a2d4f06a Update tarif to title (more char) + add image geopoint 2024-06-20 16:23:44 +02:00
Thomas Fransolet
b04d90a3ad Added image principal geopoint + set centrage localisation mapdto 2024-04-18 17:25:39 +02:00
Thomas Fransolet
530157bbb2 Update color picker (fix web build) 2024-04-11 17:36:21 +02:00
Thomas Fransolet
785301d908 Update categorie (id for filter and update) 2024-04-11 17:05:57 +02:00
Thomas Fransolet
c2972b11ea rename multi select for language + Fix question quizz not working + other fixs 2024-04-11 16:16:03 +02:00
Thomas Fransolet
8893c75792 Added practical infos to geopoint + update single select to dropdown 2024-04-10 11:28:32 +02:00
Thomas Fransolet
649955044f Service generation + init new version + Add weather as a section + download resource + filter geoPoint + added new config params 2024-04-10 10:43:09 +02:00
Thomas Fransolet
fb0a8674d1 Wait 2 sec before refresh ressources (on create) 2024-03-14 15:04:43 +01:00
Thomas Fransolet
8824609fad Clean code + add pick location 2024-03-14 14:41:55 +01:00
Thomas Fransolet
15a11b9eb7 Fix translation and ressource not update + PDF fileS + Agenda map provider + Map handling mapBox 2024-03-12 22:58:35 +01:00
Thomas Fransolet
afa9ca4fd5 update max size title + fix map type change + category not showed 2024-03-04 16:24:13 +01:00
Thomas Fransolet
5fd5aa5c53 Update agenda resourceIds + update widget selection 2024-02-28 12:01:25 +01:00
Thomas Fransolet
2596a6cc84 filtered language on translation creation 2024-02-21 18:32:15 +01:00
Thomas Fransolet
09c8cc7cfd Added JsonUrl (to test) 2024-01-24 17:08:06 +01:00
Thomas Fransolet
0f325605e5 Fix bug translation FR 2024-01-17 17:00:24 +01:00
Thomas Fransolet
57c7d56306 clean code + accept empty for descriptions 2024-01-16 16:05:43 +01:00
Thomas Fransolet
1d81997a99 Handle resource viewer + add rows and cols to puzzle 2023-12-29 14:59:21 +01:00
Thomas Fransolet
a646adc550 update service generation + Update Quiz + Puzzle + Map 2023-12-27 18:11:25 +01:00
Thomas Fransolet
0c526fe53e Add Pdf, puzzle and agenda config + adpat other elements + update service generation 2023-12-26 15:48:36 +01:00
Thomas Fransolet
4b7dac07a8 update service generation + gif and webm + wip select resource 2023-12-23 14:34:28 +01:00