jmartin
aae2beeac8
docs: rationalisation post-0.1.0 + bilan (depuis develop).
2026-09-14 17:45:52 +02:00
jmartin and Cursor
71b1897678
docs: rationalisation post-0.1.0 (bilan, purge tmp, archives).
...
- Bilan 29 + index versions 05 ; suivi tickets pointeur Gitea
- Purge docs/tmp et archive/temporaires livrés
- Archive SuperNounou, liste tickets figée, backlog Phase 2, notes 14/92
- Suppression stubs PROCEDURE/22 ; INDEX et roadmap alignés
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 17:45:43 +02:00
jmartin and Cursor
f745079f0a
feat( #164 ): uniformisation modale staff gestionnaire / admin (squash develop).
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 17:34:25 +02:00
jmartin and Cursor
1d6261b312
feat( #164 ): uniformise la modale staff (gestionnaire / admin).
...
Shell 930 + Validation*Field, dirty-state, StaffUserFormModal sous
widgets/dashboard/ ; retire AdminUserFormDialog.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 17:29:13 +02:00
jmartin
5b83102a59
feat(#152/#155): cleanup est_multiple + dashboard sans préfixe Admin (squash develop).
...
Suppression complète grossesse multiple / est_multiple (BDD, API, front).
Rename option C : widgets partagés et panels staff sous widgets/dashboard/,
AdminManagementWidget seul restant dans widgets/admin/.
2026-09-14 12:52:22 +02:00
jmartin and Cursor
939e7777ac
docs( #155 ): mini-spec phase 2 — move panels admin → dashboard.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 11:05:47 +02:00
jmartin and Cursor
a312d9c0fa
refactor( #155 ): option C — widgets partagés sans préfixe Admin.
...
Déplace les composants Admin* du dashboard partagé vers
widgets/dashboard/ (ChildDetailModal, AmEditModal, UserCard, Select*, …).
Conserve AdminManagementWidget et screens/administrateurs. Rename mécanique,
aucun changement de comportement.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 10:57:58 +02:00
jmartin and Cursor
946d8edcd2
feat( #152 ): suppression complète grossesse multiple / est_multiple.
...
Retire le champ partout : BDD (migration + seed), entity/DTO/services Nest,
modèles et payloads Flutter, scripts de test et docs. Back et front alignés
(forbidNonWhitelisted). Aucun fantôme de compat.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-10 23:08:36 +02:00
jmartin
d6d8b299dd
feat(#159/#160): suppressions métier dashboard — API + UI (squash develop).
...
Matrice PO #154 : supprimer dossiers famille/AM, parents, enfants et comptes
staff avec règles métier (placements clôturés, sans_enfant, cascade foyer,
droits gestionnaire/admin). Poubelle en liste, dialogues de confirmation,
garde-fou gestionnaire→gestionnaire. Inclut polish hauteur modale fiche AM.
2026-09-10 22:43:33 +02:00
jmartin and Cursor
7f23356273
feat( #159 ): suppressions métier dossiers/parents/enfants/AM/staff.
...
SuppressionService + DELETE /dossiers/:numero, cascades DELETE /users et
DELETE /enfants?deleteDossier, flag sans_enfant, specs front #160 .
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-09 18:01:44 +02:00
jmartin and Cursor
ea0e97d930
feat( #135 ): mode édition dossier + ajout co-parent (squash develop).
...
Wizard edit famille/AM, POST co-parent, PATCH enfants avec photo.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-08 17:32:06 +02:00
jmartin and Cursor
530e896b66
feat( #135 ): POST /parents/:id/co-parent — ajout co-parent foyer.
...
API staff pour foyer mono-parent : compte actif, liens + enfants,
mail création MDP. Mini-specs front/back dans docs/tmp.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-02 23:34:19 +02:00
jmartin and Cursor
84e46162fd
feat( #153 ): onglet permanent Dossiers — liste unifiée + pending.
...
Remplace l’onglet conditionnel « À valider » par un onglet Dossiers
(pending en haut, familles + AM en dessous), avec GET /dossiers,
recherche, et libellés pending NOM Prénom.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-24 19:41:44 +02:00
jmartin and Cursor
6708f73b06
feat( #153 ): GET /dossiers — liste unifiée familles + AM.
...
Endpoint staff pour l’onglet Dossiers : type, n°, libellé, emails,
statut, a_valider, filtre q. Complète GET /dossiers/:numero (#119 ).
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-24 18:13:32 +02:00
jmartin and Cursor
f596f062a6
docs( #153 ): mini-spec front onglet Dossiers permanent.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-24 18:10:20 +02:00
jmartin and Cursor
14580c34e0
feat( #129 ): création dossier famille staff — API + wizard dashboard.
...
Permet au dashboard de créer un dossier parent complet (pivot, co-parent
optionnel, enfants, n° dossier) déjà actif, avec e-mail de création de
mot de passe — miroir du parcours AM (#156 ), sans passer par l’inscription
publique en attente.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-24 13:16:02 +02:00
jmartin and Cursor
30ca99fb65
feat( #129 ): POST /parents/dossier — création dossier famille staff.
...
Factorise createParentDossier (actif + mail MDP) depuis l’inscription
publique qui reste en_attente + mail pending. Miroir #156 AM.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-23 16:59:09 +02:00
jmartin and Cursor
ae610733cc
feat( #156 ): création dossier AM staff — API + wizard dashboard.
...
Squash depuis develop : POST /assistantes-maternelles/dossier (actif +
mail MDP), AmDossierWizard create/review, validations inscription.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-23 16:53:18 +02:00
jmartin and Cursor
59afeb0a8d
feat( #156 ): POST /assistantes-maternelles/dossier staff (actif + mail MDP).
...
Factorise createAmDossier depuis register/am ; staff crée un dossier
déjà actif et envoie l’e-mail de création de mot de passe.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-22 19:03:37 +02:00
jmartin and Cursor
846afed86c
feat( #158 ): affiliation enfant au foyer — attach/detach pivot + co-parent.
...
Squash depuis develop : un POST/DELETE propage les liens à tout le foyer ;
front un seul appel API ; doc empreinte.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-22 18:31:15 +02:00
jmartin and Cursor
d2172eafdb
docs: snapshot empreinte code / disque (2026-07-22).
...
Mémoire après alerte disque plein — lignes de code et contexte VPS.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-22 18:27:49 +02:00
jmartin and Cursor
003fe6b762
feat( #131 ): fiches parent/AM éditable, placement AM↔enfant, statuts garde/sans_garde
...
Squash merge develop → master.
- Fiche parent éditable (co-parent, PATCH fiche, GET /parents)
- Fiche AM 3 onglets (PATCH fiche, rattacher/détacher enfants)
- Table enfants_assistantes_maternelles + enum garde/sans_garde
- Migration SQL + BDD.sql canonique
- Correctifs recette : @Get() parents, DTO fiche AM, fix NIR
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-11 22:49:57 +02:00
jmartin and Cursor
b99745e0fe
feat( #112 ): reprise après refus — dossier complet, email resoumission
...
- GET/PATCH reprise-dossier enrichis (parents, enfants, motivation, fiche AM)
- Front: lien mail, modale identify login, wizards préremplis, PATCH complet
- Email accusé resoumission aux parents avec n° de dossier
- Fixes préremplissage AM (dates, places, ValueKey étape 2)
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-16 19:19:55 +02:00
jmartin and Cursor
a4eee819cd
docs( #127 ): préciser milestone 0.1.0 vs label v0.1.0 (Gitea)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-04 22:35:12 +02:00
jmartin and Cursor
6f39813bb4
docs( #127 ): statut fermé + label v0.1.0 (alignement Gitea)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-04 22:33:43 +02:00
jmartin
e2188fbc87
docs( #127 ): liste tickets + issue Gitea mot de passe oublié; chmod create-gitea-issue.sh
...
Made-with: Cursor
2026-04-23 16:48:13 +02:00
jmartin
2c746ceff3
fix(front,db,ci): déploiement web, API même origine, Flutter 3.29, schéma validations
...
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
2026-04-22 18:48:17 +02:00
jmartin
7590c95f06
refactor(mail): #28 un seul template email parent (principal + co-parent)
...
Made-with: Cursor
2026-04-17 18:37:47 +02:00
jmartin
94d9428c43
feat(backend): #28 templates email validation compte (Handlebars)
...
- Templates .hbs parent principal, co-parent, AM + lien create-password
- app_name / app_url / expéditeur via ConfigService (sendEmail)
- validateUser: renouvelle token création MDP + envoi email si sans password
- Dist: assets *.hbs (nest-cli)
- Tests unitaires MailService (mock sendEmail)
- Doc liste tickets #28 terminé
Made-with: Cursor
2026-04-17 18:34:04 +02:00
jmartin
7381ce356d
feat(frontend): #50 — validation CGU et politique de confidentialité
...
- 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
2026-04-17 17:28:07 +02:00
jmartin
b0594c32e7
docs(tickets): #24 livré backend, #43 alignement API verify-token/create-password
...
Made-with: Cursor
2026-04-16 22:56:42 +02:00
jmartin
0cc6fa3a9d
docs: ticket #120 fermé — liste tickets + script clôture Gitea
...
- 23_LISTE-TICKETS : #120 marqué fermé.
- backend/scripts/close-gitea-issue-120.js : commentaire de livraison + PATCH state closed (réutilisable / traçabilité).
Made-with: Cursor
2026-04-13 17:40:58 +02:00
jmartin
58607cdbc9
feat(inscription AM #120 ): UI étape pro, photo unifiée, scripts et données test
...
- Panneau AM : validation NIR alignée API, date d’agrément requise côté app,
capacité 1–10, n° agrément + date sur une ligne, ville/pays formatés au blur.
- Widget RegistrationPhotoSlot (cadre, croix) partagé avec les cartes enfant.
- AuthService : MIME PNG/JPEG pour la photo ; payload date_agrement.
- Scripts register-am-dubois / mansouri ; chemins tests/ressources/photos ;
doc test-data + seed ; smoke curl inscription AM.
Made-with: Cursor
2026-04-13 13:19:32 +02:00
jmartin
01c1be8f16
feat(am): inscription photo (picker, bytes web, photo_filename) ( #120 )
...
- ProfessionalInfoFormScreen : ImagePicker par défaut, MemoryImage, consentement si photo réelle
- AmRegistrationData : photoBytes + photoFilename ; récap étape 4
- registerAM : base64 + filename, erreurs réseau/JSON comme parents
- docs: 23_LISTE-TICKETS — issue #120
Made-with: Cursor
2026-04-13 13:19:31 +02:00
jmartin
cdae9b5f7c
feat(am): alignement inscription/validation + BDD init
...
- Lieu naissance obligatoire (DTO), persistance Users + migration SQL
- BDD.sql: colonnes lieu_naissance_*, tables dossier_famille / dossier_famille_enfants
- inscrireAMComplet: places_available = capacite_accueil
- GET dossier AM: user.lieu_naissance_*, consentement_photo
- docs/TEMP_FRONT_alignement_AM.md pour équipe Flutter
- Parité: email accusé AM, RegisterAmResponseDto (numero_dossier)
Made-with: Cursor
2026-04-13 13:14:38 +02:00
jmartin
0a07fade40
docs: liste tickets — fermeture #106 #107 #109 #119 (Gitea)
...
Made-with: Cursor
2026-03-26 00:20:32 +01:00
jmartin
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
jmartin
54ad1d2aa1
docs: retirer référence aux scripts Gitea validation supprimés
...
Made-with: Cursor
2026-03-13 10:52:15 +01:00
jmartin
34a36b069e
docs: liste tickets complète (23_LISTE-TICKETS) + script gitea-close-issue
...
Made-with: Cursor
2026-03-11 22:19:33 +01:00
jmartin
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
jmartin and Cursor
51d279e341
docs: fermeture ticket #44 (Dashboard Gestionnaire - Structure)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-25 16:37:54 +01:00
jmartin and Cursor
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
jmartin and Cursor
33cc7a9191
feat(backend): add create admin API and update docs
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-24 11:07:14 +01:00
jmartin and Cursor
4b176b7083
feat: livrer ticket #93 et finaliser #17 avec gestion des Relais ( #95 )
...
Homogénéise le dashboard admin (onglets/listes/cartes/états) via composants réutilisables, finalise la création gestionnaire côté backend, et intègre la gestion des Relais avec rattachement gestionnaire.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-23 23:07:04 +01:00
jmartin and Cursor
00c42c7bee
feat(release): Backend Gestionnaire Creation ( #17 )
...
- Implemented MailModule and MailService
- Updated GestionnairesService to send welcome email
- Forced password change on first login for new gestionnaires
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-23 22:50:13 +01:00
jmartin and Cursor
42c569e491
feat(release): Backend Relais Module ( #94 )
...
- Implemented Relais entity and CRUD API
- Added relation between Users (Gestionnaires) and Relais
- Updated database initialization script
- Documentation updates
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-21 14:40:32 +01:00
jmartin and Cursor
d32d956b0e
feat(dashboard-admin): connect admin dashboard to real API data (Ticket #92 )
...
- Frontend:
- Create UserService to handle user-related API calls (gestionnaires, parents, AMs, admins)
- Update AdminDashboardScreen to use dynamic widgets
- Implement dynamic management widgets:
- GestionnaireManagementWidget
- ParentManagementWidget
- AssistanteMaternelleManagementWidget
- AdminManagementWidget
- Add data models: ParentModel, AssistanteMaternelleModel
- Update AppUser model
- Update ApiConfig
- Backend:
- Update controllers (Parents, AMs, Gestionnaires, Users) to allow ADMINISTRATEUR role to list users
- Fix: Activate endpoint GET /gestionnaires (import GestionnairesModule in UserModule)
- Docs:
- Add note about backend fix for Gestionnaires module
- Update .cursorrules to forbid worktrees
- Seed:
- Add test data seed script (reset-and-seed-db.sh)
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-17 22:17:51 +01:00
jmartin and Cursor
31857ec891
docs( #14 ): note back config/setup + frontend parsing erreurs
...
- docs/14_NOTE-BACKEND-CONFIG-SETUP.md : modifs à faire côté back (UUID system)
- configuration_service : parsing défensif des réponses d'erreur (évite JSNull)
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-13 16:10:04 +01:00
jmartin and Cursor
be8b1f23ed
docs: concept v1.3 config (panneau Paramètres 3 sections, numéros = Gitea)
...
- 21_CONFIGURATION-SYSTEME: workflow sans /admin/setup, 3 sections, panneau unique
- 23_LISTE-TICKETS: numéros de section = numéros Gitea, tickets #14/#15 alignés
- 24_DECISIONS-PROJET: config initiale = panneau + navigation bloquée
- BRIEFING-FRONTEND: tickets #12/#13 remplacés par panneau Paramètres
- Suppression login_screen.dart.bak
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-10 00:19:35 +01:00
jmartin and Cursor
930097f87d
Merge develop: fix auth connexion admin ( #84 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-09 22:37:48 +01:00