diff --git a/docs/21_CONFIGURATION-SYSTEME.md b/docs/21_CONFIGURATION-SYSTEME.md
index fc438b5..397e54d 100644
--- a/docs/21_CONFIGURATION-SYSTEME.md
+++ b/docs/21_CONFIGURATION-SYSTEME.md
@@ -1,7 +1,7 @@
# đ§ Documentation Technique - Configuration SystĂšme On-Premise
-**Version** : 1.0
-**Date** : 25 Novembre 2025
+**Version** : 1.1
+**Date** : 9 Février 2026
**Auteur** : Ăquipe PtitsPas
**Référence** : Architecture On-Premise
@@ -78,7 +78,7 @@ L'application P'titsPas est déployée **on-premise** chez différentes collecti
2. **ConfigService** : Cache en mémoire + chiffrement
3. **ConfigAPI** : Endpoints REST pour CRUD
4. **Guard Setup** : Redirection forcée si config incomplÚte
-5. **Interface Admin** : Formulaire de configuration
+5. **Interface Admin** : Panneau ParamĂštres (3 sections) dans le dashboard, premiĂšre config + accĂšs permanent
---
@@ -304,93 +304,69 @@ export class ConfigService {
```mermaid
sequenceDiagram
- participant SA as Super Admin
- participant App as Application
- participant Guard as SetupGuard
+ participant Op as Opérateur
+ participant App as Application (Dashboard)
participant API as ConfigAPI
participant DB as PostgreSQL
participant SMTP as Serveur SMTP
- SA->>App: PremiĂšre connexion
- App->>Guard: Vérifier setup_completed
- Guard->>DB: SELECT valeur FROM configuration
WHERE cle='setup_completed'
- DB-->>Guard: 'false'
+ Op->>App: PremiĂšre connexion (admin)
+ App->>API: GET /configuration/setup/status
+ API->>DB: setup_completed ?
+ DB-->>API: false
+ API-->>App: setupCompleted: false
- Guard-->>App: Redirection forcée vers
/admin/setup
+ App->>App: Affiche panneau Configuration
et bloque les autres onglets
- SA->>SA: Remplit formulaire config
(SMTP, app, sécurité)
+ Op->>Op: Remplit les 3 sections
(Email, Personnalisation, Avancé)
- SA->>App: Clic "Tester la connexion SMTP"
+ Op->>App: Clic "Tester la connexion SMTP"
App->>API: POST /api/v1/configuration/test-smtp
API->>SMTP: Test connexion
alt Test SMTP OK
SMTP-->>API: â
Connexion réussie
- API->>SA: Envoi email de test
+ API->>Op: Envoi email de test
API-->>App: â
Test réussi
- App-->>SA: Message: "Email de test envoyé"
+ App-->>Op: Message: "Email de test envoyé"
else Test SMTP KO
SMTP-->>API: â Erreur connexion
API-->>App: â Erreur dĂ©taillĂ©e
- App-->>SA: Message: "Erreur: vérifiez les paramÚtres"
+ App-->>Op: Message: "Erreur: vérifiez les paramÚtres"
end
- SA->>App: Clic "Sauvegarder"
+ Op->>App: Clic "Sauvegarder et terminer la configuration"
App->>API: PATCH /api/v1/configuration/bulk
{smtp_host, smtp_port, ...}
+ API->>DB: UPDATE configuration SET valeur=...
+ API-->>App: OK
- API->>DB: BEGIN TRANSACTION
- API->>DB: UPDATE configuration SET valeur=...
FOR EACH key
- API->>DB: UPDATE configuration
SET valeur='true'
WHERE cle='setup_completed'
- API->>DB: COMMIT
-
+ App->>API: POST /api/v1/configuration/setup/complete
+ API->>DB: SET setup_completed = true
API->>API: Recharger cache ConfigService
+ API-->>App: OK
- API-->>App: â
Configuration sauvegardée
- App-->>SA: Redirection vers /admin/dashboard
-
- SA->>App: AccĂšs complet Ă l'application
+ App->>App: Débloque la navigation
Message succĂšs
+ Op->>App: AccĂšs complet au dashboard
```
### Ătapes dĂ©taillĂ©es
#### 1. Détection configuration incomplÚte
-**Guard** : `SetupGuard` (NestJS)
+**Backend** : Le `SetupGuard` (NestJS) vĂ©rifie `setup_completed`. Si false, il autorise lâaccĂšs au dashboard et aux APIs configuration (pas de redirection vers une page dĂ©diĂ©e). Le **frontend** appelle `GET /configuration/setup/status` au chargement du dashboard admin ; si `setupCompleted === false`, il affiche directement le **panneau ParamĂštres** et dĂ©sactive les autres onglets jusquâĂ sauvegarde.
+
+**Guard** (exemple) : exemption des routes login + dashboard + APIs configuration.
```typescript
-@Injectable()
-export class SetupGuard implements CanActivate {
- constructor(private configService: ConfigService) {}
-
- canActivate(context: ExecutionContext): boolean {
- const request = context.switchToHttp().getRequest();
- const setupCompleted = this.configService.get('setup_completed', false);
-
- // Exemptions
- const exemptedRoutes = ['/auth/login', '/admin/setup', '/api/v1/configuration'];
- if (exemptedRoutes.some(route => request.url.includes(route))) {
- return true;
- }
-
- // Si setup non complété, bloquer
- if (!setupCompleted) {
- throw new HttpException(
- 'Configuration initiale requise',
- HttpStatus.TEMPORARY_REDIRECT,
- { location: '/admin/setup' }
- );
- }
-
- return true;
- }
-}
+// Exemptions : /auth/login, /api/v1/configuration, routes dashboard admin
+// Si setup non complĂ©tĂ© : pas de redirection HTTP ; le frontend gĂšre lâaffichage du panneau Config et le blocage des onglets.
```
-#### 2. Formulaire Setup (Frontend)
+#### 2. Panneau ParamĂštres (Frontend)
-**3 onglets** :
+**Une seule page avec 3 sections** (blocs successifs, pas dâonglets dans le formulaire) :
-##### Onglet 1 : Configuration Email đ§
+##### Section 1 : Configuration Email đ§
| Champ | Type | Valeur par défaut | Obligatoire |
|-------|------|-------------------|-------------|
@@ -405,7 +381,7 @@ export class SetupGuard implements CanActivate {
**Bouton** : "đ§Ș Tester la connexion SMTP"
-##### Onglet 2 : Personnalisation đš
+##### Section 2 : Personnalisation đš
| Champ | Type | Valeur par défaut | Obligatoire |
|-------|------|-------------------|-------------|
@@ -413,7 +389,7 @@ export class SetupGuard implements CanActivate {
| URL de l'application | URL | `https://app.ptits-pas.fr` | â
|
| Logo | File (PNG/JPG) | Logo par dĂ©faut | â |
-##### Onglet 3 : ParamĂštres avancĂ©s âïž
+##### Section 3 : ParamĂštres avancĂ©s âïž
| Champ | Type | Valeur par défaut | Obligatoire |
|-------|------|-------------------|-------------|
@@ -421,7 +397,7 @@ export class SetupGuard implements CanActivate {
| DurĂ©e session JWT (heures) | Number | `24` | â
|
| Taille max upload (MB) | Number | `5` | â
|
-**Bouton** : "đŸ Sauvegarder et terminer la configuration"
+**Bouton** : "đŸ Sauvegarder et terminer la configuration" (premiĂšre config) ou "đŸ Enregistrer" (accĂšs permanent).
---
@@ -536,60 +512,39 @@ Content-Type: application/json
## đ» Interface Admin
-### Ăcran Setup Initial
+### Panneau ParamĂštres / Configuration (unique)
+
+Un **seul panneau** dans le dashboard admin, avec **3 sections** affichĂ©es sur une mĂȘme page (dĂ©filement si besoin). Pas dâonglets dans le formulaire.
+
+- **PremiĂšre configuration** (au dĂ©ploiement, `setup_completed === false`) : lâopĂ©rateur arrive sur le dashboard ; le panneau Configuration est affichĂ© par dĂ©faut et les **autres onglets sont bloquĂ©s** jusquâĂ clic sur « Sauvegarder et terminer la configuration » (PATCH bulk + POST setup/complete).
+- **AccĂšs permanent** : mĂȘme panneau accessible via lâonglet « Configuration » / « ParamĂštres » du dashboard ; pas de blocage, simple modification et enregistrement (PATCH bulk).
```
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
-â đ Configuration Initiale - P'titsPas â
-âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
-â â
-â Bienvenue ! Configurez votre installation P'titsPas â
-â â
-â [ đ§ Email ] [ đš Personnalisation ] [ âïž AvancĂ© ] â
+â Dashboard Admin [ Gestionnaires ] [ Parents ] ... â
+â [ Configuration ] â onglet actif â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â â
â đ§ Configuration Email (SMTP) â
+â Serveur SMTP * [_________________________________] â
+â Port * [____] SĂ©curitĂ© [âŒ] â Auth requise â
+â Utilisateur [__________] Mot de passe [__________] â
+â Nom expĂ©diteur * [__________] Email * [__________] â
+â [ đ§Ș Tester la connexion SMTP ] â
â â
-â Serveur SMTP * â
-â [_____________________________________________] â
-â Ex: mail.mairie-bezons.fr, smtp.gmail.com â
-â â
-â Port SMTP * â
-â [_____] 25 (standard), 465 (SSL), 587 (STARTTLS) â
-â â
-â SĂ©curitĂ© * â
-â [ ⌠Aucune ] STARTTLS SSL/TLS â
-â â
-â â Authentification requise â
-â â
-â Utilisateur SMTP â
-â [_____________________________________________] â
-â â
-â Mot de passe SMTP â
-â [_____________________________________________] â
-â â
-â Nom de l'expĂ©diteur * â
-â [_____________________________________________] â
-â Ex: P'titsPas - Mairie de Bezons â
-â â
-â Email expĂ©diteur * â
-â [_____________________________________________] â
-â Ex: noreply@mairie-bezons.fr â
-â â
-â [ đ§Ș Tester la connexion SMTP ] â
-â â
-â âââââââââââââââââââââââââââââââââââââââââââââââââ â
-â â
-â [ â PrĂ©cĂ©dent ] [ Suivant â ] â
+â âââââââââââââââââââââââââââââââââââââââââââââââââ â
+â đš Personnalisation â
+â Nom application * [__________] URL * [__________] â
+â Logo [ Choisir un fichier ] â
+â âââââââââââââââââââââââââââââââââââââââââââââââââ â
+â âïž ParamĂštres avancĂ©s â
+â DurĂ©e token MDP (jours) [__] JWT (h) [__] Upload MB [__] â
â â
+â [ đŸ Sauvegarder et terminer la configuration ] â
+â (ou « Enregistrer » si config dĂ©jĂ complĂ©tĂ©e) â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
```
-### Ăcran ParamĂštres (accĂšs permanent)
-
-Identique au Setup Initial, mais accessible depuis le menu admin :
-- Menu Admin â ParamĂštres â Configuration SystĂšme
-
---
## đ Exemples de configuration
@@ -706,7 +661,7 @@ PORT=3000
---
-**DerniĂšre mise Ă jour** : 25 Novembre 2025
-**Version** : 1.0
+**DerniÚre mise à jour** : 9 Février 2026
+**Version** : 1.1
**Statut** : â
Document validé
diff --git a/docs/23_LISTE-TICKETS.md b/docs/23_LISTE-TICKETS.md
index 503aa51..8e0b98d 100644
--- a/docs/23_LISTE-TICKETS.md
+++ b/docs/23_LISTE-TICKETS.md
@@ -1,7 +1,7 @@
# đ« Liste ComplĂšte des Tickets - Projet P'titsPas
-**Version** : 1.2
-**Date** : 27 Janvier 2026
+**Version** : 1.4
+**Date** : 9 Février 2026
**Auteur** : Ăquipe PtitsPas
**Estimation totale** : ~184h
@@ -9,54 +9,27 @@
## đ Liste des tickets Gitea
-Correspondance entre les numĂ©ros dâissues Gitea et les tickets de ce document.
+**Les numĂ©ros de section dans ce document = numĂ©ros dâissues Gitea.** Ticket #14 dans le doc = issue Gitea #14, etc. Source : dĂ©pĂŽt `jmartin/petitspas` (Ă©tat au 9 fĂ©vrier 2026).
-| Gitea # | Titre court | Priorité | Statut | Section doc |
-|--------|--------------|----------|--------|-------------|
-| 1 | BDD - Champs manquants CDC | P0 | Ouvert | § Ticket #1 |
-| 2 | BDD - Table présentation dossier parent | P0 | Ouvert | § Ticket #2 |
-| 3 | BDD - Tokens crĂ©ation MDP | P0 | â
Fermé | § Ticket #3 |
-| 4 | BDD - Champ genre enfants | P0 | â
Fermé | § Ticket #4 |
-| 5 | BDD - Supprimer champs obsolÚtes | P0 | Ouvert | § Ticket #5 |
-| 6 | BDD - Table configuration systÚme | P0 | Ouvert | § Ticket #6 |
-| 68 | BDD - Documents lĂ©gaux & acceptations | P0 | â
Fermé | § Ticket #7 |
-| 73 | Frontend - Inscription Parent Ătape 1 | P3 | â
Fermé (PR) | § Ticket #36 |
-| 78 | Frontend - Infrastructure formulaires multi-modes | P3 | â
Fermé | § Ticket #78 |
-| 79 | Frontend - Renommer Nanny en AM | P3 | â
Fermé | § Ticket #79 |
-| 81 | Frontend - Corrections refactoring widgets | P3 | â
Fermé | § Ticket #81 |
-| 82 | Frontend - Ăcran Login mobile | P3 | â
Fermé | § Ticket #82 |
-| 83 | Frontend - RegisterChoiceScreen mobile | P3 | â
Fermé | § Ticket #83 |
+| Gitea # | Titre (dépÎt) | Statut |
+|--------|----------------|--------|
+| 3 | [BDD] Ajout champs manquants conformitĂ© CDC | â
Fermé |
+| 4 | [BDD] Ajout table/champ prĂ©sentation dossier parent | â
Fermé |
+| 5 | [BDD] Ajout gestion tokens crĂ©ation mot de passe | â
Fermé |
+| 6 | [BDD] Ajout champ genre obligatoire enfants | â
Fermé |
+| 7 | [BDD] Supprimer champs obsolĂštes | â
Fermé |
+| 8 | [BDD] Table configuration systĂšme | â
Fermé |
+| 9 | [BDD] Tables documents lĂ©gaux & acceptations | â
Fermé |
+| 10 | [Backend] Service Configuration | â
Fermé |
+| 11 | [Backend] API Configuration | â
Fermé |
+| 12 | [Backend] Guard Configuration Initiale | â
Fermé |
+| 13 | [Backend] Adaptation MailService pour config dynamique | Ouvert |
+| 14 | [Frontend] Panneau ParamĂštres / Configuration (premiĂšre config + accĂšs permanent) | Ouvert |
+| 15 | [Frontend] Ăcran ParamĂštres (accĂšs permanent) | Ouvert |
+| 16 | [Doc] Documentation configuration on-premise | Ouvert |
+| 17â88 | (voir sections ciâdessous ; #78, #79, #81, #83, #82, #86, #87, #88, etc.) | â |
-*Les autres tickets (sans numĂ©ro Gitea dans ce tableau) sont dĂ©crits dans les sections par prioritĂ© ciâdessous ; les numĂ©ros de section (#1 Ă #83) sont les rĂ©fĂ©rences internes du document.*
-
-**Point API (tickets frontend)** â 27/01/2026 : 20 issues avec le label `frontend` dans Gitea (12 ouvertes, 8 fermĂ©es). NumĂ©ros concernĂ©s : 35â42, 43â51, 54, 82, 83. Les #73, #78, #79, #81 sont fermĂ©s mais sans label dans lâAPI. DĂ©tail : `docs/POINT_TICKETS_FRONT_API.txt`.
-
----
-
-## đ Liste des tickets Gitea
-
-Correspondance entre les numĂ©ros dâissues Gitea et les tickets de ce document.
-
-| Gitea # | Titre court | Priorité | Statut | Section doc |
-|--------|--------------|----------|--------|-------------|
-| 1 | BDD - Champs manquants CDC | P0 | Ouvert | § Ticket #1 |
-| 2 | BDD - Table présentation dossier parent | P0 | Ouvert | § Ticket #2 |
-| 3 | BDD - Tokens crĂ©ation MDP | P0 | â
Fermé | § Ticket #3 |
-| 4 | BDD - Champ genre enfants | P0 | â
Fermé | § Ticket #4 |
-| 5 | BDD - Supprimer champs obsolÚtes | P0 | Ouvert | § Ticket #5 |
-| 6 | BDD - Table configuration systÚme | P0 | Ouvert | § Ticket #6 |
-| 68 | BDD - Documents lĂ©gaux & acceptations | P0 | â
Fermé | § Ticket #7 |
-| 73 | Frontend - Inscription Parent Ătape 1 | P3 | â
Fermé (PR) | § Ticket #36 |
-| 78 | Frontend - Infrastructure formulaires multi-modes | P3 | â
Fermé | § Ticket #78 |
-| 79 | Frontend - Renommer Nanny en AM | P3 | â
Fermé | § Ticket #79 |
-| 81 | Frontend - Corrections refactoring widgets | P3 | â
Fermé | § Ticket #81 |
-| 83 | Frontend - RegisterChoiceScreen mobile | P3 | â
Fermé | § Ticket #83 |
-| 84 | Bug - Connexion admin : erreur profil et redirection | P3 | â
Fermé | § Ticket #84 |
-| 85 | Frontend - Bug correctifs modale Changement MDP | P3 | Ouvert | § Ticket #85 |
-
-*Les autres tickets (sans numĂ©ro Gitea dans ce tableau) sont dĂ©crits dans les sections par prioritĂ© ciâdessous ; les numĂ©ros de section (#1 Ă #85) ; #84 et #85 ont un numĂ©ro Gitea. sont les rĂ©fĂ©rences internes du document.*
-
-**Point API (tickets frontend)** â 27/01/2026 : 20 issues avec le label `frontend` dans Gitea (12 ouvertes, 8 fermĂ©es). NumĂ©ros concernĂ©s : 35â42, 43â51, 54, 82, 83. Les #73, #78, #79, #81 sont fermĂ©s mais sans label dans lâAPI. DĂ©tail : `docs/POINT_TICKETS_FRONT_API.txt`.
+*Gitea #1 et #2 = anciens tickets de test (fermés). Liste complÚte : https://git.ptits-pas.fr/jmartin/petitspas/issues*
---
@@ -79,7 +52,7 @@ Correspondance entre les numĂ©ros dâissues Gitea et les tickets de ce document
## đŽ PRIORITĂ 0 : Amendements Base de DonnĂ©es (BLOQUANT)
-### Ticket #1 : [BDD] Ajout champs manquants conformité CDC
+### Ticket #3 : [BDD] Ajout champs manquants conformité CDC
**Estimation** : 1h
**Labels** : `bdd`, `p0-bloquant`, `cdc`
@@ -97,7 +70,7 @@ Ajouter les champs manquants dans la base de donnĂ©es pour ĂȘtre conforme au Cah
---
-### Ticket #2 : [BDD] Ajout table/champ présentation dossier parent
+### Ticket #4 : [BDD] Ajout table/champ présentation dossier parent
**Estimation** : 30min
**Labels** : `bdd`, `p0-bloquant`, `cdc`
@@ -111,7 +84,7 @@ Ajouter un champ pour stocker la présentation du dossier parent (étape 4 de l'
---
-### Ticket #3 : [BDD] Ajout gestion tokens crĂ©ation mot de passe â
+### Ticket #5 : [BDD] Ajout gestion tokens crĂ©ation mot de passe â
**Estimation** : 30min
**Labels** : `bdd`, `p0-bloquant`, `security`
**Statut** : â
TERMINà (Fermé le 2025-11-28)
@@ -127,7 +100,7 @@ Ajouter les champs nécessaires pour gérer les tokens de création de mot de pa
---
-### Ticket #4 : [BDD] Ajout champ genre obligatoire enfants â
+### Ticket #6 : [BDD] Ajout champ genre obligatoire enfants â
**Estimation** : 30min
**Labels** : `bdd`, `p0-bloquant`, `cdc`
**Statut** : â
TERMINà (Fermé le 2025-11-28)
@@ -142,7 +115,7 @@ Ajouter le champ `genre` obligatoire (H/F) dans la table `enfants`.
---
-### Ticket #5 : [BDD] Supprimer champs obsolĂštes
+### Ticket #7 : [BDD] Supprimer champs obsolĂštes
**Estimation** : 30min
**Labels** : `bdd`, `p0-bloquant`, `cleanup`
@@ -159,7 +132,7 @@ Supprimer les champs obsolÚtes identifiés lors de l'audit.
---
-### Ticket #6 : [BDD] Table configuration systĂšme
+### Ticket #8 : [BDD] Table configuration systĂšme
**Estimation** : 1h
**Labels** : `bdd`, `p0-bloquant`, `on-premise`
@@ -177,7 +150,7 @@ Créer la table `configuration` pour stocker les paramÚtres systÚme (SMTP, app
---
-### Ticket #7 : [BDD] Tables documents lĂ©gaux & acceptations â
+### Ticket #9 : [BDD] Tables documents lĂ©gaux & acceptations â
**Estimation** : 2h
**Labels** : `bdd`, `p0-bloquant`, `rgpd`, `juridique`
**Statut** : â
TERMINà (Fermé le 2025-11-30 - Ticket #68 sur Gitea)
@@ -200,7 +173,7 @@ Créer les tables pour gérer les versions des documents légaux (CGU/Privacy) e
## đ PRIORITĂ 1 : Configuration SystĂšme (BLOQUANT)
-### Ticket #8 : [Backend] Service Configuration
+### Ticket #10 : [Backend] Service Configuration
**Estimation** : 4h
**Labels** : `backend`, `p1-bloquant`, `on-premise`
@@ -221,7 +194,7 @@ Créer le service de configuration avec cache en mémoire et chiffrement AES-256
---
-### Ticket #9 : [Backend] API Configuration
+### Ticket #11 : [Backend] API Configuration
**Estimation** : 3h
**Labels** : `backend`, `p1-bloquant`, `on-premise`
@@ -240,26 +213,25 @@ Créer les endpoints REST pour gérer la configuration systÚme.
---
-### Ticket #10 : [Backend] Guard Configuration Initiale
+### Ticket #12 : [Backend] Guard Configuration Initiale
**Estimation** : 2h
**Labels** : `backend`, `p1-bloquant`, `on-premise`
**Description** :
-Créer un Guard/Middleware qui détecte si la configuration initiale est incomplÚte et force la redirection.
+Créer un Guard/Middleware qui détecte si la configuration initiale est incomplÚte. Le frontend affiche alors directement le panneau Configuration du dashboard et bloque la navigation jusqu'à sauvegarde (pas de page dédiée `/admin/setup`).
**TĂąches** :
- [ ] Créer `SetupGuard`
- [ ] Vérifier `setup_completed` dans ConfigService
-- [ ] Redirection forcée vers `/admin/setup` si false
-- [ ] Exemption pour routes publiques (login, register)
-- [ ] Exemption pour route `/admin/setup`
+- [ ] Si false : autoriser accĂšs au dashboard et aux APIs configuration (le frontend gĂšre lâaffichage du panneau Config et le blocage des onglets)
+- [ ] Exemption pour routes publiques (login, register) et pour les APIs `/api/v1/configuration`
- [ ] Tests unitaires
**Référence** : [21_CONFIGURATION-SYSTEME.md](./21_CONFIGURATION-SYSTEME.md#workflow-setup-initial)
---
-### Ticket #11 : [Backend] Adaptation MailService pour config dynamique
+### Ticket #13 : [Backend] Adaptation MailService pour config dynamique
**Estimation** : 3h
**Labels** : `backend`, `p1-bloquant`, `on-premise`, `email`
@@ -277,44 +249,41 @@ Adapter le service email pour utiliser la configuration dynamique depuis la BDD
---
-### Ticket #12 : [Frontend] Ăcran Configuration Initiale (Setup Wizard)
-**Estimation** : 6h
+### Ticket #14 : [Frontend] Panneau ParamĂštres / Configuration (premiĂšre config + accĂšs permanent)
+**Estimation** : 5h
**Labels** : `frontend`, `p1-bloquant`, `on-premise`
**Description** :
-Créer l'écran de configuration initiale (Setup Wizard) accessible à la premiÚre connexion du super admin.
+Un seul panneau **ParamĂštres / Configuration** dans le dashboard admin, avec **3 sections** sur une mĂȘme page (pas dâonglets dĂ©diĂ©s au formulaire : Email, Personnalisation, AvancĂ©). UtilisĂ© Ă la fois pour la **premiĂšre configuration** (au dĂ©ploiement, par un opĂ©rateur) et pour lâ**accĂšs permanent** (menu ou onglet Configuration). Lorsque `setup_completed` est false, le dashboard affiche directement ce panneau et **bloque la navigation** (autres onglets dĂ©sactivĂ©s) jusquâĂ sauvegarde.
**TĂąches** :
-- [ ] Page `/admin/setup` (accessible uniquement si config incomplĂšte)
-- [ ] Formulaire multi-onglets (Email / Application / Avancé)
-- [ ] Onglet 1 : Configuration Email (SMTP, auth, expéditeur)
-- [ ] Onglet 2 : Personnalisation (nom app, URL, logo)
-- [ ] Onglet 3 : ParamÚtres avancés (durées tokens, upload max)
+- [ ] Panneau Configuration dans le dashboard admin (onglet ou entrée de menu dédiée)
+- [ ] Une seule page avec 3 sections : **Email (SMTP)** ; **Personnalisation** (nom app, URL, logo) ; **Avancé** (durées token MDP, JWT, taille max upload)
- [ ] Bouton "Tester la connexion SMTP" (appel API + feedback)
- [ ] Validation cÎté client
-- [ ] Sauvegarde (appel API `PATCH /configuration/bulk`)
-- [ ] Message succĂšs + redirection dashboard
+- [ ] Sauvegarde : `PATCH /configuration/bulk` puis `POST /configuration/setup/complete` si premiĂšre config
+- [ ] Si `setup_completed` false au chargement : afficher ce panneau par dĂ©faut et bloquer les autres onglets jusquâĂ sauvegarde
+- [ ] Message succÚs ; aprÚs premiÚre config, déblocage de la navigation
**Référence** : [21_CONFIGURATION-SYSTEME.md](./21_CONFIGURATION-SYSTEME.md#interface-admin)
---
-### Ticket #13 : [Frontend] Ăcran ParamĂštres (accĂšs permanent)
-**Estimation** : 2h
+### Ticket #15 : [Frontend] Ăcran ParamĂštres (accĂšs permanent) / IntĂ©gration panneau
+**Estimation** : 1h
**Labels** : `frontend`, `p1-bloquant`, `on-premise`
**Description** :
-CrĂ©er l'Ă©cran de paramĂštres accessible depuis le menu admin (mĂȘme interface que Setup Wizard).
+Sâassurer que le panneau ParamĂštres (dĂ©crit en #14) est accessible en permanence depuis le dashboard admin (onglet « Configuration » ou « ParamĂštres »). MĂȘme interface que pour la premiĂšre config ; affichage des valeurs actuelles, modification et sauvegarde sans blocage de navigation.
**TĂąches** :
-- [ ] Page `/admin/parametres` (accessible depuis menu admin)
-- [ ] MĂȘme interface que Setup Wizard
-- [ ] Affichage valeurs actuelles
-- [ ] Modification et sauvegarde
+- [ ] Onglet ou entrĂ©e menu « Configuration » / « ParamĂštres » dans le dashboard admin pointant vers le mĂȘme panneau que #14
+- [ ] Chargement des valeurs actuelles (GET `/configuration` ou par catégorie)
+- [ ] Modification et sauvegarde (PATCH bulk) sans appel Ă `setup/complete`
---
-### Ticket #14 : [Doc] Documentation configuration on-premise
+### Ticket #16 : [Doc] Documentation configuration on-premise
**Estimation** : 2h
**Labels** : `documentation`, `p1-bloquant`, `on-premise`
@@ -333,9 +302,25 @@ Rédiger la documentation pour aider les collectivités à configurer l'applicat
---
+### Ticket #86 : [Backend] Guard Configuration Initiale (concept v1.3)
+**Estimation** : 2h
+**Labels** : `backend`, `p1-bloquant`, `on-premise`
+
+Issue Gitea ouverte pour le Guard aligné avec le concept v1.3 (pas de redirection vers `/admin/setup`, le frontend affiche le panneau Configuration et bloque la navigation). Voir aussi Ticket #12 (version fermée).
+
+---
+
+### Ticket #88 : [Frontend] Intégration panneau ParamÚtres au dashboard
+**Estimation** : 1h
+**Labels** : `frontend`, `p1-bloquant`, `on-premise`
+
+ComplĂ©ment de #14 et #15 : sâassurer que le panneau ParamĂštres est accessible en permanence (onglet Configuration, chargement des valeurs, sauvegarde PATCH bulk sans `setup/complete`).
+
+---
+
## đą PRIORITĂ 2 : Backend - Authentification & Gestion Comptes
-### Ticket #15 : [Backend] API Création gestionnaire
+### Ticket #17 : [Backend] API Création gestionnaire
**Estimation** : 3h
**Labels** : `backend`, `p2`, `auth`
@@ -355,7 +340,7 @@ Créer l'endpoint pour permettre au super admin de créer des gestionnaires.
---
-### Ticket #16 : [Backend] API Inscription Parent (étape 1 - Parent 1)
+### Ticket #18 : [Backend] API Inscription Parent (étape 1 - Parent 1)
**Estimation** : 4h
**Labels** : `backend`, `p2`, `auth`, `cdc`
@@ -375,7 +360,7 @@ Créer l'endpoint d'inscription Parent (étape 1/6 : informations Parent 1).
---
-### Ticket #17 : [Backend] API Inscription Parent (étape 2 - Parent 2)
+### Ticket #19 : [Backend] API Inscription Parent (étape 2 - Parent 2)
**Estimation** : 2h
**Labels** : `backend`, `p2`, `auth`, `cdc`
@@ -462,7 +447,7 @@ Finalisation de l'inscription parent (présentation, CGU, récapitulatif - inté
---
-### Ticket #22 : [Backend] API Création mot de passe
+### Ticket #24 : [Backend] API Création mot de passe
**Estimation** : 3h
**Labels** : `backend`, `p2`, `auth`, `security`
@@ -481,7 +466,7 @@ Créer les endpoints pour permettre aux utilisateurs de créer leur mot de passe
---
-### Ticket #23 : [Backend] API Liste comptes en attente
+### Ticket #25 : [Backend] API Liste comptes en attente
**Estimation** : 2h
**Labels** : `backend`, `p2`, `gestionnaire`
@@ -499,7 +484,7 @@ Créer les endpoints pour lister les comptes en attente de validation.
---
-### Ticket #24 : [Backend] API Validation/Refus comptes
+### Ticket #26 : [Backend] API Validation/Refus comptes
**Estimation** : 3h
**Labels** : `backend`, `p2`, `gestionnaire`
@@ -517,7 +502,7 @@ Créer les endpoints pour valider ou refuser les comptes en attente.
---
-### Ticket #25 : [Backend] Service Email - Installation Nodemailer
+### Ticket #27 : [Backend] Service Email - Installation Nodemailer
**Estimation** : 2h
**Labels** : `backend`, `p2`, `email`
@@ -532,7 +517,7 @@ Installer et configurer Nodemailer pour l'envoi d'emails.
---
-### Ticket #26 : [Backend] Templates Email - Validation
+### Ticket #28 : [Backend] Templates Email - Validation
**Estimation** : 3h
**Labels** : `backend`, `p2`, `email`
@@ -553,7 +538,7 @@ Créer les templates d'emails pour la validation des comptes (avec lien créatio
---
-### Ticket #27 : [Backend] Templates Email - Refus
+### Ticket #29 : [Backend] Templates Email - Refus
**Estimation** : 1h
**Labels** : `backend`, `p2`, `email`
@@ -568,7 +553,7 @@ Créer le template d'email pour le refus de compte.
---
-### Ticket #28 : [Backend] Connexion - Vérification statut
+### Ticket #30 : [Backend] Connexion - Vérification statut
**Estimation** : 2h
**Labels** : `backend`, `p2`, `auth`
@@ -586,7 +571,7 @@ Modifier l'endpoint de connexion pour bloquer les comptes en attente ou suspendu
---
-### Ticket #29 : [Backend] Changement MDP obligatoire premiĂšre connexion
+### Ticket #31 : [Backend] Changement MDP obligatoire premiĂšre connexion
**Estimation** : 2h
**Labels** : `backend`, `p2`, `auth`, `security`
@@ -601,7 +586,7 @@ Implémenter le changement de mot de passe obligatoire pour les gestionnaires/ad
---
-### Ticket #30 : [Backend] Service Documents Légaux
+### Ticket #32 : [Backend] Service Documents Légaux
**Estimation** : 4h
**Labels** : `backend`, `p2`, `juridique`, `rgpd`
@@ -623,7 +608,7 @@ Créer le service de gestion des documents légaux (CGU/Privacy) avec versioning
---
-### Ticket #31 : [Backend] API Documents Légaux
+### Ticket #33 : [Backend] API Documents Légaux
**Estimation** : 3h
**Labels** : `backend`, `p2`, `juridique`, `rgpd`
@@ -643,7 +628,7 @@ Créer les endpoints REST pour gérer les documents légaux.
---
-### Ticket #32 : [Backend] Traçabilité acceptations documents
+### Ticket #34 : [Backend] Traçabilité acceptations documents
**Estimation** : 2h
**Labels** : `backend`, `p2`, `rgpd`
@@ -662,7 +647,7 @@ Enregistrer les acceptations de documents légaux lors de l'inscription (traçab
## đą PRIORITĂ 3 : Frontend - Interfaces
-### Ticket #33 : [Frontend] Ăcran CrĂ©ation Gestionnaire
+### Ticket #35 : [Frontend] Ăcran CrĂ©ation Gestionnaire
**Estimation** : 3h
**Labels** : `frontend`, `p3`, `auth`
@@ -677,14 +662,6 @@ Créer l'écran de création de gestionnaire (super admin uniquement).
---
-### Ticket #34 : [Réservé - Non utilisé]
-
----
-
-### Ticket #35 : [Réservé - Non utilisé]
-
----
-
### Ticket #36 : [Frontend] Inscription Parent - Ătape 1 (Parent 1) â
**Estimation** : 3h
**Labels** : `frontend`, `p3`, `auth`, `cdc`
@@ -888,38 +865,6 @@ Créer l'écran de changement de mot de passe obligatoire (premiÚre connexion g
---
-### Ticket #84 : [Bug] Connexion admin â erreur rĂ©cupĂ©ration profil et pas de redirection
-**Gitea** : [#84](https://git.ptits-pas.fr/jmartin/petitspas/issues/84)
-**Statut** : â
Fermé
-
-**Description** :
-Bug à la connexion admin : erreur lors de la récupération du profil et absence de redirection attendue.
-
----
-
-### Ticket #85 : [Frontend] Bug â Correctifs modale Changement MDP (premiĂšre connexion admin)
-**Gitea** : [#85](https://git.ptits-pas.fr/jmartin/petitspas/issues/85)
-**Estimation** : 1h
-**Labels** : `frontend`, `p3`, `bug`, `auth`, `ux`
-
-**Description** :
-Correctifs et améliorations de la modale de changement de mot de passe obligatoire affichée à la premiÚre connexion admin (lien avec Ticket #47).
-
-**PérimÚtre** :
-- Ajustements visuels / UX de la modale (`ChangePasswordDialog`)
-- Cohérence charte graphique, espacements, lisibilité
-- Comportement (validation, messages d'erreur, fermeture)
-- Lien de test en debug sur l'écran login (« Test modale MDP ») pour faciliter les réglages
-
-**TĂąches** :
-- [ ] Revoir le design de la modale (relief, bordures, couleurs)
-- [ ] Vérifier les champs (MDP actuel, nouveau, confirmation) et validations
-- [ ] Ajuster les textes et messages d'erreur
-- [ ] Tester sur mobile et desktop
-- [ ] Retirer ou conditionner le lien « Test modale MDP » en production si besoin
-
----
-
### Ticket #48 : [Frontend] Gestion Erreurs & Messages
**Estimation** : 2h
**Labels** : `frontend`, `p3`, `ux`
@@ -1070,7 +1015,7 @@ Créer les tests unitaires pour tous les services et controllers backend.
---
-### Ticket #50 : [Tests] Tests intégration Backend
+### Ticket #53 : [Tests] Tests intégration Backend
**Estimation** : 5h
**Labels** : `tests`, `p4`, `backend`
@@ -1085,7 +1030,7 @@ Créer les tests d'intégration pour les workflows complets.
---
-### Ticket #51 : [Tests] Tests E2E Frontend
+### Ticket #54 : [Tests] Tests E2E Frontend
**Estimation** : 8h
**Labels** : `tests`, `p4`, `frontend`
@@ -1101,7 +1046,7 @@ Créer les tests end-to-end pour les parcours utilisateurs.
---
-### Ticket #52 : [Doc] Documentation API OpenAPI/Swagger
+### Ticket #55 : [Doc] Documentation API OpenAPI/Swagger
**Estimation** : 3h
**Labels** : `documentation`, `p4`, `api`
@@ -1118,7 +1063,7 @@ Générer et documenter l'API avec Swagger/OpenAPI.
## â ïž CRITIQUES : Upload, Emails, Infra, Doc
-### Ticket #53 : [Backend] Service Upload & Stockage fichiers
+### Ticket #56 : [Backend] Service Upload & Stockage fichiers
**Estimation** : 3h
**Labels** : `backend`, `critique`, `upload`
@@ -1149,7 +1094,7 @@ Créer l'endpoint sécurisé pour télécharger les photos.
---
-### Ticket #55 : [Backend] Service Logging (Winston)
+### Ticket #58 : [Backend] Service Logging (Winston)
**Estimation** : 3h
**Labels** : `backend`, `critique`, `monitoring`
@@ -1168,7 +1113,7 @@ Mettre en place un systÚme de logs centralisé avec Winston pour faciliter le d
---
-### Ticket #56 : [Frontend] Ăcran Logs Admin (optionnel v1.1)
+### Ticket #51 (rĂ©f.) : [Frontend] Ăcran Logs Admin (optionnel v1.1)
**Estimation** : 4h
**Labels** : `frontend`, `p3`, `monitoring`, `admin`
@@ -1186,7 +1131,7 @@ Créer un écran pour consulter les logs depuis l'interface admin (optionnel Pha
---
-### Ticket #57 : [Infra] Volume Docker pour uploads
+### Ticket #59 : [Infra] Volume Docker pour uploads
**Estimation** : 30min
**Labels** : `infra`, `critique`, `docker`
@@ -1200,7 +1145,7 @@ Ajouter un volume Docker pour persister les fichiers uploadés.
---
-### Ticket #58 : [Infra] Volume Docker pour documents légaux
+### Ticket #60 : [Infra] Volume Docker pour documents légaux
**Estimation** : 30min
**Labels** : `infra`, `critique`, `docker`
@@ -1214,7 +1159,7 @@ Ajouter un volume Docker pour persister les documents légaux (CGU/Privacy).
---
-### Ticket #59 : [Doc] Guide installation & configuration
+### Ticket #61 : [Doc] Guide installation & configuration
**Estimation** : 3h
**Labels** : `documentation`, `critique`, `on-premise`
@@ -1233,7 +1178,7 @@ Rédiger le guide complet d'installation et de configuration pour les collectivi
## đ JURIDIQUE & CDC
-### Ticket #60 : [Doc] Amendement CDC v1.4 - Suppression SMS
+### Ticket #62 : [Doc] Amendement CDC v1.4 - Suppression SMS
**Estimation** : 30min
**Labels** : `documentation`, `cdc`
@@ -1250,7 +1195,7 @@ Amender le Cahier des Charges pour supprimer la mention des notifications SMS (p
---
-### Ticket #61 : [Doc] Rédaction CGU/Privacy génériques v1
+### Ticket #63 : [Doc] Rédaction CGU/Privacy génériques v1
**Estimation** : 8h
**Labels** : `documentation`, `juridique`, `rgpd`
@@ -1270,14 +1215,14 @@ Rédiger les documents légaux génériques (CGU et Politique de confidentialit
## đ RĂ©sumĂ© final
-**Total** : 63 tickets
-**Estimation** : ~174h de développement
+**Total** : 65 tickets
+**Estimation** : ~184h de développement
### Par priorité
- **P0 (Bloquant BDD)** : 7 tickets (~5h)
- **P1 (Bloquant Config)** : 7 tickets (~22h)
- **P2 (Backend)** : 18 tickets (~50h)
-- **P3 (Frontend)** : 20 tickets (~62h) â #84 bug connexion admin, #85 correctifs modale MDP
+- **P3 (Frontend)** : 22 tickets (~71h) â +1 mobile RegisterChoice
- **P4 (Tests/Doc)** : 4 tickets (~24h)
- **Critiques** : 6 tickets (~13h)
- **Juridique** : 1 ticket (~8h)
@@ -1285,13 +1230,15 @@ Rédiger les documents légaux génériques (CGU et Politique de confidentialit
### Par domaine
- **BDD** : 7 tickets
- **Backend** : 23 tickets
-- **Frontend** : 20 tickets â #84 bug connexion admin, #85 correctifs modale MDP
+- **Frontend** : 22 tickets â +1 mobile RegisterChoice
- **Tests** : 3 tickets
- **Documentation** : 5 tickets
- **Infra** : 2 tickets
- **Juridique** : 1 ticket
### Modifications par rapport Ă la version initiale
+- â
**v1.4** : Numéros de section du doc = numéros Gitea (Ticket #n = issue #n). Tableau et sections renumérotés en conséquence ; #87 fermé (doublon de #14).
+- â
**Concept v1.3** : Configuration initiale = un seul panneau ParamĂštres (3 sections) dans le dashboard ; plus de page dĂ©diĂ©e « Setup Wizard » ; navigation bloquĂ©e jusquâĂ sauvegarde au premier dĂ©ploiement. Tickets #10, #12, #13 alignĂ©s.
- â **SupprimĂ©** : Tickets "Renvoyer email validation" (backend + frontend) - Pas prioritaire
- â
**Ajouté** : Ticket #55 "Service Logging Winston" - Monitoring essentiel
- â
**AjoutĂ©** : Ticket #56 "Ăcran Logs Admin" - Optionnel Phase 1.1
@@ -1300,12 +1247,10 @@ Rédiger les documents légaux génériques (CGU et Politique de confidentialit
- â
**Ajouté** : Ticket #81 "Corrections refactoring" - Bugfixes
- â
**Ajouté** : Ticket #83 "RegisterChoiceScreen Mobile" - Responsive UX
- â
**FermĂ©** : Ticket #82 "Ăcran Login mobile" - Merge develop + master
-- â
**AjoutĂ©** : Ticket #84 "Bug connexion admin â erreur profil et redirection" (Gitea #84, fermĂ©)
-- â
**AjoutĂ©** : Ticket #85 "Bug â Correctifs modale Changement MDP" (Gitea #85) - Design, UX, retrait lien test
---
-**DerniĂšre mise Ă jour** : 27 Janvier 2026
-**Version** : 1.2
-**Statut** : â
Ă jour
+**DerniÚre mise à jour** : 9 Février 2026
+**Version** : 1.4
+**Statut** : â
Aligné avec le dépÎt Gitea
diff --git a/docs/24_DECISIONS-PROJET.md b/docs/24_DECISIONS-PROJET.md
index 21b6f33..fd8a72d 100644
--- a/docs/24_DECISIONS-PROJET.md
+++ b/docs/24_DECISIONS-PROJET.md
@@ -1,7 +1,7 @@
# đ DĂ©cisions Projet - P'titsPas
-**Version** : 1.0
-**Date** : 25 Novembre 2025
+**Version** : 1.1
+**Date** : 9 Février 2026
**Auteur** : Ăquipe PtitsPas
---
@@ -49,7 +49,7 @@ ptitspas-app/
**Solution technique** :
- Table `configuration` en BDD (clé/valeur)
-- Setup Wizard Ă la premiĂšre connexion
+- Panneau ParamÚtres (3 sections) dans le dashboard à la premiÚre connexion ; navigation bloquée jusqu'à sauvegarde
- Configuration SMTP dynamique
- Personnalisation (nom app, logo, URL)
@@ -559,10 +559,11 @@ docs/
| Date | Version | Modifications |
|------|---------|---------------|
| 25/11/2025 | 1.0 | Création du document - Toutes les décisions initiales |
+| 09/02/2026 | 1.1 | Configuration initiale : un seul panneau ParamÚtres (3 sections) dans le dashboard, plus de Setup Wizard dédié ; navigation bloquée jusqu'à sauvegarde |
---
-**DerniĂšre mise Ă jour** : 25 Novembre 2025
-**Version** : 1.0
+**DerniÚre mise à jour** : 9 Février 2026
+**Version** : 1.1
**Statut** : â
Document validé
diff --git a/docs/BRIEFING-FRONTEND.md b/docs/BRIEFING-FRONTEND.md
index fde9ca1..8c16c06 100644
--- a/docs/BRIEFING-FRONTEND.md
+++ b/docs/BRIEFING-FRONTEND.md
@@ -61,7 +61,8 @@ changement_mdp_obligatoire: true (premiĂšre connexion)
| # | Ticket | Description | Effort |
|---|--------|-------------|--------|
-| **#14** | Setup Wizard | Ăcran configuration initiale (SMTP, app) | 4-5h |
+| **#12** | Panneau ParamÚtres / Configuration | Une page avec 3 sections (Email, Personnalisation, Avancé) ; premiÚre config = affichage direct + navigation bloquée jusqu'à sauvegarde | 5h |
+| **#13** | IntĂ©gration panneau au dashboard | Onglet Configuration, accĂšs permanent, mĂȘme interface | 1h |
| **#47** | Changement MDP Obligatoire | Modale bloquante aprĂšs login si flag=true | 1-2h |
| **#35** | Création Gestionnaire | Formulaire création gestionnaire | 2-3h |
@@ -256,11 +257,11 @@ Configuration des appels API avec intercepteurs.
## Recommandation de démarrage
1. **Ticket #47** - Modale changement MDP obligatoire (simple, rapide)
-2. **Ticket #14** - Setup Wizard (écran configuration initiale)
+2. **Tickets #12 + #13** - Panneau ParamĂštres (3 sections) : premiĂšre config + onglet Configuration dans le dashboard
3. **Ticket #35** - Formulaire création gestionnaire
-Ces 3 tickets complĂštent le **workflow d'initialisation** !
+Ces tickets complĂštent le **workflow d'initialisation** !
---
-*DerniĂšre mise Ă jour : 27 janvier 2026*
+*DerniÚre mise à jour : 9 février 2026*