From 939e7777ac5ede2170802e6825bdba456cefd5b0 Mon Sep 17 00:00:00 2001 From: Julien Martin Date: Mon, 14 Sep 2026 11:05:47 +0200 Subject: [PATCH] =?UTF-8?q?docs(#155):=20mini-spec=20phase=202=20=E2=80=94?= =?UTF-8?q?=20move=20panels=20admin=20=E2=86=92=20dashboard.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- docs/tmp/155-mini-spec-rename-admin-prefix.md | 4 +- ...55-suite-move-admin-panels-to-dashboard.md | 203 ++++++++++++++++++ 2 files changed, 206 insertions(+), 1 deletion(-) create mode 100644 docs/tmp/155-suite-move-admin-panels-to-dashboard.md diff --git a/docs/tmp/155-mini-spec-rename-admin-prefix.md b/docs/tmp/155-mini-spec-rename-admin-prefix.md index dc8344b..afe3c4f 100644 --- a/docs/tmp/155-mini-spec-rename-admin-prefix.md +++ b/docs/tmp/155-mini-spec-rename-admin-prefix.md @@ -37,7 +37,9 @@ On garde `Admin*` seulement là où c’est vraiment le rôle administrateur. | `admin_detail_modal` → `AdminDetailModal` / `AdminDetailField` | `detail_modal` → `DetailModal` / `DetailField` | | `dashboard_admin.dart` | `user_management_sub_bar.dart` (`DashboardUserManagementSubBar` inchangé) | -Dossier `widgets/admin/` conserve les panels métier (`user_management_panel`, wizards, etc.) + `AdminManagementWidget`. +Dossier `widgets/admin/` conserve encore les panels métier (`user_management_panel`, wizards, etc.) + `AdminManagementWidget`. + +**Phase 2** (même ticket #155) : déplacer ces panels → `widgets/dashboard/` — voir [155-suite-move-admin-panels-to-dashboard.md](./155-suite-move-admin-panels-to-dashboard.md). ## Hors scope diff --git a/docs/tmp/155-suite-move-admin-panels-to-dashboard.md b/docs/tmp/155-suite-move-admin-panels-to-dashboard.md new file mode 100644 index 0000000..e5a86db --- /dev/null +++ b/docs/tmp/155-suite-move-admin-panels-to-dashboard.md @@ -0,0 +1,203 @@ +# Mini-spec — Déplacer les panels `widgets/admin/` → `widgets/dashboard/` + +**Ticket** : **#155** (phase 2 — même ticket que le rename `Admin*`) +**Phase 1** : widgets `Admin*` → `widgets/dashboard/` (déjà sur `feature/155-rename-admin-prefix-dashboard`) +**Branche** : poursuivre / rebaser `feature/155-rename-admin-prefix-dashboard` (ou nouvelle branche depuis `develop` après merge phase 1) +**Nature** : rename / move mécanique — **zéro** changement UX / métier + +--- + +## Contexte + +Après la phase 1 (#155), la situation est **hybride** : + +| Emplacement | Contenu | +|-------------|---------| +| `widgets/dashboard/` | Composants partagés sans préfixe `Admin*` (modales, cartes, selects, sub-bar…) | +| `widgets/admin/` | **Panels** du dashboard staff (listes, wizards, validation, shell `UserManagementPanel`…) + `AdminManagementWidget` | + +Le dossier `admin/` laisse encore croire « réservé administrateur », alors que **gestionnaire** consomme les mêmes panels (`GestionnaireDashboardScreen` → `UserManagementPanel`). + +Ce ticket **termine l’option C** au niveau dossier : tout le dashboard staff vit sous `widgets/dashboard/`, sauf ce qui est **vraiment** rôle admin. + +--- + +## Objectif + +``` +frontend/lib/widgets/admin/ + ↓ git mv + update imports +frontend/lib/widgets/dashboard/… +``` + +Critère : un nouveau dev ne doit plus ouvrir `widgets/admin/` pour du code partagé admin+gestionnaire. + +--- + +## Cible d’arborescence (proposée) + +``` +widgets/dashboard/ + ├── (déjà là #155) child_detail_modal.dart, am_edit_modal.dart, user_card.dart, … + ├── user_management_panel.dart ← shell onglets + ├── user_management_sub_bar.dart ← déjà déplacé #155 + ├── dossiers_management_widget.dart + ├── dossier_list_card.dart + ├── parent_management_widget.dart ← corriger le typo managmant au passage ? + ├── enfant_management_widget.dart + ├── assistante_maternelle_management_widget.dart + ├── gestionnaire_management_widget.dart + ├── pending_validation_widget.dart + ├── parent_dossier_create_modal.dart + ├── parent_dossier_wizard.dart + ├── am_dossier_create_modal.dart + ├── am_dossier_wizard.dart + ├── validation_*.dart ← family/am wizards, refus, theme, confirm + ├── parametres_panel.dart ← utilisé par écran admin (OK dans dashboard) + ├── relais_management_panel.dart + ├── common/ ← sous-dossier optionnel + │ ├── suppression_confirm_dialog.dart + │ ├── user_list.dart + │ └── validation_detail_section.dart + └── … + +widgets/admin/ ← mince, rôle admin seulement + └── admin_management_widget.dart ← onglet Administrateurs +``` + +### Variante B (plus stricte) + +`AdminManagementWidget` + éventuels helpers purement admin → +`screens/administrateurs/widgets/` +et **suppression** du dossier `widgets/admin/`. + +**Reco** : **variante A** (garder `widgets/admin/` minimal avec seulement `AdminManagementWidget`) — moins de churn screens, clair. + +--- + +## Inventaire à déplacer (état actuel) + +### Racine `widgets/admin/` → `widgets/dashboard/` + +| Fichier actuel | Notes | +|----------------|--------| +| `user_management_panel.dart` | Shell partagé admin + gestionnaire | +| `dossiers_management_widget.dart` | | +| `dossier_list_card.dart` | | +| `parent_managmant_widget.dart` | Typo historique `managmant` — **option** : renommer → `parent_management_widget.dart` dans le même ticket ou ticket typo séparé | +| `enfant_management_widget.dart` | | +| `assistante_maternelle_management_widget.dart` | | +| `gestionnaire_management_widget.dart` | | +| `pending_validation_widget.dart` | | +| `parent_dossier_create_modal.dart` | | +| `parent_dossier_wizard.dart` | | +| `am_dossier_create_modal.dart` | | +| `am_dossier_wizard.dart` | | +| `validation_am_wizard.dart` | | +| `validation_family_wizard.dart` | | +| `validation_dossier_modal.dart` | | +| `validation_modal_theme.dart` | | +| `validation_refus_form.dart` | | +| `validation_valider_confirm_dialog.dart` | | +| `parametres_panel.dart` | Écran admin seulement, mais pas préfixé Admin — OK dashboard | +| `relais_management_panel.dart` | | + +### `widgets/admin/common/` → `widgets/dashboard/common/` (ou plat) + +| Fichier | Notes | +|---------|--------| +| `suppression_confirm_dialog.dart` | Partagé (y compris `screens/administrateurs/creation/*`) | +| `user_list.dart` | | +| `validation_detail_section.dart` | | + +### **Ne pas** déplacer + +| Fichier | Destination | +|---------|-------------| +| `admin_management_widget.dart` | Reste `widgets/admin/` (ou variante B → screens) | + +### Déjà fait (#155) — ne pas retraiter + +Tout ce qui est déjà sous `widgets/dashboard/` (`child_detail_modal`, `am_edit_modal`, `user_card`, `select_*`, `user_management_sub_bar`, …). + +--- + +## Consommateurs d’imports (à mettre à jour) + +### Screens +- `screens/administrateurs/admin_dashboardScreen.dart` — `UserManagementPanel`, `ParametresPanel` +- `screens/gestionnaire/gestionnaire_dashboard_screen.dart` — `UserManagementPanel` +- `screens/administrateurs/creation/admin_create.dart` — `suppression_confirm_dialog` +- `screens/administrateurs/creation/gestionnaires_create.dart` — idem + +### Widgets déjà en `dashboard/` +- `am_edit_modal`, `child_detail_modal`, `parent_edit_modal`, `select_*` — imports vers `widgets/admin/common/*` ou panels + +### Divers +- `widgets/common/identity_block.dart` (si import admin) +- Tous les fichiers **déplacés** entre eux (imports relatifs / package) + +### Hors scope rename classes +Sauf décision explicite sur le typo `parent_managmant_widget` → pas de rename de **classes** métier dans ce ticket (seulement chemins de fichiers + imports). +`AdminManagementWidget` **conserve** son nom. + +--- + +## Plan d’exécution + +1. Partir de `feature/155-rename-admin-prefix-dashboard` (phase 1) **ou** `develop` si phase 1 déjà mergée +2. `git mv` fichiers selon inventaire +3. Remplacer globalement + `package:p_tits_pas/widgets/admin/` → `package:p_tits_pas/widgets/dashboard/` + **sauf** `…/widgets/admin/admin_management_widget.dart` +4. Corriger imports relatifs cassés +5. Grep de contrôle (ci-dessous) +6. Build Flutter web (Docker) + smoke dashboard admin **et** gestionnaire +7. Merge → squash master si flux habituel + +--- + +## Vérifs + +```bash +# Plus de panels partagés sous admin (seul AdminManagement attendu) +find frontend/lib/widgets/admin -name '*.dart' + +# Plus d’imports panels vers l’ancien chemin (sauf AdminManagement) +rg -n "widgets/admin/(user_management|dossiers_|parent_|enfant_|assistante|gestionnaire|pending|validation_|parametres|relais|am_dossier|parent_dossier|dossier_list|common/)" frontend/lib + +# Screens OK +rg -n "widgets/admin/" frontend/lib/screens +``` + +Attendu screens : **0** hit vers panels ; éventuellement plus aucun hit `widgets/admin/` sauf si import explicite `AdminManagementWidget` depuis `user_management_panel` (chemin `widgets/admin/admin_management_widget.dart`). + +--- + +## Hors scope + +- Refonte UX des modales / panels (ticket dédié annoncé) +- Rename `EnfantAdminModel` +- Rename `screens/administrateurs/` +- Rename `AdminUserFormDialog` / `AdminCreateDialog` +- Changement API / back +- #152 (`est_multiple`) — autre branche + +--- + +## Critères d’acceptation + +- [ ] Inventaire déplacé selon tableau +- [ ] `widgets/admin/` ne contient plus que `admin_management_widget.dart` (variante A) +- [ ] Imports screens + widgets à jour +- [ ] Build Flutter OK +- [ ] Recette : dashboard **administrateur** et **gestionnaire** (listes, ouverture fiches, validation, création dossier) sans régression +- [ ] Aucun changement comportemental volontaire + +--- + +## Risques / notes + +- **Conflits de merge** si d’autres features touchent les panels → faire ce ticket quand la surface dashboard est calme (fin 0.1.0 OK) +- Typo `parent_managmant_widget` : soit inclus (bonus), soit ticket cleanup 1-ligne séparé +- Docs d’archive citant `widgets/admin/…` : pas obligatoire de mettre à jour ; `docs/27_BRIEFING-FRONTEND.md` oui si encore listé