Merge origin/develop: résolution conflits doc tickets

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-09 23:55:16 +01:00
co-authored by Cursor
12 changed files with 426 additions and 245 deletions
+1
View File
@@ -27,6 +27,7 @@ Ce fichier sert d'index pour naviguer dans toute la documentation du projet.
- [**23 - Liste des Tickets**](./23_LISTE-TICKETS.md) - 61 tickets Phase 1 détaillés
- [**24 - Décisions Projet**](./24_DECISIONS-PROJET.md) - Décisions architecturales et fonctionnelles
- [**25 - Backlog Phase 2**](./25_PHASE-2-BACKLOG.md) - Fonctionnalités techniques reportées
- [**26 - API Gitea**](./26_GITEA-API.md) - Procédure d'utilisation de l'API Gitea (issues, PR, branches, labels)
### Administration (À créer)
- [**30 - Guide d'administration**](./30_ADMIN.md) - Gestion des utilisateurs, accès PgAdmin, logs
+129 -44
View File
@@ -3,7 +3,33 @@
**Version** : 1.2
**Date** : 27 Janvier 2026
**Auteur** : Équipe PtitsPas
**Estimation totale** : ~173h
**Estimation totale** : ~184h
---
## 🔗 Liste des tickets Gitea
Correspondance entre les numéros dissues 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 |
| 82 | Frontend - Écran Login mobile | P3 | ✅ Fermé | § Ticket #82 |
| 83 | Frontend - RegisterChoiceScreen mobile | P3 | ✅ Fermé | § Ticket #83 |
*Les autres tickets (sans numéro Gitea dans ce tableau) sont décrits dans les sections par priorité cidessous ; 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 : 3542, 4351, 54, 82, 83. Les #73, #78, #79, #81 sont fermés mais sans label dans lAPI. Détail : `docs/POINT_TICKETS_FRONT_API.txt`.
---
@@ -43,11 +69,11 @@ Correspondance entre les numéros dissues Gitea et les tickets de ce document
| **P0** | 7 tickets | ~5h | Amendements BDD (BLOQUANT) |
| **P1** | 7 tickets | ~22h | Configuration système (BLOQUANT) |
| **P2** | 18 tickets | ~50h | Backend métier |
| **P3** | 17 tickets | ~52h | Frontend |
| **P3** | 22 tickets | ~71h | Frontend |
| **P4** | 4 tickets | ~24h | Tests & Documentation |
| **CRITIQUES** | 6 tickets | ~13h | Upload, Logs, Infra, CDC |
| **JURIDIQUE** | 1 ticket | ~8h | Rédaction CGU/Privacy |
| **TOTAL** | **62 tickets** | **~181h** | |
| **TOTAL** | **65 tickets** | **~184h** | |
---
@@ -695,85 +721,90 @@ Créer le formulaire d'inscription parent - étape 2/6 (informations Parent 2 op
---
### Ticket #38 : [Frontend] Inscription Parent - Étape 3 (Enfants)
**Estimation** : 4h
### Ticket #38 : [Frontend] Inscription Parent - Étape 3 (Enfants)
**Estimation** : 4h
**Labels** : `frontend`, `p3`, `auth`, `cdc`, `upload`
**Statut** : ✅ TERMINÉ (Fermé le 2026-02-07)
**Description** :
Créer le formulaire d'inscription parent - étape 3/6 (informations enfants).
**Tâches** :
- [ ] Question "Enfant déjà né ?"
- [ ] Formulaire enfant (prénom, date, genre H/F obligatoire)
- [ ] Upload photo (si né)
- [ ] Validation taille (5MB)
- [ ] Bouton "Ajouter un autre enfant"
- [ ] Navigation vers étape 4
- [x] Question "Enfant déjà né ?"
- [x] Formulaire enfant (prénom, date, genre H/F obligatoire)
- [x] Upload photo (si né)
- [x] Validation taille (5MB)
- [x] Bouton "Ajouter un autre enfant"
- [x] Navigation vers étape 4
---
### Ticket #39 : [Frontend] Inscription Parent - Étapes 4-6 (Finalisation)
**Estimation** : 4h
### Ticket #39 : [Frontend] Inscription Parent - Étapes 4-6 (Finalisation)
**Estimation** : 4h
**Labels** : `frontend`, `p3`, `auth`, `cdc`
**Statut** : ✅ TERMINÉ (Fermé le 2026-02-07)
**Description** :
Créer les étapes finales de l'inscription parent (présentation, CGU, récapitulatif).
**Tâches** :
- [ ] Étape 4 : Textarea présentation
- [ ] Étape 5 : Checkbox CGU + liens PDF
- [ ] Étape 6 : Récapitulatif complet
- [ ] Bouton "Modifier" / "Valider"
- [ ] Appel API final
- [ ] Message confirmation
- [x] Étape 4 : Textarea présentation
- [x] Étape 5 : Checkbox CGU + liens PDF
- [x] Étape 6 : Récapitulatif complet
- [x] Bouton "Modifier" / "Valider"
- [x] Appel API final
- [x] Message confirmation
---
### Ticket #40 : [Frontend] Inscription AM - Panneau 1 (Identité)
**Estimation** : 3h
### Ticket #40 : [Frontend] Inscription AM - Panneau 1 (Identité)
**Estimation** : 3h
**Labels** : `frontend`, `p3`, `auth`, `cdc`, `upload`
**Statut** : ✅ TERMINÉ (Fermé le 2026-02-07)
**Description** :
Créer le formulaire d'inscription AM - panneau 1/5 (identité).
**Tâches** :
- [ ] Formulaire identité
- [ ] Upload photo
- [ ] Checkbox consentement photo
- [ ] Pas de champ mot de passe
- [ ] Navigation vers panneau 2
- [x] Formulaire identité
- [x] Upload photo
- [x] Checkbox consentement photo
- [x] Pas de champ mot de passe
- [x] Navigation vers panneau 2
---
### Ticket #41 : [Frontend] Inscription AM - Panneau 2 (Infos pro)
**Estimation** : 3h
### Ticket #41 : [Frontend] Inscription AM - Panneau 2 (Infos pro)
**Estimation** : 3h
**Labels** : `frontend`, `p3`, `auth`, `cdc`
**Statut** : ✅ TERMINÉ (Fermé le 2026-02-07)
**Description** :
Créer le formulaire d'inscription AM - panneau 2/5 (informations professionnelles).
**Tâches** :
- [ ] Formulaire infos pro
- [ ] Champ NIR (15 chiffres, validation)
- [ ] Date/lieu naissance
- [ ] Agrément + date obtention
- [ ] Navigation vers présentation
- [x] Formulaire infos pro
- [x] Champ NIR (15 chiffres, validation)
- [x] Date/lieu naissance
- [x] Agrément + date obtention
- [x] Navigation vers présentation
---
### Ticket #42 : [Frontend] Inscription AM - Finalisation
**Estimation** : 3h
### Ticket #42 : [Frontend] Inscription AM - Finalisation
**Estimation** : 3h
**Labels** : `frontend`, `p3`, `auth`, `cdc`
**Statut** : ✅ TERMINÉ (Fermé le 2026-02-07)
**Description** :
Créer les étapes finales de l'inscription AM (présentation, CGU, récapitulatif).
**Tâches** :
- [ ] Textarea présentation
- [ ] Checkbox CGU + liens PDF
- [ ] Récapitulatif (NIR masqué)
- [ ] Appel API final
- [ ] Message confirmation
- [x] Textarea présentation
- [x] Checkbox CGU + liens PDF
- [x] Récapitulatif (NIR masqué)
- [x] Appel API final
- [x] Message confirmation
---
@@ -972,6 +1003,56 @@ Créer une infrastructure générique pour gérer les formulaires en modes multi
---
### Ticket #79 : [Frontend] Renommer "Nanny" en "Assistante Maternelle" (AM) ✅
**Estimation** : 2h
**Labels** : `frontend`, `p3`, `refactoring`, `cdc`
**Statut** : ✅ TERMINÉ (Fermé le 2026-02-07)
**Description** :
Renommage complet de "Nanny" en "AM" dans le frontend pour cohérence avec le CDC.
**Tâches** :
- [x] Modèles : nanny_registration_data.dart -> am_registration_data.dart
- [x] Écrans : nanny_register_*.dart -> am_register_*.dart
- [x] Routes : /nanny-register -> /am-register
- [x] Suppression fichiers obsolètes
---
### Ticket #81 : [Frontend] Corrections suite refactoring widgets ✅
**Estimation** : 2h
**Labels** : `frontend`, `p3`, `bugfix`
**Statut** : ✅ TERMINÉ (Fermé le 2026-02-07)
**Description** :
Corrections et ajustements suite au refactoring des widgets.
**Corrections :**
- [x] Erreurs compilation (updateParent1/2, updateIdentityInfo)
- [x] Routes obsolètes supprimées
- [x] Toggles Parent Step 2 (2 côte à côte)
- [x] Positionnement éléments dans cartes
---
### Ticket #83 : [Frontend] Adapter RegisterChoiceScreen pour mobile ✅
**Estimation** : 3h
**Labels** : `frontend`, `p3`, `responsive`, `ux`
**Statut** : ✅ TERMINÉ (Fermé le 2026-01-27)
**Description** :
Adapter l'écran de choix Parent/AM pour une meilleure expérience mobile et cohérence avec les autres écrans.
**Tâches :**
- [x] Implémentation responsive avec LayoutBuilder (mobile < 900px)
- [x] Mode mobile : titre au-dessus, carte pleine largeur (ratio 2/3), boutons verticaux
- [x] Mode desktop : chevron haut-gauche, layout texte/carte côte à côte
- [x] Extraction logique carte dans ChoiceCardWidget réutilisable
- [x] Bouton "Précédent" mobile avec CustomNavigationButton + HoverReliefWidget
- [x] Tailles icônes augmentées (140px mobile, 170px desktop)
---
## 🔵 PRIORITÉ 4 : Tests & Documentation
### Ticket #52 : [Tests] Tests unitaires Backend
@@ -1198,15 +1279,15 @@ Rédiger les documents légaux génériques (CGU et Politique de confidentialit
- **P2 (Backend)** : 18 tickets (~50h)
- **P3 (Frontend)** : 20 tickets (~62h) ← #84 bug connexion admin, #85 correctifs modale MDP
- **P4 (Tests/Doc)** : 4 tickets (~24h)
- **Critiques** : 6 tickets (~13h) ← -2 email, +1 logs, +1 CDC
- **Critiques** : 6 tickets (~13h)
- **Juridique** : 1 ticket (~8h)
### Par domaine
- **BDD** : 7 tickets
- **Backend** : 23 tickets ← +1 logs
- **Backend** : 23 tickets
- **Frontend** : 20 tickets ← #84 bug connexion admin, #85 correctifs modale MDP
- **Tests** : 3 tickets
- **Documentation** : 5 tickets ← +1 amendement CDC
- **Documentation** : 5 tickets
- **Infra** : 2 tickets
- **Juridique** : 1 ticket
@@ -1215,8 +1296,12 @@ Rédiger les documents légaux génériques (CGU et Politique de confidentialit
-**Ajouté** : Ticket #55 "Service Logging Winston" - Monitoring essentiel
-**Ajouté** : Ticket #56 "Écran Logs Admin" - Optionnel Phase 1.1
-**Ajouté** : Ticket #78 "Refonte Infrastructure Formulaires" - Harmonisation UI/UX
-**Ajouté** : Ticket #79 "Renommer Nanny en AM" - Cohérence CDC
-**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, validations, lien test debug
-**Ajouté** : Ticket #85 "Bug Correctifs modale Changement MDP" (Gitea #85)
---
+176
View File
@@ -0,0 +1,176 @@
# Procédure Utilisation de l'API Gitea
## 1. Contexte
- **Instance** : https://git.ptits-pas.fr
- **API de base** : `https://git.ptits-pas.fr/api/v1`
- **Projet P'titsPas** : dépôt `jmartin/petitspas` (owner = `jmartin`, repo = `petitspas`)
## 2. Authentification
### 2.1 Token
Le token est défini dans l'environnement (ex. `~/.bashrc`) :
```bash
export GITEA_TOKEN="<votre_token>"
```
Pour l'utiliser dans les commandes :
```bash
source ~/.bashrc # ou : . ~/.bashrc
# Puis utiliser $GITEA_TOKEN dans les curl
```
### 2.2 En-tête HTTP
Toutes les requêtes API doivent envoyer le token :
```bash
-H "Authorization: token $GITEA_TOKEN"
```
Exemple :
```bash
curl -s -H "Authorization: token $GITEA_TOKEN" \
"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas"
```
## 3. Endpoints utiles
### 3.1 Dépôt (repository)
| Action | Méthode | URL |
|---------------|---------|-----|
| Infos dépôt | GET | `/repos/{owner}/{repo}` |
| Liste dépôts | GET | `/repos/search?q=petitspas` |
Exemple infos du dépôt :
```bash
curl -s -H "Authorization: token $GITEA_TOKEN" \
"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas" | jq .
```
### 3.2 Issues (tickets)
| Action | Méthode | URL |
|------------------|---------|-----|
| Liste des issues | GET | `/repos/{owner}/{repo}/issues` |
| Détail d'une issue | GET | `/repos/{owner}/{repo}/issues/{index}` |
| Créer une issue | POST | `/repos/{owner}/{repo}/issues` |
| Modifier une issue | PATCH | `/repos/{owner}/{repo}/issues/{index}` |
| Fermer une issue | PATCH | (même URL, `state: "closed"`) |
**Paramètres GET utiles pour la liste :**
- `state` : `open` ou `closed`
- `labels` : filtre par label (ex. `frontend`)
- `page`, `limit` : pagination
Exemples :
```bash
# Toutes les issues ouvertes
curl -s -H "Authorization: token $GITEA_TOKEN" \
"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues?state=open" | jq .
# Issues ouvertes avec label "frontend"
curl -s -H "Authorization: token $GITEA_TOKEN" \
"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues?state=open" | \
jq '.[] | select(.labels[].name == "frontend") | {number, title, state}'
# Détail de l'issue #47
curl -s -H "Authorization: token $GITEA_TOKEN" \
"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/47" | jq .
# Fermer l'issue #31
curl -s -X PATCH -H "Authorization: token $GITEA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"state":"closed"}' \
"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/31"
# Créer une issue
curl -s -X POST -H "Authorization: token $GITEA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title":"Titre du ticket","body":"Description","labels":[1]}' \
"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues"
```
### 3.3 Pull requests
| Action | Méthode | URL |
|---------------|---------|-----|
| Liste des PR | GET | `/repos/{owner}/{repo}/pulls` |
| Détail d'une PR | GET | `/repos/{owner}/{repo}/pulls/{index}` |
| Créer une PR | POST | `/repos/{owner}/{repo}/pulls` |
| Fusionner une PR | POST | `/repos/{owner}/{repo}/pulls/{index}/merge` |
Exemples :
```bash
# Liste des PR ouvertes
curl -s -H "Authorization: token $GITEA_TOKEN" \
"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/pulls?state=open" | jq .
# Créer une PR (head = branche source, base = branche cible)
curl -s -X POST -H "Authorization: token $GITEA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"head":"develop","base":"master","title":"Titre de la PR"}' \
"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/pulls"
```
### 3.4 Branches
| Action | Méthode | URL |
|---------------|---------|-----|
| Liste des branches | GET | `/repos/{owner}/{repo}/branches` |
```bash
curl -s -H "Authorization: token $GITEA_TOKEN" \
"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/branches" | jq '.[].name'
```
### 3.5 Webhooks
| Action | Méthode | URL |
|---------------|---------|-----|
| Liste webhooks | GET | `/repos/{owner}/{repo}/hooks` |
| Créer webhook | POST | `/repos/{owner}/{repo}/hooks` |
### 3.6 Labels
| Action | Méthode | URL |
|---------------|---------|-----|
| Liste des labels | GET | `/repos/{owner}/{repo}/labels` |
```bash
curl -s -H "Authorization: token $GITEA_TOKEN" \
"https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels" | jq '.[] | {id, name}'
```
## 4. Résumé des URLs pour P'titsPas
Remplacer `{owner}` par `jmartin` et `{repo}` par `petitspas` :
| Ressource | URL |
|------------------|-----|
| Dépôt | `https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas` |
| Issues | `https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues` |
| Issue #n | `https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/{n}` |
| Pull requests | `https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/pulls` |
| Branches | `https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/branches` |
| Labels | `https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels` |
## 5. Documentation officielle
- Swagger / OpenAPI : https://docs.gitea.com/api
- Référence selon la version de Gitea installée (ex. 1.21, 1.25).
## 6. Dépannage
- **401 Unauthorized** : vérifier le token et l'en-tête `Authorization: token <TOKEN>`.
- **404** : vérifier owner/repo et l'URL (sensible à la casse).
- **422 / body invalide** : pour POST/PATCH, envoyer `Content-Type: application/json` et un JSON valide.
+35
View File
@@ -0,0 +1,35 @@
Point tickets frontend (API Gitea) - 27/01/2026
================================================
Issues avec label "frontend" : 20 (ouvertes: 12, fermees: 8)
Num | Etat | Titre
----+--------+--------------------------------------------------------
35 | open | [Frontend] Écran Création Gestionnaire
36 | closed | [Frontend] Inscription Parent - Étape 1 (Parent 1)
37 | closed | [Frontend] Inscription Parent - Étape 2 (Parent 2)
38 | closed | [Frontend] Inscription Parent - Étape 3 (Enfants)
39 | closed | [Frontend] Inscription Parent - Étapes 4-6 (Finalisatio
40 | closed | [Frontend] Inscription AM - Panneau 1 (Identité)
41 | closed | [Frontend] Inscription AM - Panneau 2 (Infos pro)
42 | closed | [Frontend] Inscription AM - Finalisation
43 | open | [Frontend] Écran Création Mot de Passe
44 | open | [Frontend] Dashboard Gestionnaire - Structure
45 | open | [Frontend] Dashboard Gestionnaire - Liste Parents
46 | open | [Frontend] Dashboard Gestionnaire - Liste AM
47 | open | [Frontend] Écran Changement MDP Obligatoire
48 | open | [Frontend] Gestion Erreurs & Messages
49 | open | [Frontend] Écran Gestion Documents Légaux (Admin)
50 | open | [Frontend] Affichage dynamique CGU lors inscription
51 | open | [Frontend] Écran Logs Admin (optionnel v1.1)
54 | open | [Tests] Tests E2E Frontend
82 | closed | [Frontend] Adapter cran Login pour mobile
83 | closed | [Frontend] Adapter cran Choix Inscription pour mobile
Suivi doc 23_LISTE-TICKETS (Gitea #73,78,79,81,82,83):
#73 closed labels=[]
#78 closed labels=[]
#79 closed labels=[]
#81 closed labels=[]
#82 closed (écran Login mobile)
#83 closed labels=['frontend', 'p3', 'phase-1', 'ux']