57ce5af0f4
Merge branch 'develop' of https://git.ptits-pas.fr/jmartin/petitspas into develop
2026-02-23 23:24:37 +01:00
c1204a3050
fix(backend): merge fix/remove-adresse-gestionnaire
2026-02-23 23:19:50 +01:00
9d4363b2a7
fix(backend): remove adresse from CreateGestionnaireDto and service
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 23:19:43 +01:00
af06ab1e66
Merge branch 'feature/93-homogeneisation-onglets-admin' into develop
2026-02-23 23:05:34 +01:00
aa148354ec
Merge branch 'develop' of https://git.ptits-pas.fr/jmartin/petitspas into develop
2026-02-23 23:01:53 +01:00
a10dc5a195
docs: mark ticket #17 as completed
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 22:47:15 +01:00
04c0b05aae
feat(backend): merge feature/17-backend-create-gestionnaire
2026-02-23 22:46:36 +01:00
d0b730c8ab
feat(backend): implement gestionnaire creation with email notification ( #17 )
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 22:46:30 +01:00
bc8362bdb7
refactor( #93 ): extraire un widget UserList réutilisable
...
Centralise le pattern d'affichage des listes utilisateurs pour garantir une UI homogène entre gestionnaires, parents, assistantes maternelles et administrateurs.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 17:59:03 +01:00
ac3178903d
docs( #93 ): tracer l'évolution RBAC intra-RPE dans le CDC
...
Documente la future gouvernance par rôles au sein d'un même relais pour cadrer les évolutions ultérieures sans l'intégrer au périmètre des tickets backend/frontend actuels.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 17:32:09 +01:00
aec1990ec9
refactor( #93 ): uniformiser la ligne utilisateur et afficher Modifier au survol
...
Met le rendu des lignes sur une seule ligne (icone, nom, infos) et n’affiche l’action Modifier qu’au hover pour alléger visuellement les listes.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 17:32:09 +01:00
5da2ab9005
feat( #93 ): optimiser l’affichage Parents/AM avec modale de détails
...
Intègre un bandeau unique (onglets à gauche, recherche/filtre en pilule, bouton Ajouter à droite) et compacte les cartes Parents/AM avec ouverture d’une modale complète sur Modifier (croix, actions Modifier/Supprimer).
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 17:32:03 +01:00
b2d6414fab
refactor( #93 ): homogénéiser la présentation des onglets admin
...
Uniformise les 4 onglets de gestion admin avec des composants UI partagés (header, états de liste, carte utilisateur) pour garantir une expérience cohérente sans changement backend.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 17:31:50 +01:00
fbafef8f2c
feat( #95 ): implémenter la gestion Relais admin et le rattachement gestionnaire
...
Ajoute la section Paramètres territoriaux avec CRUD Relais, modale de saisie structurée, états visuels harmonisés, et rattachement d'un relais principal aux gestionnaires via l'API.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 20:06:17 +01:00
135c7c2255
docs: mark ticket #94 as completed
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 14:39:17 +01:00
9cce326046
feat(backend): merge feature/94-backend-relais (Relais module and database update)
2026-02-21 14:38:44 +01:00
d697083f54
feat(database): add Relais table to initialization script
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 14:34:45 +01:00
ae786426fd
feat(backend): implement Relais module and relation with Gestionnaire (Ticket #94 )
...
- Create Relais entity
- Create Relais module, controller, service with CRUD
- Update Users entity with ManyToOne relation to Relais
- Update GestionnairesService to handle relaisId
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 14:27:14 +01:00
e4f7a35f0f
fix( #92 ): activer endpoint GET /gestionnaires (note backend)
...
- UserModule: importer GestionnairesModule
- GestionnairesModule: importer AuthModule (AuthGuard/JwtService)
- user_service: appeler /gestionnaires au lieu de /users + filtre
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 22:46:11 +01:00
8a6768b316
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
- Note: Gestionnaires endpoint is currently bypassed in frontend (using /users filter) due to module import issue (documented in docs/92_NOTE-BACKEND-GESTIONNAIRES.md)
- Docs:
- Add note about backend fix for Gestionnaires module
- Update .cursorrules to forbid worktrees
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 21:43:27 +01:00
3892a8beab
feat( #92 ): seed données de test dashboard admin + script reset BDD
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 17:27:26 +01:00
d39bc55be3
chore(backend): variables LOG_API_REQUESTS et CONFIG_ENCRYPTION_KEY dans docker-compose
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 17:26:19 +01:00
e0debf0394
docs: README BDD seed/reset, liste tickets #92 , procédure API Gitea, statut application
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 17:26:13 +01:00
31bd8c3175
fix( #90 ): BDD assistantes_maternelles alignée entité + script test curl
...
- BDD.sql: ville_residence, annee_experience, specialite, date_agrement nullable
- scripts/test-register-am.sh pour tester POST /auth/register/am
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 16:18:06 +01:00
c94f2cf0d5
feat( #90 ): API Inscription AM - POST /auth/register/am
...
- DTO RegisterAMCompletDto (identité, photo, infos pro, CGU)
- Endpoint POST /auth/register/am + inscrireAMComplet() (transaction User + AssistanteMaternelle)
- Photo base64, token création MDP, consentement photo
- Suppression legacy: route register/parent/legacy, registerParent(), RegisterParentDto
- Frontend: ApiConfig.registerAM pour ticket #91
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 00:05:23 +01:00
111935e451
Merge branch 'feature/14-premiere-connexion-config' into develop ( #14 )
2026-02-15 23:20:00 +01:00
ae3292a7fc
fix(backend): setup/complete accepte userId null pour éviter erreur UUID ( #14 )
...
- completeSetup: userId = req.user?.id ?? null (plus de fallback 'system')
- markSetupCompleted(userId: string | null), set(..., userId ?? undefined)
- Corrige 'invalid input syntax for type uuid: "system"' au clic Sauvegarder
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 23:19:18 +01:00
8e8c6d79b1
feat( #14 ): finalisation redirection et nettoyage
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 23:08:02 +01:00
6752dc97b4
feat( #14 ): redirection première connexion config
...
- Redirection vers /login après première config réussie
- Gestion défensive des réponses API (200/201, bool/string)
- Force l'onglet Paramètres si setup non terminé
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 23:02:12 +01:00
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
ca7ef862da
feat(admin): première connexion → panneau Paramètres, reste grisé jusqu'à Sauvegarder ( #14 )
...
- Au chargement admin: appel getSetupStatus(), si non terminé → onglet Paramètres par défaut
- Onglet Gestion des utilisateurs grisé et inaccessible tant que setup non complété
- Sauvegarder: updateBulk + completeSetup + déblocage des panneaux
- Tester SMTP: saveBulkOnly puis test (sans completeSetup, panneaux restent verrouillés)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 15:54:47 +01:00
358eefdab3
Merge branch 'feature/89-log-api-requests' into develop ( #89 )
2026-02-13 15:25:56 +01:00
1834eb8c79
feat(admin): panneau Paramètres - sauvegarde config + test SMTP
...
- Onglet Paramètres dans l'admin avec 3 sections (Email, Personnalisation, Avancé)
- Service ConfigurationService (GET config, PATCH bulk, POST test-smtp)
- Bouton Sauvegarder et bouton Tester SMTP (sauvegarde avant test)
- Endpoints api_config pour configuration
Closes #15
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 11:16:37 +01:00
0386785f81
feat(backend): log des appels API en mode debug ( #89 )
...
- Ajout LogRequestInterceptor (méthode, URL, query, body)
- Activé via LOG_API_REQUESTS=true
- Masquage des champs sensibles (password, smtp_password, token...)
- Enregistrement global dans main.ts, doc dans .env.example
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 11:15:41 +01:00
c43f55bed6
Merge origin/develop (conflit 23_LISTE-TICKETS résolu, garde numéros = Gitea)
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-10 00:20:59 +01:00
0c48a5c06f
Merge branch 'develop' (docs concept v1.3, conflit résolu)
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-10 00:20:32 +01:00
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
18b270eaa3
Merge origin/develop: résolution conflits doc tickets
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-09 23:55:16 +01:00
68e4f54814
Merge develop (squash): correctifs modale MDP (champs lavande/jaune), doc tickets 84/85
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-09 23:53:58 +01:00
6794190916
chore(login): retrait du lien Test modale MDP
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-09 23:52:51 +01:00
790761d576
fix(modale): champs MDP actuel lavande, nouveau et confirmation jaune
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-09 23:52:25 +01:00
930097f87d
Merge develop: fix auth connexion admin ( #84 )
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-09 22:37:48 +01:00
18af5c9034
fix(auth): connexion admin - token snake_case, routes GoRouter, profil ( Closes #84 )
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-09 22:36:52 +01:00
10bf2553e7
fix(ui): renforcer ombre des boutons Parents/AM sur mobile (écran choix)
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 19:15:10 +01:00
678f4219b5
docs: ticket #82 fermé (écran Login mobile)
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 18:56:07 +01:00
5295e8ec72
Merge develop (squash): login mobile, formulaire sous slogan par ratio
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 18:54:16 +01:00
480f4a9396
fix(login): position formulaire sous slogan par ratio image (river_logo_mobile)
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 18:53:37 +01:00
6bf0932da8
docs: Index, doc API Gitea et script fermeture issue
...
- docs/00_INDEX.md : entrée pour 26_GITEA-API
- docs/26_GITEA-API.md : procédure API Gitea (auth, issues, PR, branches, dépannage)
- scripts/gitea-close-issue.sh : fermer une issue via l'API (GITEA_TOKEN / .gitea-token)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 16:39:47 +01:00
2f1740b35f
docs: Ajouter ticket #83 RegisterChoiceScreen Mobile (terminé)
...
Mise à jour de la liste des tickets pour documenter le ticket #83 complété :
- Adaptation responsive RegisterChoiceScreen (mobile/desktop)
- Extraction ChoiceCardWidget réutilisable
- Bouton Précédent stylisé avec CustomNavigationButton
- Tailles icônes augmentées (140px/170px)
Total: 65 tickets (~184h)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 12:37:04 +01:00
fd97e68dd9
feat: Adapter RegisterChoiceScreen pour mobile ( Closes #83 )
...
- 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>
2026-02-08 12:34:50 +01:00