From 3c4ef00d21a984cef56cb72fd4cb7f1ce741892b Mon Sep 17 00:00:00 2001 From: root Date: Sun, 23 Aug 2026 09:57:40 +0000 Subject: [PATCH] fix(ui): complete historical navigation inventory --- app_new/templates/_navigation_phase16.html | 6 ++++ docs/ui-audit/BUGS.md | 8 ++++++ docs/ui-audit/IMPLEMENTATION_PHASE16.md | 19 +++++++++++++ docs/ui-audit/MENU_MIGRATION_MATRIX.md | 28 ++++++++++++++++-- docs/ui-audit/PROGRESS.md | 12 ++++++++ docs/ui-audit/REPORT.md | 21 ++++++++++++++ tests/integration/test_phase16_navigation.py | 30 +++++++++++++++++++- 7 files changed, 120 insertions(+), 4 deletions(-) diff --git a/app_new/templates/_navigation_phase16.html b/app_new/templates/_navigation_phase16.html index cdd463c..2aaf467 100644 --- a/app_new/templates/_navigation_phase16.html +++ b/app_new/templates/_navigation_phase16.html @@ -164,8 +164,14 @@ Configuration IA Contraintes de zone Comptes Outlook + Ajouter un compte Outlook + Dossiers Outlook surveillés ENT77 + Messages ENT + Interprétations ENT + Personnels ENT PRONOTE (QR) +
  • PRONOTE (plannings) Salles PRONOTE Personnels PRONOTE diff --git a/docs/ui-audit/BUGS.md b/docs/ui-audit/BUGS.md index 30780a2..b21cb67 100644 --- a/docs/ui-audit/BUGS.md +++ b/docs/ui-audit/BUGS.md @@ -543,3 +543,11 @@ lookback hors périmètre et son erreur de teardown. - La première présentation de l'ancien menu sous Administration a été corrigée : il est désormais une rubrique principale parallèle, sans impact sur les permissions backend. +### Revue inventaire navigation historique (2026-08-23) + +Le total Phase 1.6 annoncé à 70 était incomplet. La comparaison Git avec la +navigation desktop avant refonte a identifié six entrées conditionnelles +oubliées, dont les quatre fonctions ENT/Pronote signalées. Elles sont +maintenant représentées dans `Ancien menu > Configuration` et dans la matrice +(`MENU_MIGRATION_MATRIX.md`). Aucun endpoint, contrôle RBAC ou comportement +d'intégration n'a été modifié. Nouveau total : 76/76. diff --git a/docs/ui-audit/IMPLEMENTATION_PHASE16.md b/docs/ui-audit/IMPLEMENTATION_PHASE16.md index 4a29c89..91cdd46 100644 --- a/docs/ui-audit/IMPLEMENTATION_PHASE16.md +++ b/docs/ui-audit/IMPLEMENTATION_PHASE16.md @@ -138,3 +138,22 @@ watchdogs, aux intégrations protégées ou aux données `TEST_UI_*`. - 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. + +## Correction de couverture historique (post-revue) + +La revue manuelle a montré que le total initial de 70 n'était pas exhaustif. +Une comparaison directe avec le bloc de navigation desktop de `base.html` +pré-Phase 1.6 (`f78cddf`) a retrouvé six entrées supplémentaires : quatre +liens ENT/Pronote signalés par l'utilisateur (`Messages ENT`, `Interprétations +ENT`, `Personnels ENT`, `PRONOTE (sync salles)`) et deux liens Outlook +conditionnels (`Ajouter un compte Outlook`, `Dossiers Outlook surveillés`). +La cause est méthodologique : l'inventaire initial s'appuyait sur le composant +de navigation refactoré et sa matrice manuelle, sans extraction exhaustive des +liens conditionnels du template historique. Les doublons mobile ne sont pas +comptés comme fonctions distinctes. + +La matrice et la rubrique principale `Ancien menu` représentent désormais +**76/76** fonctions historiques, réparties dans les cinq groupes historiques +`Principal`, `Interventions`, `Équipements`, `Documents` et `Configuration`. +Les endpoints et le RBAC backend n'ont pas été modifiés ; aucune intégration +ENT, Pronote, Outlook ou watchdog n'a été exécutée ou refactorée. diff --git a/docs/ui-audit/MENU_MIGRATION_MATRIX.md b/docs/ui-audit/MENU_MIGRATION_MATRIX.md index 11adb1d..e4d849c 100644 --- a/docs/ui-audit/MENU_MIGRATION_MATRIX.md +++ b/docs/ui-audit/MENU_MIGRATION_MATRIX.md @@ -65,8 +65,14 @@ sous-menu correspondant. | Configuration IA | `ai_config.index` | admin | Configuration | Configuration IA | Ancien menu | ADMIN UNIQUEMENT | Hors périmètre | | Contraintes de zone | `constraints.index` | admin/prevention | Configuration | Contraintes de zone | Ancien menu | ADMIN UNIQUEMENT | | | Comptes Outlook | `outlook_pages.index` | integration.outlook.view | Configuration | Comptes Outlook | Ancien menu | ADMIN UNIQUEMENT | Intégration hors périmètre | +| Ajouter un compte Outlook | `outlook_pages.add_account` | integration.outlook.configure | Configuration | Ajouter un compte Outlook | Ancien menu | ADMIN UNIQUEMENT | Entrée conditionnelle historique retrouvée dans le menu de configuration | +| Dossiers Outlook surveillés | `outlook_dashboard.processed_folders_config` | integration.outlook.configure | Configuration | Dossiers Outlook surveillés | Ancien menu | ADMIN UNIQUEMENT | Entrée conditionnelle historique retrouvée dans le menu de configuration | | ENT77 | `ent.index` | integration.ent.view | Configuration | ENT77 | Ancien menu | ADMIN UNIQUEMENT | Intégration hors périmètre | +| Messages ENT | `ent.messages` | integration.ent.view | Configuration | Messages ENT | Ancien menu | ADMIN UNIQUEMENT | Entrée conditionnelle historique restaurée | +| Interprétations ENT | `ent.interpretations` | integration.ent.view | Configuration | Interprétations ENT | Ancien menu | ADMIN UNIQUEMENT | Entrée conditionnelle historique restaurée | +| Personnels ENT | `ent.staff` | integration.ent.view | Configuration | Personnels ENT | Ancien menu | ADMIN UNIQUEMENT | Entrée conditionnelle historique restaurée | | PRONOTE (QR) | `pronote.connect` | integration.pronote.view | Configuration | PRONOTE | Ancien menu | ADMIN UNIQUEMENT | Pronote reste facultatif | +| PRONOTE (sync salles) | `pronote.sync_salles` | integration.pronote.configure | Configuration | PRONOTE (sync salles) | Ancien menu | ADMIN UNIQUEMENT | Formulaire POST conservé ; non soumis par le contrôle de navigation | | PRONOTE (plannings) | `pronote.planning` | integration.pronote.view | Configuration | Plannings PRONOTE | Ancien menu | ADMIN UNIQUEMENT | Source de synchronisation | | Salles PRONOTE | `pronote.rooms` | integration.pronote.view | Configuration | Salles PRONOTE | Ancien menu | ADMIN UNIQUEMENT | | | Personnels PRONOTE | `pronote.personnels` | integration.pronote.view | Configuration | Personnels PRONOTE | Ancien menu | ADMIN UNIQUEMENT | | @@ -86,12 +92,28 @@ sous-menu correspondant. ## Contrôle de couverture -- Entrées uniques inventoriées : **70** (hors doublons mobile et formulaires - de synchronisation POST). -- MIGRÉ : 25 ; REGROUPÉ : 20 ; ADMIN UNIQUEMENT : 25 ; DOUBLON : 0 ; +- Ancien total de référence avant la correction : **70**. +- Entrées manquantes signalées par l'utilisateur : **4** (Messages ENT, + Interprétations ENT, Personnels ENT, PRONOTE sync salles). +- Autres entrées manquantes découvertes par la comparaison Git : **2** + (Ajouter un compte Outlook, Dossiers Outlook surveillés). +- Nouveau total historique exhaustif : **76** (hors doublons mobile). +- MIGRÉ : 25 ; REGROUPÉ : 20 ; ADMIN UNIQUEMENT : 31 ; DOUBLON : 0 ; OBSOLÈTE À CONFIRMER : 0 ; NON MIGRÉ : 0 ; ROUTE CASSÉE : 0 constatée dans le template après compilation. - Les liens techniques hors périmètre sont conservés dans la rubrique principale **Ancien menu**, sous les cinq groupes historiques. Cette rubrique est transitoire et ne doit être retirée qu'après validation humaine. + +### Cause de l'omission + +Le premier inventaire Phase 1.6 avait été construit à partir de la liste +manuelle du composant de navigation refactoré et de sa matrice, au lieu de +partir du bloc desktop complet de `base.html` antérieur à la refonte. Les +entrées conditionnelles d'intégration (`ENT`, `Pronote`) et les deux liens +Outlook secondaires n'étaient donc pas représentées dans la liste de +référence. La comparaison directe avec le commit pré-Phase 1.6 a retrouvé 75 +endpoints historiques uniques, auxquels s'ajoute la messagerie directe +`/messagerie`, soit 76 entrées. Les doublons mobile ne sont pas comptés comme +des fonctions supplémentaires. diff --git a/docs/ui-audit/PROGRESS.md b/docs/ui-audit/PROGRESS.md index 51dd4c3..1698ff8 100644 --- a/docs/ui-audit/PROGRESS.md +++ b/docs/ui-audit/PROGRESS.md @@ -451,3 +451,15 @@ principale parallèle à `Administration`, avec les groupes historiques `Principal`, `Interventions`, `Équipements`, `Documents` et `Configuration`. Les 70 entrées de la matrice sont conservées et la rubrique reste réservée aux administrateurs. +### Correction inventaire navigation historique — 2026-08-23 + +- Ancien total de référence : 70 ; quatre omissions signalées puis deux + omissions supplémentaires retrouvées par comparaison Git pré-Phase 1.6. +- Nouveau total exhaustif : **76/76** (doublons mobile exclus). +- Entrées restaurées dans `Ancien menu > Configuration` : Messages ENT, + Interprétations ENT, Personnels ENT, PRONOTE (sync salles), Ajouter un compte + Outlook et Dossiers Outlook surveillés. +- Cause : inventaire initial limité au composant refactoré au lieu du bloc + desktop historique complet et de ses conditions d'affichage. +- Nouveau menu métier, RBAC et intégrations inchangés ; version conservée + `0.1.0-dev.6`. diff --git a/docs/ui-audit/REPORT.md b/docs/ui-audit/REPORT.md index 2d71257..71e1341 100644 --- a/docs/ui-audit/REPORT.md +++ b/docs/ui-audit/REPORT.md @@ -329,3 +329,24 @@ d'actions textuelles et de libellés de provenance plus clairs. La page RBAC présente désormais les libellés métier des permissions et explique le comportement administrateur. La validation visuelle réelle reste à faire avec un navigateur instrumenté. +## Correction de l'inventaire historique — 2026-08-23 + +ANCIEN TOTAL : 70 +ENTRÉES MANQUANTES SIGNALÉES PAR UTILISATEUR : 4 +AUTRES ENTRÉES MANQUANTES DÉCOUVERTES : 2 +NOUVEAU TOTAL HISTORIQUE : 76 +MESSAGES ENT PRÉSENT : OUI +INTERPRÉTATIONS ENT PRÉSENT : OUI +PERSONNEL ENT PRÉSENT : OUI (libellé historique : Personnels ENT) +PRONOTE (SYNC SALLES) PRÉSENT : OUI +GROUPES HISTORIQUES : Principal, Interventions, Équipements, Documents, Configuration +CAUSE DES OUBLIS : comparaison initiale limitée au composant de navigation +refactoré et à une matrice manuelle ; les entrées conditionnelles des +intégrations et les liens Outlook secondaires n'avaient pas été extraits du +template desktop pré-Phase 1.6. +ENTRÉES HISTORIQUES SANS CLASSEMENT : 0 +ENDPOINTS CASSÉS : 0 constaté dans les routes enregistrées +NOUVEAU MENU MODIFIÉ : NON +RBAC MODIFIÉ : NON +INTÉGRATIONS MODIFIÉES : NON +VERSION : 0.1.0-dev.6 diff --git a/tests/integration/test_phase16_navigation.py b/tests/integration/test_phase16_navigation.py index 78491a2..347cef7 100644 --- a/tests/integration/test_phase16_navigation.py +++ b/tests/integration/test_phase16_navigation.py @@ -14,8 +14,36 @@ def test_admin_sees_new_menu_and_legacy_reference(authenticated_client): assert "Ancien menu" in body assert "Référentiel temporaire" in body or "temporaire" in body assert body.index("Administration") < body.index("Ancien menu") - for group in ("Principal", "Interventions", "Équipements", "Configuration"): + for group in ("Principal", "Interventions", "Équipements", "Documents", "Configuration"): assert group in body + for historical_label in ( + "Ajouter un compte Outlook", + "Dossiers Outlook surveillés", + "Messages ENT", + "Interprétations ENT", + "Personnels ENT", + "PRONOTE (sync salles)", + ): + assert historical_label in body + + +def test_historical_integration_endpoints_are_registered(app): + """Les liens conditionnels historiques pointent vers des routes existantes. + + Le formulaire Pronote n'est pas soumis : ce contrôle ne déclenche aucune + synchronisation externe. + """ + with app.app_context(): + endpoints = {rule.endpoint for rule in app.url_map.iter_rules()} + for endpoint in ( + "outlook_pages.add_account", + "outlook_dashboard.processed_folders_config", + "ent.messages", + "ent.interpretations", + "ent.staff", + "pronote.sync_salles", + ): + assert endpoint in endpoints def test_non_admin_does_not_see_admin_navigation(client, app):