- Implémentation responsive avec LayoutBuilder pour détecter mobile/desktop
- Mode mobile : titre au-dessus, carte pleine largeur avec ratio 2/3, boutons verticaux
- Mode desktop : chevron en haut à gauche, layout texte/carte côte à côte
- Extraction de la logique de carte dans ChoiceCardWidget réutilisable
- Bouton "Précédent" stylisé avec CustomNavigationButton et HoverReliefWidget
- Tailles d'icônes augmentées (140px mobile, 170px desktop)
Co-authored-by: Cursor <cursoragent@cursor.com>
Utilise CustomNavigationButton avec HoverReliefWidget pour le bouton Précédent en mode mobile, assurant la cohérence visuelle avec les autres écrans. Augmente également la taille des icônes de choix (140px mobile, 170px desktop).
Co-authored-by: Cursor <cursoragent@cursor.com>
- Delete obsolete nanny_registration_data.dart and nanny_register_confirmation_screen.dart
- Update 23_LISTE-TICKETS.md with #79 and #80 status
Co-authored-by: Cursor <cursoragent@cursor.com>
- Support des modes Desktop/Mobile et Édition/Lecture seule
- Refactoring des widgets de formulaire (PersonalInfo, ProfessionalInfo, Presentation, ChildCard)
- Mise à jour des écrans de récapitulatif (ParentStep5, AmStep4)
- Ajout de navigation (Précédent/Soumettre) sur mobile
Closes#78
Co-authored-by: Cursor <cursoragent@cursor.com>
- Add 'Previous' and 'Submit' buttons to mobile recap screens (Parent & AM)
- Fix imports for navigation buttons and widgets
- Adjust ChildCardWidget width to fill available space on mobile editing
Co-authored-by: Cursor <cursoragent@cursor.com>
- Restore horizontal 2:1 layout for desktop readonly cards
- Implement adaptive height for mobile readonly cards
- Fix spacing and margins on mobile recap screens
- Update field styles to use beige background
- Adjust ChildCardWidget width for mobile editing
- Fix compilation errors and duplicate methods
Co-authored-by: Cursor <cursoragent@cursor.com>
- Réduction de la taille des polices et des champs dans la carte enfant (Mobile/Desktop) pour éviter l'overflow.
- Restauration de la taille du bouton "+" en mode Desktop (100px).
Co-authored-by: Cursor <cursoragent@cursor.com>
Adaptation responsive du formulaire "Informations Enfants" (Parent Step 3) :
- Desktop : Conservation du layout horizontal avec scroll et effets de fondu
- Mobile : Layout vertical avec cartes empilées
- Header fixe
- Bouton "+" carré (50px) centré à la fin de la liste
- Boutons navigation intégrés au scroll
- Cartes enfants adaptées (scale 0.9, polices réduites)
- Mise à jour DisplayConfig (mode optionnel par défaut)
- Mise à jour AppCustomCheckbox (paramètre fontSize)
Co-authored-by: Cursor <cursoragent@cursor.com>
Nouveau widget professional_info_form_screen.dart :
- Formulaire complet d'infos professionnelles pour AM
- Gestion de la photo avec sélection et consentement
- Champs : ville/pays/date de naissance, NIR, agrément, capacité
- Validations intégrées (NIR 13 chiffres, capacité > 0, etc.)
AM Step 2 refactorisé :
- Utilise le nouveau ProfessionalInfoFormScreen
- Code réduit de ~280 lignes à ~75 lignes
- Logique de génération de données de test préservée
- Préparé pour réutilisation dans les récapitulatifs
Impact : -205 lignes de code
Suppression des 4 fichiers nanny_register_step*.dart qui sont obsolètes
après le renommage complet en "am" (Assistante Maternelle).
Les nouveaux fichiers correspondants sont :
- am_register_step1_screen.dart
- am_register_step2_screen.dart
- am_register_step3_screen.dart
- am_register_step4_screen.dart
Extraction du widget _ChildCardWidget de parent_register_step3_screen.dart
vers un fichier réutilisable child_card_widget.dart
Améliorations :
- Widget désormais public (ChildCardWidget au lieu de _ChildCardWidget)
- Réutilisable dans d'autres écrans (ex: récapitulatifs détaillés)
- Imports nettoyés et simplifiés
- Meilleure organisation du code
Le widget gère :
- Photo de l'enfant avec sélection d'image
- Toggle "Enfant à naître"
- Champs: Prénom, Nom, Date de naissance
- Checkboxes: Consentement photo, Naissance multiple
- Bouton de suppression (si > 1 enfant)
Corrections des appels de méthodes et des types :
1. Parent Steps 1-2 : Passer des objets ParentData complets
- updateParent1(ParentData(...)) au lieu de paramètres nommés
- updateParent2(ParentData(...)) ou null pour supprimer
2. AM Step 1 : Utiliser la bonne méthode
- updateIdentityInfo() au lieu de updatePersonalInfo()
3. personal_info_form_screen : Corrections widgets
- Accès correct à widget.stepText
- Gestion du nullable sur onChanged de AppCustomCheckbox
Ces corrections permettent la compilation sans erreur.
- Suppression de l'ancien routeur navigation/app_router.dart
- Suppression du dossier /parent/ (versions dupliquées)
- Suppression du dossier /am/ (versions de travail temporaires)
Ces fichiers sont remplacés par les versions actives dans auth/
- Création du modèle am_registration_data.dart
- Création des 4 écrans d'inscription AM (steps 1-4)
- Mise à jour du bouton "Assistante Maternelle" dans register_choice
- Conformité CDC : pas de champs mot de passe dans les formulaires
- Préremplissage des données de test pour faciliter le développement
Ref: Ticket #XX - Renommage workflow inscription AM
Refactorisation complète du parcours d'inscription des parents pour utiliser
Provider au lieu du passage de données par paramètres de navigation.
Modifications principales :
- Utilisation de Provider pour partager UserRegistrationData entre les étapes
- Simplification du routeur (suppression des paramètres)
- Amélioration de la persistance des données entre les étapes
- Meilleure expérience utilisateur lors de la navigation
Fichiers modifiés :
- models/user_registration_data.dart : Modèle avec ChangeNotifier
- screens/auth/parent_register_step1-5_screen.dart : Intégration Provider
- navigation/app_router.dart : Simplification du routing
- main.dart : Configuration du Provider
- login_screen.dart : Ajout navigation vers inscription
- register_choice_screen.dart : Navigation vers parcours parent/AM
- utils/data_generator.dart : Génération de données de test
Refs: #38 (Étape 3 Enfants), #39 (Étapes 4-6 Finalisation)
Implémentation complète du ticket #47 :
- Mise à jour de l'URL API vers app.ptits-pas.fr
- Ajout du champ changement_mdp_obligatoire au modèle AppUser
- Ajout des endpoints /auth/me et /auth/change-password-required
- Implémentation de la vraie logique de connexion dans AuthService
- Création de la modale ChangePasswordDialog non-dismissible
- Connexion du bouton de connexion avec gestion de la modale
- Ajout des routes admin-dashboard et parent-dashboard
La modale s'affiche automatiquement après connexion si
changement_mdp_obligatoire = true et bloque l'utilisateur jusqu'au
changement de mot de passe.
Frontend Step2:
- Suppression des champs mot de passe et confirmation
- Correction de l'indicateur d'étape: 2/5 → 2/6
- Améliorations visuelles (mêmes que Step1):
* Taille des labels: 18 → 22px
* Taille de police des champs: 18 → 20px
* Espacement entre champs: 20 → 32px
* Meilleure répartition verticale avec spaceEvenly
Note: Le champ password est conservé dans le modèle ParentData pour compatibilité
Backend:
- Retrait des champs non-CDC: profession, situation_familiale, date_naissance
- Nettoyage des DTOs RegisterParentCompletDto et RegisterParentDto
- Mise à jour de la logique dans auth.service.ts (inscrireParentComplet et legacy)
Frontend Step1:
- Suppression des champs mot de passe et confirmation
- Correction de l'indicateur d'étape: 1/5 → 1/6
- Améliorations visuelles:
* Taille des labels: 18 → 22px
* Taille de police des champs: 18 → 20px
* Espacement entre champs: 20 → 32px
* Meilleure répartition verticale avec spaceEvenly
Note: Le champ password est conservé dans le modèle ParentData pour compatibilité avec Step2
Ce commit comprend plusieurs améliorations significatives :
Inscription Parent - Étape 5 (Récapitulatif) :
- Initialisation de l'écran pour l'étape 5/5 du parcours d'inscription parent.
- Mise en place de la structure de base de l'écran de récapitulatif (titre, fond, bouton de soumission initial, modale de confirmation).
- Intégration de la navigation vers l'étape 5 depuis l'étape 4, incluant le passage (actuellement factice) des données d'inscription.
- Correction des erreurs de navigation et de typage liées à l'introduction de `PlaceholderRegistrationData` pour cette nouvelle étape.
Refactorisation des Widgets UI :
- `CustomAppTextField` :
- Évolution majeure pour supporter différents styles de fond (beige, lavande, jaune) via un nouvel enum `CustomAppTextFieldStyle`.
- Les images de fond pour les styles lavande et jaune (`input_field_lavande.png`, `input_field_jaune.png`) ont été renommées et sont maintenant utilisées.
- Mise à jour de l'écran de login pour utiliser ce `CustomAppTextField` stylisé, remplaçant l'ancien widget privé `_ImageTextField`.
- Réintégration des paramètres `isRequired`, `enabled`, `readOnly`, `onTap`, et `suffixIcon` qui avaient été omis lors d'une refactorisation précédente, assurant la compatibilité avec l'étape 3.
- `ImageButton` :
- Extraction du widget privé `_ImageButton` de l'écran de login en un widget public `ImageButton` (dans `widgets/image_button.dart`) pour une réutilisation globale.
- Mise à jour de l'écran de login pour utiliser ce nouveau widget public.
- Utilisation du nouveau `ImageButton` pour le bouton "Soumettre ma demande" sur l'écran de l'étape 5.
Corrections :
- Correction d'une erreur de `RenderFlex overflowed` dans la carte enfant (`_ChildCardWidget`) de l'étape 3 de l'inscription parent, en ajustant les espacements internes.
- Résolution de diverses erreurs de compilation qui sont apparues pendant ces refactorisations.
- Corrige le débordement visuel (RenderFlex overflow) dans les cartes enfants.
- Augmente les marges latérales du sélecteur d'enfants pour un meilleur centrage.
- Ajoute un défilement automatique vers la droite lors de l'ajout d'un enfant.
- Intègre une barre de défilement horizontale et un effet de fondu dynamique (fading edges) au sélecteur d'enfants.
- Ajuste le padding vertical dans CustomAppTextField pour un meilleur centrage du hintText.
- Met à jour index.html :
- Utilise le token {{flutter_service_worker_version}}.
- Ajoute la balise meta mobile-web-app-capable.
- Rétablit temporairement loadEntrypoint pour éviter un écran blanc (avertissement de dépréciation en attente de correction).
- Ajout du switch "Enfant à naître" et ajustement du champ prénom.
- Amélioration de la gestion de l'affichage des photos (placeholder, kIsWeb).
- Refactorisation des boutons avec HoverReliefWidget.
- Localisation du DatePicker en français.
- Nettoyage de l'intégration (annulée) de image_cropper.
- Mise à jour de EVOLUTIONS_CDC.md.