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('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('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.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.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>
|
<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.planning') }}">PRONOTE (plannings)</a>
|
||||||
<a class="dropdown-item" href="{{ url_for('pronote.rooms') }}">Salles PRONOTE</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>
|
<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é
|
- 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
|
corrigée : il est désormais une rubrique principale parallèle, sans impact
|
||||||
sur les permissions backend.
|
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 ;
|
- suppression de l'ancien menu après validation humaine ;
|
||||||
- checklist d'onboarding et enrichissement du dashboard ;
|
- checklist d'onboarding et enrichissement du dashboard ;
|
||||||
- moteur d'optimisation et replanification Phase 2 non commencés.
|
- 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 |
|
| 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 | |
|
| 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 |
|
| 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 |
|
| 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 (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 |
|
| 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 | |
|
| 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 | |
|
| 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
|
## Contrôle de couverture
|
||||||
|
|
||||||
- Entrées uniques inventoriées : **70** (hors doublons mobile et formulaires
|
- Ancien total de référence avant la correction : **70**.
|
||||||
de synchronisation POST).
|
- Entrées manquantes signalées par l'utilisateur : **4** (Messages ENT,
|
||||||
- MIGRÉ : 25 ; REGROUPÉ : 20 ; ADMIN UNIQUEMENT : 25 ; DOUBLON : 0 ;
|
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
|
OBSOLÈTE À CONFIRMER : 0 ; NON MIGRÉ : 0 ; ROUTE CASSÉE : 0 constatée dans
|
||||||
le template après compilation.
|
le template après compilation.
|
||||||
- Les liens techniques hors périmètre sont conservés dans la rubrique
|
- Les liens techniques hors périmètre sont conservés dans la rubrique
|
||||||
principale **Ancien menu**, sous les cinq groupes historiques. Cette
|
principale **Ancien menu**, sous les cinq groupes historiques. Cette
|
||||||
rubrique est transitoire et ne doit être retirée qu'après validation
|
rubrique est transitoire et ne doit être retirée qu'après validation
|
||||||
humaine.
|
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`.
|
`Principal`, `Interventions`, `Équipements`, `Documents` et `Configuration`.
|
||||||
Les 70 entrées de la matrice sont conservées et la rubrique reste réservée
|
Les 70 entrées de la matrice sont conservées et la rubrique reste réservée
|
||||||
aux administrateurs.
|
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
|
présente désormais les libellés métier des permissions et explique le
|
||||||
comportement administrateur. La validation visuelle réelle reste à faire avec
|
comportement administrateur. La validation visuelle réelle reste à faire avec
|
||||||
un navigateur instrumenté.
|
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 "Ancien menu" in body
|
||||||
assert "Référentiel temporaire" in body or "temporaire" in body
|
assert "Référentiel temporaire" in body or "temporaire" in body
|
||||||
assert body.index("Administration") < body.index("Ancien menu")
|
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
|
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):
|
def test_non_admin_does_not_see_admin_navigation(client, app):
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue