# Matrice des pages

Matrice initiale issue du smoke test authentifié avec `chatgpt`.

| Domaine | URL | Résultat | Commentaire |
|---|---|---:|---|
| Dashboard | `/` | 200 | Revalidé VM ; affiche « Aucun équipement » si la relation est absente |
| Alertes | `/alerts` | 200 | Accessible |
| Messagerie | `/messagerie` | 200 | Accessible |
| Interventions | `/interventions/` | 200 | UI-017 validé sur VM avec localisation absente |
| Nouvelle intervention | `/interventions/new` | 200 | Formulaire affiché |
| Planning | `/planning/` | 200 | Smoke test |
| Horaires | `/planning/time` | 200 | Formulaire affiché |
| Disponibilités | `/planning/availability` | 200 | Titre/structure semblent identiques aux horaires |
| Planning planifié | `/planning/scheduled` | 200 | Accessible |
| Planning journée | `/planning/day/2026-08-25` | 200 | Vue journalière accessible |
| Compteurs | `/planning/meters` | 200 | Accessible |
| Consommables | `/planning/consumables` | 200 | Accessible |
| Tâches administratives | `/planning/admin-tasks` | 200 | Accessible |
| Règles | `/planning/rules` | 200 | Accessible |
| Documents | `/documents/` | 404 | UI-011 |
| Services | `/services/` | 200 | Accessible |
| Types de salles | `/room-types/` | 200 | Accessible |
| Prévention | `/prevention/` | 200 | Smoke test |
| Export DUERP | `/prevention/duerp.csv` | 200 | CSV généré avec en-tête UTF-8 et téléchargement |
| Formations | `/training/` | 200 | Smoke test |
| Équipements | `/equipments/` | 200 | Smoke test |
| Équipement détail groupe | `/equipments/1` | 200 local | UI-031 validé localement après enregistrement du filtre `nl2br` |
| Catégories | `/equipments/categories` | 200 | Accessible |
| Bâtiments | `/equipments/buildings/` | 200 | Confusion Site/Bâtiment |
| Zones | `/equipments/zones/` | 200 | Accessible |
| Salles | `/equipments/rooms/` | 200 | Liste accessible |
| Création salle | `/equipments/rooms/new` | 200 | Revalidé VM : bâtiments visibles, validation croisée serveur |
| Entreprises | `/companies/` | 200 | Accessible |
| Entreprise détail | `/companies/1` | 200 | Détail de l'entreprise de test accessible |
| Téléversement document intervention | `/documents/upload/intervention/1` | 302 | PDF artificiel accepté |
| Téléchargement document intervention | `/documents/intervention/download/1` | 200 | PDF artificiel récupérable |
| Lots | `/lots/` | 200 | Accessible |
| Pièces | `/parts/` | 200 | Accessible |
| Nettoyage | `/cleaning/` | 200 | Accessible |
| Produits | `/cleaning/products` | 200 | Accessible |
| Références | `/cleaning/references` | 200 | Accessible |
| Stock | `/cleaning/stock` | 200 | Revalidé VM après lots, mouvements et correction d'inventaire |
| Emplacements | `/cleaning/locations` | 200 | Formulaire/liste accessibles |
| Réceptions | `/cleaning/receive` | 200 | Accessible |
| Sorties | `/cleaning/issue` | 200 | Accessible |
| Transferts | `/cleaning/transfer` | 200 | Formulaire accessible |
| Mouvements | `/cleaning/movements` | 200 | Journal accessible |
| Inventaires | `/cleaning/inventory` | 200 | Écran accessible |
| Transvasement | `/cleaning/transvasement` | 200 | Revalidé VM ; transvasement 0,1 L et refus quantité impossible |
| Fiches papier | `/cleaning/requests` | 200 | Accessible |
| Nouveau profil de demande | `/cleaning/requests/new` | 200 | Création de profil validée |
| Impression fiche | `/cleaning/requests/print/1` | 200 | Fiche accessible avec agent TEST_UI |
| Matériel durable | `/cleaning/material` | 200 | Accessible |
| Prévision | `/cleaning/forecast-config` | 200 | Revalidé VM ; validation numérique testée |
| Prévision produit | `/cleaning/forecast/1` | 200 | Résultat consultable pour le produit TEST_UI |
| Documents produits | `/cleaning/documents` | 200 | Écran accessible, aucun document de test créé |
| Étiquette mouvement | `/cleaning/labels/1` | 200 | Étiquette consultable à partir d'un mouvement avec lot/référence |
| Nouveau produit | `/cleaning/products/new` | 200 | Validation affichée ; soumission valide non confirmée (timeout antérieur) |
| Nouvelle référence | `/cleaning/references/new` | 200 | Formulaire accessible |
| Nouveau conditionnement | `/cleaning/packaging/new` | 200 | Formulaire accessible |
| Création équipement guidée | `/equipments/create` | 302 | Redirige vers `/wizard/equipments` |
| Création équipement avancée | `/equipments/create?advanced=1` | 200 | Formulaire avancé avec 8 listes et 13 champs |
| Assistant inventaire | `/wizard/equipments` | 200 | Arborescence et filtres présents |
| Pièce nouvelle | `/parts/new` | 200 | Formulaire accessible |
| Contrat nouveau | `/contracts/new` | 200 | Formulaire accessible |
| Formation nouvelle | `/training/new` | 200 | Formulaire accessible |
| Service nouveau | `/services/new` | 200 | Formulaire accessible |
| Type de salle nouveau | `/room-types/new` | 200 | Formulaire accessible |
| Lot détail | `/lots/1` | 200 | Détail accessible |
| Lot édition | `/lots/1/edit` | 200 | Formulaire accessible |
| Tâches planning | `/planning/tasks` | 200 | Liste accessible |
| Nouvelle tâche planning | `/planning/tasks/new` | 200 | Formulaire accessible |
| Nouvelle disponibilité | `/planning/availability/schedule/new` | 200 | Formulaire accessible |
| Nouvelle fermeture | `/planning/availability/closure/new` | 200 | Formulaire accessible |
| Rôles | `/admin/roles` | 200 | RBAC vérifié |
| Utilisateurs | `/admin/users` | 200 | RBAC vérifié |
| Permissions | `/admin/permissions` | 200 | RBAC vérifié |
| Status | `/status/` | 200 | Accessible |
| Logs | `/logs/` | 403/200 | UI-012 : absent/403 sans permission ; visible/200 avec `TEST_UI_REVALIDATION_RBAC` |
| Export interventions | `/exports/interventions` | 200 | Page d'export accessible |
| Export coûts CSV | `/exports/costs/csv` | 200 | Réponse courte ; téléchargement non sauvegardé |
| Logements | `/housing/` | 200 | Page accessible |
| Compteurs | `/meters/` | 200 | Page accessible |
| Planificateur | `/scheduler/` | 200 | Page accessible |
| Profil | `/auth/profile` | 200 | Page accessible |
| Changement mot de passe | `/auth/change-password` | 200 | Formulaire accessible, non soumis |
| Alertes | `/alerts` | 200 | Page accessible |
| Messagerie | `/messagerie` | 200 | Page accessible, aucune synchronisation déclenchée |
| Mes formations | `/training/my-trainings` | 200 | Page accessible |

