8.1 KiB
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/<panels & common partagés>
↓ 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,ParametresPanelscreens/gestionnaire/gestionnaire_dashboard_screen.dart—UserManagementPanelscreens/administrateurs/creation/admin_create.dart—suppression_confirm_dialogscreens/administrateurs/creation/gestionnaires_create.dart— idem
Widgets déjà en dashboard/
am_edit_modal,child_detail_modal,parent_edit_modal,select_*— imports verswidgets/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
- Partir de
feature/155-rename-admin-prefix-dashboard(phase 1) oudevelopsi phase 1 déjà mergée git mvfichiers selon inventaire- Remplacer globalement
package:p_tits_pas/widgets/admin/→package:p_tits_pas/widgets/dashboard/
sauf…/widgets/admin/admin_management_widget.dart - Corriger imports relatifs cassés
- Grep de contrôle (ci-dessous)
- Build Flutter web (Docker) + smoke dashboard admin et gestionnaire
- Merge → squash master si flux habituel
Vérifs
# 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 queadmin_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.mdoui si encore listé