cc3639b19a
fix: dossier AM expose texte_motivation (alias biographie) pour le front
...
Made-with: Cursor
2026-03-23 23:43:00 +01:00
cf9cd495bf
feat: enrichissement GET pending-families (date_soumission, nombre_enfants, emails)
...
Made-with: Cursor
2026-03-23 23:37:50 +01:00
76ba28a7ce
fix: dossier famille - un seul texte_motivation, plus de tableau presentation
...
Made-with: Cursor
2026-03-18 01:56:58 +01:00
1772744c81
feat( #119 ): dossier famille = 1 par famille, N enfants; retrait repas/type_contrat/budget; adresse dans API parents
...
Made-with: Cursor
2026-03-18 01:52:28 +01:00
5465117238
fix: renvoyer le genre des enfants dans le dossier famille (GET dossiers/parents)
...
Made-with: Cursor
2026-03-18 01:35:27 +01:00
6e2343087e
feat( #119 ): GET /dossiers/:numeroDossier unifié AM ou famille (type + dossier)
...
Made-with: Cursor
2026-03-17 23:11:53 +01:00
f6fabc521e
feat( #119 ): GET /parents/dossier-famille/:numeroDossier - dossier famille complet (admin/gestionnaire)
...
Made-with: Cursor
2026-03-17 22:40:48 +01:00
5390276ecd
fix: ParentsModule - import JwtModule pour AuthGuard (évite restart loop au déploiement)
...
Made-with: Cursor
2026-03-13 16:49:39 +01:00
7e9306de01
fix: GET /parents/pending-families 500 + #113 doublons inscription
...
- parents.service: normaliser parentIds (array ou string PG) pour éviter 500
- auth.service: doublons à l'inscription (#113 ) - parent/co-parent même email, NIR et numéro agrément AM
- docs: mise à jour statuts tickets
Made-with: Cursor
2026-03-13 16:30:12 +01:00
d832559027
Merge branch 'develop' of https://git.ptits-pas.fr/jmartin/petitspas into develop
2026-03-13 10:52:28 +01:00
54ad1d2aa1
docs: retirer référence aux scripts Gitea validation supprimés
...
Made-with: Cursor
2026-03-13 10:52:15 +01:00
86b28abe51
feat( #111 ): Reprise après refus – backend
...
- GET /auth/reprise-dossier?token= : dossier pour préremplir (token seul)
- PATCH /auth/reprise-resoumettre : token + champs modifiables → en_attente, token invalidé
- POST /auth/reprise-identify : numero_dossier + email → type + token
- UserService: findByTokenReprise, resoumettreReprise, findByNumeroDossierAndEmailForReprise
Made-with: Cursor
2026-03-12 23:04:45 +01:00
86d8189038
feat( #110 ): Refus sans suppression – token reprise + email
...
- Colonnes token_reprise, token_reprise_expire_le (migration + BDD.sql)
- refuser: génère token (7j), enregistre, trace validations, envoie email (template refus + lien reprise)
- MailService.sendRefusEmail ; échec email ne bloque pas le refus
Made-with: Cursor
2026-03-12 22:56:27 +01:00
dbcb3611d4
feat( #108 ): Validation dossier famille – POST /parents/:parentId/valider-dossier
...
- getFamilyUserIds(parentId) : tous les user_id de la famille (co_parent + enfants partagés)
- Valide en une fois tous les comptes en_attente/refuse de la famille (validateUser)
- Réponse : liste des Users validés
Made-with: Cursor
2026-03-12 22:46:17 +01:00
1fa70f4052
feat( #106 ): Liste familles en attente – GET /parents/pending-families
...
- Une entrée par famille (co_parent + enfants partagés, même logique que backfill #103 )
- libelle, parentIds, numero_dossier ; filtre statut en_attente
- AuthGuard + RolesGuard sur controller parents
Made-with: Cursor
2026-03-12 22:36:16 +01:00
393a527c37
feat( #105 ): Statut « refusé » – enum, migration, pending/reprise, refuser, connexion
...
- Enum statut_utilisateur_type + valeur 'refuse' (migration + BDD.sql)
- GET /users/reprise, PATCH /users/:id/refuser (refus_compte en validations)
- PATCH /users/:id/valider accepte en_attente et refuse (reprise)
- Connexion refusée si statut refuse
Made-with: Cursor
2026-03-12 22:21:12 +01:00
dfd58d9b6c
feat( #103 ): Numéro de dossier – backend
...
- Colonne numero_dossier (utilisateurs, assistantes_maternelles, parents)
- Table numero_dossier_sequence, format AAAA-NNNNNN, séquence par année
- Génération à la soumission AM et parent (famille)
- Backfill existants (famille = co_parent ou enfants partagés)
- API PATCH /users/:id/numero-dossier (gestionnaire/admin)
- Garde-fous: max 2 parents/dossier, pas de mélange AM/parent
Made-with: Cursor
2026-03-12 22:12:33 +01:00
34a36b069e
docs: liste tickets complète (23_LISTE-TICKETS) + script gitea-close-issue
...
Made-with: Cursor
2026-03-11 22:19:33 +01:00
2fa546e6b7
fix(inscription AM): format NIR Corse + extraction message erreur API
...
Made-with: Cursor
2026-02-26 21:02:40 +01:00
8636b16659
feat(inscription AM): câblage API step 4 + AuthService.registerAM avec nir_utils
...
Made-with: Cursor
2026-02-26 20:52:37 +01:00
7e17e5ff8d
Merge branch 'feature/91-cablage-inscription-am' into develop
...
Made-with: Cursor
2026-02-26 19:11:38 +01:00
e8b6d906e6
Merge branch 'feature/prefill-am-marie-dubois' into develop
...
Made-with: Cursor
2026-02-26 19:10:47 +01:00
ae0be04964
test(inscription AM): Préremplissage données de test Marie DUBOIS
...
Étapes 1 à 3 du formulaire d'inscription AM : remplacer les données
aléatoires par le jeu de test officiel (03_seed_test_data.sql).
Made-with: Cursor
2026-02-26 19:10:04 +01:00
ca98821b3e
Merge develop into master (squash): ticket #102 NIR harmonisation
...
- Backend: DTO NIR 15 car 2A/2B, validation format+clé, warning cohérence
- BDD: nir_chiffre NOT NULL, migration pour bases existantes
- Seeds: 02 nir_chiffre, 03 Marie 2A / Fatima 99
- Frontend: nir_utils, nir_text_field, formulaire pro, mock inscription AM
Made-with: Cursor
2026-02-26 13:55:42 +01:00
447f3d4137
fix( #102 ): 02_seed - ajouter nir_chiffre à l'INSERT assistantes_maternelles (NOT NULL)
...
Made-with: Cursor
2026-02-26 13:53:41 +01:00
721f40599b
feat(frontend): NIR 15 car., formatage, validation, widget dédié ( #102 )
...
- nir_utils: normalizeNir, formatNir, validateNir (format + clé), Corse 2A/2B
- NirInputFormatter: formatage auto à la saisie (espaces + tiret)
- NirTextField: widget réutilisable pour champ NIR
- professional_info_form_screen: NIR 15 car., affichage formaté à l'init
- custom_app_text_field: paramètre inputFormatters
Refs: #102
Made-with: Cursor
2026-02-26 13:49:57 +01:00
a9c6b9e15b
feat( #102 ): BDD nir_chiffre NOT NULL + migration pour bases existantes
...
Made-with: Cursor
2026-02-26 12:56:15 +01:00
38c003ef6f
feat( #102 ): mock préremplissage AM étape 2 - NIR Marie Dubois 2A (Ajaccio)
...
Made-with: Cursor
2026-02-26 11:24:27 +01:00
3dbddbb8c4
feat( #102 ): seed NIR Marie 2A (Corse Ajaccio), Fatima 99 (étranger), doc
...
Made-with: Cursor
2026-02-26 11:23:59 +01:00
f46740c6ab
feat( #102 ): validation NIR (format + clé 2A/2B) + warning cohérence
...
Made-with: Cursor
2026-02-26 11:23:22 +01:00
85bfef7a6b
feat( #102 ): DTO NIR - accepter 2A/2B Corse (15 caractères)
...
Made-with: Cursor
2026-02-26 11:21:45 +01:00
b1a80f85c9
Squash merge develop into master (feat #25 API users/pending, dashboards, login)
...
Made-with: Cursor
2026-02-26 10:44:04 +01:00
3c2ecdff7a
Merge branch 'feature/25-backend-pending-users' - feat( #25 ): API GET /users/pending
2026-02-26 10:43:09 +01:00
8b83702bd2
feat( #25 ): API GET /users/pending - liste comptes en attente
...
- UserController: endpoint GET /users/pending (rôles SUPER_ADMIN, ADMINISTRATEUR, GESTIONNAIRE)
- UserService: findPendingUsers(role?) avec filtre statut EN_ATTENTE
- GestionnairesService: retrait date_consentement_photo (non présent dans DTO)
Made-with: Cursor
2026-02-26 10:37:22 +01:00
19b8be684f
test(inscription AM): Données de test Marie DUBOIS pour le parcours d'inscription
...
En vue du câblage de l'inscription AM sur l'API (#91 ), remplacement des
données aléatoires par le jeu de test officiel (Marie DUBOIS, seed
03_seed_test_data.sql / docs/test-data) dans les étapes 1 à 3 du
formulaire. Facilite les tests manuels et la recette.
- Étape 1 : identité (Marie DUBOIS, 25 Rue de la République, Bezons)
- Étape 2 : infos pro (NIR, agrément AGR-2019-095001, capacité 4)
- Étape 3 : texte de présentation (biographie du seed)
Autres mises à jour : scripts Gitea, doc tickets, dashboards.
Refs: #91
Made-with: Cursor
2026-02-26 10:30:40 +01:00
e713c05da1
feat: Bandeau générique, dashboards et doc (squash develop, Closes #100 )
...
- Bandeau générique (DashboardBandeau) pour Parent, Admin, Gestionnaire, AM
- ParentDashboardScreen, AdminDashboardScreen, GestionnaireDashboardScreen, AM dashboard
- AppFooter responsive, scripts Gitea (create/list issues parent API)
- Doc: ticket #101 Inscription Parent API, mise à jour 23_LISTE-TICKETS
- User.fromJson robustesse (nullable id/email/role)
- Suppression dashboard_app_bar.dart au profit de dashboard_bandeau.dart
Refs: #100 , #101
Made-with: Cursor
2026-02-25 21:48:38 +01:00
5950d85876
feat(frontend): Bandeau générique, footer et doc ( #100 )
...
- ParentDashboardScreen : utilisation de DashboardBandeau et AppFooter
- app_footer : footer responsive (desktop / mobile)
- docs/23_LISTE-TICKETS.md : mise à jour liste des tickets
- docs/POINT_TICKETS_FRONT_API.txt : point tickets frontend/API
- backend/scripts : create-gitea-issue-parent-api.js, list-gitea-issues.js
Refs: #100
Made-with: Cursor
2026-02-25 21:44:59 +01:00
4339e1e53d
feat(100): bandeau dashboard générique, icônes rôle/email, footer go_router, user fromJson défensif
...
- Bandeau générique DashboardBandeau (logo | onglets | capsule utilisateur)
- Capsule: icône rôle (admin/gestionnaire/parent/AM) + Prénom Nom + menu (email avec icône, Profil, Paramètres, Déconnexion)
- Migration admin, gestionnaire, parent, AM vers DashboardBandeau
- Écran AM (page blanche), route /am-dashboard
- Routes /privacy et /legal, footer avec context.push
- AppUser.fromJson: id/email/role null-safe
- Suppression DashboardAppBarAdmin et dashboard_app_bar.dart
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-25 19:50:53 +01:00
51d279e341
docs: fermeture ticket #44 (Dashboard Gestionnaire - Structure)
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-25 16:37:54 +01:00
fffe8cd202
merge: squash develop into master ( #44 Dashboard Gestionnaire - Structure)
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-25 16:37:15 +01:00
defa438edf
feat( #44 ): UserManagementPanel + masquer onglet Administrateurs (dashboard gestionnaire)
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-25 16:35:35 +01:00
e990d576cf
feat( #44 ): dashboard gestionnaire + redirection login rôle gestionnaire
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-25 16:20:59 +01:00
619e39219f
merge: squash develop into master (login autofill + clavier #98 )
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-25 12:00:51 +01:00
e8c6665a06
fix( #98 ): corriger la compatibilité Flutter du bouton image
...
Supprime le paramètre mouseCursor de TextButton.styleFrom (non supporté par la version Flutter du projet) et conserve le curseur pointeur via MouseRegion.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-25 11:10:35 +01:00
a4e6cfc50e
feat( #98 ): améliorer le login avec autofill natif et navigation clavier
...
Active l’autofill navigateur/OS sur le formulaire de connexion et complète l’accessibilité clavier (Tab jusqu’au bouton, Entrée sur le mot de passe) sans stockage local custom des identifiants.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-24 23:27:04 +01:00
6749f2025a
fix(backend): remove date_consentement_photo from gestionnaire update
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-24 23:15:29 +01:00
119edbcfb4
merge: squash develop into master
...
Intègre en un seul commit les évolutions récentes de develop vers master, incluant la modale admin/gestionnaire, les protections super admin, les ajustements API associés et la mise à jour documentaire des tickets/spec.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-24 22:58:40 +01:00
80d69a5463
docs: aligner tickets Gitea et figer la spec admin
...
Synchronise les statuts des tickets #93/#95/#96/#97 avec l'API Gitea et finalise la SSS-001 avec le contrat de gestion des comptes d'administration.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-24 22:55:22 +01:00
0579fda553
merge: intégrer feature/96-creation-admin-modale dans develop
...
Fusionne le ticket #96 avec résolution des conflits sur la modale partagée, les droits admin/super admin et l’harmonisation visuelle des listes utilisateurs.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-24 22:36:58 +01:00
d14550a1cf
feat( #96 ): harmoniser les icones de rôles en liste et modale
...
Uniformise l'identité visuelle des rôles (admin, super admin, gestionnaire, parent) avec icônes dédiées dans les listes et la modale, et affiche le téléphone dans la ligne admin en retirant le rôle redondant.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-24 22:31:23 +01:00