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
060e610a75
Merge branch 'develop' (squash) – Reprise après refus #111
...
Made-with: Cursor
2026-03-12 23:06:04 +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
7e32eef0a7
Merge branch 'develop' (squash) – Refus sans suppression #110
...
Made-with: Cursor
2026-03-12 22:57: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
aa4e240ad1
Merge branch 'develop' (squash) – Validation dossier famille #108
...
Made-with: Cursor
2026-03-12 22:47:41 +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
a92447aaf0
Merge branch 'develop' (squash) – Liste familles en attente #106
...
Made-with: Cursor
2026-03-12 22:37:41 +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
94c8a0d97a
Merge branch 'develop' (squash) – Statut refusé #105 , script Gitea fallback ~/.bashrc
...
Made-with: Cursor
2026-03-12 22:28:13 +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
af489f39b4
Merge branch 'develop' (squash) – Numéro de dossier #103 et autres avancements
...
Made-with: Cursor
2026-03-12 22:14:21 +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
aefe590d2c
Squash merge develop into master (câblage inscription AM #91 )
...
Made-with: Cursor
2026-02-26 21:21:17 +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
f749484731
test(inscription AM): Préremplissage données de test Marie DUBOIS (squash develop)
...
Étapes 1 à 3 du formulaire d'inscription AM : données du jeu de test
officiel (03_seed_test_data.sql) au lieu du générateur aléatoire.
Made-with: Cursor
2026-02-26 19:10:58 +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