gmao/docs/ui-audit/IMPLEMENTATION_PHASE16.md

141 lines
5.6 KiB
Markdown
Raw Normal View History

# Phase 1.6 — UI, UX et navigation
Date de reprise : 23 août 2026
Base : copie locale MariaDB issue de la VM
Périmètre : navigation métier et améliorations UX réversibles ; aucune Phase 2.
## Baseline
- Commit de départ : `f78cddf`.
- Version de départ : `0.1.0-dev.5`.
- Working tree propre avant les changements Phase 1.6.
- Docker : `gmao-flask` 0.1.0-dev.5, MariaDB et Adminer sains.
- URL locale : `http://127.0.0.1:5080/`.
- `/health/` : HTTP 200, base connectée, Pronote/watchdogs désactivés.
- Baseline globale connue : 129 passed, 1 failed, 1 error ; l'échec et
l'erreur sont le test historique de lookback/contexte GMAO hors périmètre.
- Un lancement local isolé des tests avec des identifiants DB génériques a
échoué à l'initialisation (`Access denied`) ; la configuration de test
documentée reste inchangée et ce n'est pas une régression applicative.
## Inventaire et matrice
L'inventaire repository-wide des liens de `base.html`, y compris les entrées
conditionnelles et les liens techniques historiques, est consigné dans
[`MENU_MIGRATION_MATRIX.md`](MENU_MIGRATION_MATRIX.md).
- Entrées uniques inventoriées : **70**.
- MIGRÉ : **25**.
- REGROUPÉ : **20**.
- ADMIN UNIQUEMENT : **25**.
- DOUBLON : **0**.
- OBSOLÈTE À CONFIRMER : **0**.
- NON MIGRÉ : **0**.
- ROUTE CASSÉE constatée dans le template : **0**.
## Nouveau menu métier
La navigation est désormais organisée par intention :
```text
Accueil
Tableau de bord
Mon travail
Interventions
Planning des salles
Planning unifié
Tâches préventives / planifiées
Tâches administratives
Disponibilités
Prévention
Patrimoine
Bâtiments, Zones, Salles / locaux, Équipements
Catégories, Types de salles, Cycle de vie
Produits & stocks
Produits, Références commerciales, Stock, Emplacements
Mouvements, Réceptions, Sorties, Transvasements / dilutions
Fiches de demande, Prévisions
Entreprises
Entreprises, Contrats, Services, Pièces
Documents
Centre documentaire, FDS accessibles
Administration
Utilisateurs, Rôles et permissions, État du système, Journaux
Ancien menu (rubrique principale, transitoire, administrateurs uniquement)
Principal
Interventions
Équipements
Documents
Configuration
```
Les rubriques sont conditionnées par les permissions effectives. Un parent
sans enfant autorisé n'est pas rendu. Les URLs et les contrôles backend ne
sont pas remplacés par un contrôle de template.
## Ancien menu
**ANCIEN MENU RUBRIQUE PRINCIPALE : OUI**
**ANCIEN MENU DANS ADMINISTRATION : NON**
**VISIBLE UNIQUEMENT ADMIN : OUI**
L'ancien inventaire complet est accessible dans une rubrique principale
`Ancien menu`, parallèle à `Administration`. Il reprend les cinq groupes
historiques réels (`Principal`, `Interventions`, `Équipements`, `Documents`,
`Configuration`) sous forme de sous-menus repliables. Il inclut les 70 entrées
de la matrice, sans réorganisation métier. Il ne possède pas de nouveau
mécanisme d'autorisation et ne doit être retiré qu'après validation humaine.
## UX appliquée
- Tableau de bord : phrase d'orientation courte ajoutée sans ajouter de
nouvelles métriques ni de moteur de planning.
- Centre documentaire et FDS : états vides explicites, origine des documents,
actions textuelles de téléchargement et lien vers le produit.
- Planning des salles : caption de tableau, en-têtes accessibles, messages
d'état vide actionnables et provenance/protection déjà exprimées en français.
- Administration RBAC : libellés issus de `permission_metadata` et explication
du comportement des administrateurs ; les clés techniques restent
secondaires.
- Aucun changement de modèle, de RBAC, d'intégration ou de données métier.
Les propositions lourdes (checklist d'onboarding, refonte graphique complète,
nouveau dashboard et Phase 2) restent documentées dans `UX_PROPOSALS.md`.
## Responsive et accessibilité
Les contrôles statiques montrent l'usage des composants responsive existants,
des labels associés, des boutons textuels et des captions de tableau. Aucun
navigateur instrumenté n'est disponible dans l'environnement courant : la
validation visuelle 1366×768, 768×1024 et 390×844 reste explicitement à faire
avant une livraison distante. Cette limitation n'est pas présentée comme une
validation visuelle réussie.
## Tests Phase 1.6
- `tests/integration/test_phase16_navigation.py` : menu administrateur,
masquage non-administrateur et destinations principales.
- Les suites documentaires/planning Phase 1 et Phase 1.5 sont conservées.
- Résultat ciblé navigation + documents/planning : **21 tests passants** avec
la configuration DB de test normale.
- Suite complète après la passe : **132 passed, 1 failed, 1 error**. Les trois
tests ajoutés expliquent l'augmentation par rapport au baseline ; le seul
échec et l'erreur restent le test historique lookback/contexte GMAO hors
périmètre (valeur non plafonnée et teardown `user_id` interdit).
- Le test de disponibilité horaire préventive a été rendu indépendant de
l'ordre d'exécution en choisissant une date de fermeture non utilisée.
## Version et livraison
La version est incrémentée séparément en `0.1.0-dev.6` car la réorganisation
de navigation est visible et substantielle. Ce changement restera dans un
commit `chore(release)` distinct. Aucun changement n'a été fait à `alban`, aux
watchdogs, aux intégrations protégées ou aux données `TEST_UI_*`.
## Limites restantes
- validation visuelle réelle sans navigateur ;
- suppression de l'ancien menu après validation humaine ;
- checklist d'onboarding et enrichissement du dashboard ;
- moteur d'optimisation et replanification Phase 2 non commencés.