fix(ui): complete historical navigation inventory
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run
This commit is contained in:
parent
db46ec6374
commit
3c4ef00d21
7 changed files with 120 additions and 4 deletions
|
|
@ -164,8 +164,14 @@
|
|||
<a class="dropdown-item" href="{{ url_for('ai_config.index') }}">Configuration IA</a>
|
||||
<a class="dropdown-item" href="{{ url_for('constraints.index') }}">Contraintes de zone</a>
|
||||
<a class="dropdown-item" href="{{ url_for('outlook_pages.index') }}">Comptes Outlook</a>
|
||||
<a class="dropdown-item" href="{{ url_for('outlook_pages.add_account') }}">Ajouter un compte Outlook</a>
|
||||
<a class="dropdown-item" href="{{ url_for('outlook_dashboard.processed_folders_config') }}">Dossiers Outlook surveillés</a>
|
||||
<a class="dropdown-item" href="{{ url_for('ent.index') }}">ENT77</a>
|
||||
<a class="dropdown-item" href="{{ url_for('ent.messages') }}">Messages ENT</a>
|
||||
<a class="dropdown-item" href="{{ url_for('ent.interpretations') }}">Interprétations ENT</a>
|
||||
<a class="dropdown-item" href="{{ url_for('ent.staff') }}">Personnels ENT</a>
|
||||
<a class="dropdown-item" href="{{ url_for('pronote.connect') }}">PRONOTE (QR)</a>
|
||||
<li><form method="post" action="{{ url_for('pronote.sync_salles') }}"><button class="dropdown-item" type="submit"><i class="bi bi-download"></i> PRONOTE (sync salles)</button></form></li>
|
||||
<a class="dropdown-item" href="{{ url_for('pronote.planning') }}">PRONOTE (plannings)</a>
|
||||
<a class="dropdown-item" href="{{ url_for('pronote.rooms') }}">Salles PRONOTE</a>
|
||||
<a class="dropdown-item" href="{{ url_for('pronote.personnels') }}">Personnels PRONOTE</a>
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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`.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
|
|
|
|||
Loading…
Reference in a new issue