## Filtres et pagination

- `/lots/?search=TEST_UI` : 200.
- `/lots/?presence=absent` : 200.
- `/equipments/?search=TEST_UI` : 200.
- `/equipments/?status=operationnel` : 200.
- `/interventions/?type=curatif&priority=normale` : 200.
- `/lots/?page=2` et `/equipments/?page=2` : 200.
- `/interventions/?page=2` et `/companies/?page=2` : 404.

Les pages d'intégration et de configuration interdites ne sont pas testées
activement.

## Contrôle final local

| Page | URL | Résultat local | Commentaire |
|---|---|---:|---|
| Centre documentaire global | `/documents/` | Implémenté localement | UI-011 corrigé dans le code ; revalidation VM à faire |
| FDS / fiches techniques | `/cleaning/documents` | 200 | Page stock documentaire |
| Détail équipement groupé | `/equipments/3` | 200 | Filtre `nl2br` enregistré ; quantité 30 affichée |
| Hiérarchie équipement groupé | `/equipments/3/hierarchy` | 200 | Bâtiment → zone → salle → quantité |
| Health | `/health/` | 200 | Version cible `0.1.0-dev.5` après rebuild |

### Phase 1 — nouvelles routes locales

| Fonction | URL | État local | Périmètre |
|---|---|---:|---|
| Centre documentaire | `/documents/` | Implémenté, à revalider après rebuild | Interventions, équipements, produits |
| FDS globales | `/documents/fds` | Implémenté, à revalider après rebuild | Produits d'entretien |
| Planning interne des salles | `/planning/rooms` | Implémenté, à revalider après rebuild | Saisie manuelle et créneaux résolus |
| Nouveau créneau salle | `/planning/rooms/new` | Implémenté | Permission planning.edit |

