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
Nouveau fichier summary_screen.dart avec :
- Widget SummaryScreen : Layout générique pour récapitulatif
- Widget SummaryCard : Carte de récapitulatif avec AspectRatio et bouton Edit
- Fonction buildDisplayFieldValue : Champ en lecture seule stylisé
Ces composants permettront de simplifier et unifier les écrans
de récapitulatif parent et AM.
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)
Structure correcte pour Parent Step 2 :
- Toggle gauche : "Ajouter Parent 2 ?" avec icône person_add_alt_1
- Toggle droit : "Même Adresse ?" avec icône home_work_outlined
- Les 2 toggles sont dans une Row (flex: 12 chacun)
- Toggle "Même Adresse" grisé si Parent 2 désactivé
- Suppression de l'ancienne checkbox en bas
Conforme à l'ancien code testé et validé.
- Toggle "Il y a un 2ème parent ?" maintenant DANS la carte (pas au-dessus)
- Checkbox "Même adresse que parent 1" reste dans la carte
- Taille du texte du toggle ajustée à 20px pour cohérence
- Espacement de 25px après le toggle
Position correcte conforme à l'ancien design.
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.
- Ajout des imports pour les nouveaux écrans AM
- Mise à jour des routes /am-register-step1 à step4
- Suppression de la route /am-register-confirmation (obsolète)
- Configuration du Provider AmRegistrationData
- Nettoyage des imports inutilisés
Les routes AM sont maintenant complètes et fonctionnelles.
Création de 2 nouveaux widgets génériques pour réduire la duplication :
1. presentation_form_screen.dart
- Widget pour formulaires de présentation/motivation
- Paramétrable : titre, couleur, hint, routes
- Utilisé par Parent Step 4 et AM Step 3
- Réduction de ~350 lignes de code dupliqué
2. personal_info_form_screen.dart
- Widget pour formulaires d'informations personnelles
- Gère nom, prénom, téléphone, email, adresse
- Options : toggle "2ème parent", checkbox "même adresse"
- Utilisé par Parent Steps 1-2 et AM Step 1
- Réduction de ~460 lignes de code dupliqué
Avantages :
- Maintenance simplifiée (1 seul fichier à modifier)
- Cohérence visuelle garantie entre tous les écrans
- Extensibilité facile pour nouveaux types d'utilisateurs
- 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
Ajout de deux versions d'icônes SVG pour l'application :
- icon.svg : Icône standard de l'application
- icon_improved.svg : Version améliorée de l'icône
Ces icônes seront utilisées pour le branding de l'application
et les différentes tailles d'affichage.
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)
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.