Onglet Enfants « Ajouter » ouvre la fiche en mode création ; bloc Famille/dossier ; client POST /enfants avec parent_user_id (contrat back à livrer).
Co-authored-by: Cursor <cursoragent@cursor.com>
Les emplacements vides de la grille ouvrent le même flux que le lien footer, avec hover et respect de la capacité max.
Co-authored-by: Cursor <cursoragent@cursor.com>
Le lien du footer est grisé avec tooltip quand enfants ≥ capacité max ; il se réactive après détachement.
Co-authored-by: Cursor <cursoragent@cursor.com>
Réutilise AdminSelectListModal avec filtre Libre, cartes saturées en rouge, avertissement + lien fiche AM, et recalcul des places à chaque rattachement.
Co-authored-by: Cursor <cursoragent@cursor.com>
Les cartes compactes montrent plus d'enfants d'un coup ; le nom ne monopolise plus la largeur au détriment des infos.
Co-authored-by: Cursor <cursoragent@cursor.com>
Recherche dynamique, filtre Sans garde côté AM, confirmation de transfert et détachement préalable pour laisser le point de vigilance places sur l'AM d'origine.
Co-authored-by: Cursor <cursoragent@cursor.com>
Même UX que les responsables de la fiche enfant : ouverture de
AdminParentEditModal au clic sur le nom du co-parent.
Co-authored-by: Cursor <cursoragent@cursor.com>
Attach/détach AM restent locaux comme sur la fiche AM ; la sync API
n'a lieu qu'à l'enregistrement, avec rechargement du statut au retour
de la fiche AM.
Co-authored-by: Cursor <cursoragent@cursor.com>
Les noms du sous-titre deviennent des liens cliquables vers
AdminParentEditModal, comme l'ouverture de fiche AM.
Co-authored-by: Cursor <cursoragent@cursor.com>
Améliore la zone AM/scolarisation (carte dédiée + titre), envoie
consent_photo à l'inscription parent, et parse le consentement enfant
de façon plus robuste (heuristique photo tant que le back ne persiste pas).
Co-authored-by: Cursor <cursoragent@cursor.com>
En statut sans_garde, la zone placement affiche toujours le cadre vide ;
sélectionner une AM passe le statut à en garde, et passer à sans_garde
détache l'AM rattachée.
Co-authored-by: Cursor <cursoragent@cursor.com>
Alignement sur les fiches AM/parent : photo identité, champs en grille,
zone AM rattachable (y compris à naître) ou carte scolarisation,
suppression réservée au super_admin et ouverture au clic sur la carte
depuis la fiche parent.
Refs: #138
Co-authored-by: Cursor <cursoragent@cursor.com>
Unifie le comportement des listes Parents, AM, Enfants, Gestionnaires, Admins et À valider avec le bouton d'action au survol.
Co-authored-by: Cursor <cursoragent@cursor.com>
Rattachement et détachement restent locaux, recalculent places_available et sont persistés avec le PATCH fiche.
Co-authored-by: Cursor <cursoragent@cursor.com>
Compare l'état de la fiche à un snapshot initial (liste enfants, statut, places, formulaire) et corrige la gélule statut pour les valeurs hors liste.
Co-authored-by: Cursor <cursoragent@cursor.com>
Aligne le front sur les statuts enfant back (garde/sans_garde), refond l’onglet Enfants accueillis en grille 2×2 avec correction des places, et unifie les champs validation éditables/lecture seule.
Co-authored-by: Cursor <cursoragent@cursor.com>
Fiche pro entièrement éditable, places déclarées en lecture seule avec alerte rouge, icône vigilance sur la liste AM, et cadrage photo aligné sur le wizard validation.
Co-authored-by: Cursor <cursoragent@cursor.com>
Modale admin AM (identité, dossier pro, enfants), API front avec repli, note back affiliation, et extraction gélule statut / liste enfants pour la fiche parent.
Co-authored-by: Cursor <cursoragent@cursor.com>
Le titre, le sélecteur de statut et le bouton fermer partagent le même
padding : la gélule n'est plus collée au bord supérieur de la modale.
Co-authored-by: Cursor <cursoragent@cursor.com>
Affiche le prénom/nom du parent en titre et le co-parent en sous-titre ; note handoff back dans archive/temporaires.
Co-authored-by: Cursor <cursoragent@cursor.com>
Partage AdminEnfantUserCard entre fiche parent et onglet Enfants, enrichit ParentChildSummary (photo, dates) et compacte la modale parent.
Co-authored-by: Cursor <cursoragent@cursor.com>
Extrait IdentityBlock réutilisable, aligne les modales parent/enfant sur le style validation, corrige le parsing parentChildren et les URLs /uploads en Flutter web.
Co-authored-by: Cursor <cursoragent@cursor.com>
Corrige l’ombre des paramètres dateOfBirth, agreementDate et placesAvailable
dans resetForReprise ; renforce le parsing reprise-dossier et ajoute un test.
Co-authored-by: Cursor <cursoragent@cursor.com>
Charge existingPhotoUrl dans les cartes enfant (étapes 3 et 5) et pré-coche
le consentement photo lorsqu'une photo est déjà en base.
Co-authored-by: Cursor <cursoragent@cursor.com>
Frontend (prod web):
- Image builder Flutter 3.29.3 (Dockerfile + workflow CI alignés)
- web/index.html: bootstrap Flutter 3.29 (flutter_bootstrap.js), scripts pdf.js conservés
- Dockerfile: rm html avant COPY pour éviter l’index « Welcome to nginx »
- nginx: server_name _ pour Traefik
- env: sur le web, API = Uri.base.origin si pas de API_BASE_URL (évite mixed content http/https)
- auth: message d’erreur réseau avec type/détail si non-Exception
- CGU/PDF: commentaire sans mention Flutter 3.19 obsolète
- pubspec.lock: résolution dépendances Flutter 3.29
Base de données & doc:
- BDD.sql: validations.commentaire, valide_par, FK ON DELETE SET NULL + commentaire
- patch 2026-04-17: valide_par avec ON DELETE SET NULL
- patch 2026-04-18: FK validations en SET NULL sur bases existantes
- seed: statut validation « valide » (enum)
- FK_POLICIES.md: valide_par
- doc workflow: Flutter 3.29.3
Made-with: Cursor
- Modale de validation avec chargement des PDF distants, PdfViewPinch et barre de progression latérale (repli PdfView sous Windows).
- Service documents légaux actifs, correction des URLs média, intégration au formulaire de présentation.
- Documentation juridique et réorganisation (archive, index, tickets).
Made-with: Cursor
- Ordre de focus explicite (NumericFocusOrder) pour l’inscription AM étape 2 : chaîne des champs jusqu’aux chevrons, Pays → NIR, places → Suivant (10) puis Précédent (11).
- FocusTraversalGroup avec OrderedTraversalPolicy sur le Scaffold pour respecter cet ordre (desktop / web).
- Champ pays : TextInputAction.next, onFieldSubmitted et onEditingComplete vers le NIR ; CustomAppTextField expose onEditingComplete.
- NirTextField : focusNode et focusTraversalOrder optionnels.
Made-with: Cursor
- POST /auth/register/am : places_disponibles, enregistrement place_disponible, contrôle ≤ capacité
- Formulaire pro AM : places sur la ligne capacité, mobile un champ par ligne, carte desktop plus compacte (espacements, polices, labelFieldSpacing)
- Capacité et places validées jusqu’à 4 dans l’app (kAmCapaciteAccueilMax) ; hint NIR « 13 chiffres + clé »
- Scripts d’inscription AM (Node + smoke shell) : places_disponibles
Made-with: Cursor