### Phase 1.5 — revalidation locale

| Planning Pronote d'une salle | `/pronote/planning/<id>` | 200 local | Vue interne résolue, provenance et fraîcheur |
| Import Pronote d'une semaine | `/pronote/planning/<id>/import` | Raccordé | Synchronisation contrôlée, protection/conflits |

## Phase 1.6 — navigation et UX

| Fonction | URL / emplacement | État local | Commentaire |
|---|---|---|---|
| Nouveau menu métier | navigation globale | Implémenté | Groupes Accueil, Mon travail, Patrimoine, Produits & stocks, Entreprises, Documents, Administration |
| Ancien menu | Administration → Ancien menu | Implémenté | Référentiel complet, transitoire, visible uniquement avec `system.admin` |
| Centre documentaire UX | `/documents/` | Implémenté | Description, filtres, état vide explicite, actions textuelles |
| FDS UX | `/documents/fds` | Implémenté | État vide explicite et lien « Voir le produit » |
| Planning salles UX | `/planning/rooms` | Implémenté | Provenance, protection, conflits et caption accessible |
| Permissions | `/admin/permissions` | Implémenté | Libellés métier et rappel du comportement administrateur |

Le contrôle visuel réel aux trois tailles reste à effectuer lorsqu'un
navigateur instrumenté sera disponible.
| Ma journée | `/planning/my-day` | `planning.view` | Proposition quotidienne de tâches internes | Implémentée Phase 2 ; aucune écriture automatique |
| Replanification Ma journée | `/planning/my-day/reschedule` | `planning.edit` | Validation d'un créneau choisi | Implémentée Phase 2.1 ; contrôles serveur |
# Requalification Phase 2.1 — pages de prérequis

| Page | Usage métier | État |
|---|---|---|
| `/planning/time` | horaires et pauses d'un technicien | accessible ; sélection administrateur ajoutée |
| `/lots/` | consulter les lots et leur périmètre | accessible ; création initiale guidée par l'assistant équipement |
| `/lots/<id>/tasks/new` | durée et périodicité d'une action préventive | route existante |
| assistant équipement | créer un équipement et choisir/créer son lot | route UI existante |
| `/planning/my-day` | vérifier les prérequis et la journée | aide horaires/planning ajoutée |
| `/equipments/rooms/bulk` | Créer plusieurs locaux similaires | Utilisateur connecté | Implémenté Phase 2.1c |
| `/contracts/<id>` | Maintenance couverte par contrat | Utilisateur connecté | Enrichi Phase 2.1c |
| `/planning/scheduled/<id>/{start,pause,resume,complete}` | Exécuter une tâche par segments | Utilisateur connecté | Implémenté Phase 2.1c |
