# Audit UI/UX — environnement de test

Date : 21 août 2026  
Instance : `http://82.64.101.239/`  
Compte : `chatgpt`  
`alban` n'a pas été modifié.

## Résumé

Après l'ajout de ressources VM, l'instance répond de nouveau. Les modules
principaux sont accessibles, mais trois anomalies sont reproductibles :

- `/cleaning/transvasement` renvoie HTTP 500 ;
- `/cleaning/forecast-config` renvoie HTTP 500 ;
- `/equipments/rooms/new` affiche un sélecteur de bâtiment vide alors que des
  bâtiments existent.

La page Bâtiments mélange aussi la création d'un site/collège et celle d'un
bâtiment, ce qui est trompeur pour un utilisateur non technique.

## Santé et version

- `/health/` : HTTP 200, MariaDB connectée.
- Version : `0.1.0-dev.2`.
- Environnement déclaré : `development`.
- Commit affiché : `unknown` (image construite sans `GIT_VERSION`).
- Aucun watchdog ou intégration interdite n'a été actionné.

## Smoke test

HTTP 200 avec `chatgpt` : dashboard, alertes, messagerie, interventions,
planning, prévention, formations, équipements, catégories, bâtiments, zones,
logements, entreprises, contrats, lots, pièces, nettoyage, produits,
références, stock, réceptions, sorties, fiches papier, matériel durable,
rôles, utilisateurs, permissions et status.

| URL | Résultat |
|---|---:|
| `/cleaning/transvasement` | **500** |
| `/cleaning/forecast-config` | **500** |
| `/logs/` | 403 avec `chatgpt` |
| `/api/v1/status` sans session | 401 |
| `/api/v1/equipments` sans session | 401 |
| `/api/v1/interventions` sans session | 401 |

Playwright a confirmé les deux erreurs 500 dans la console navigateur. Les
pages d'intégration, de configuration et les watchdogs n'ont pas été écrites.

## Bugs prioritaires

### UI-001 — Transvasement inaccessible

- Priorité : P1
- URL : `/cleaning/transvasement`
- Résultat : écran générique 500.
- Attendu : formulaire ou message métier explicite avec stock vide.
- Impact : aucune dilution/transvasement possible.

### UI-002 — Prévisions inaccessibles

- Priorité : P1
- URL : `/cleaning/forecast-config`
- Résultat : écran générique 500.
- Attendu : coefficients par défaut modifiables.
- Impact : impossible de paramétrer la consommation des permanences.

### UI-003 — Création de salle bloquée

- Priorité : P1
- URL : `/equipments/rooms/new`
- Résultat : select « Bâtiment » vide malgré des bâtiments existants.
- Attendu : bâtiments proposés puis zones filtrées.
- Impact : impossible de créer les salles, donc de tester équipements et
  interventions liés aux locaux.

### UI-004 — Site et bâtiment confondus

- Priorité : P2
- URL : `/equipments/buildings/`
- Résultat : le formulaire principal crée un `Site` (Collège), tandis que le
  vrai bâtiment se crée via `/equipments/buildings/new`.
- Recommandation : deux blocs distincts et une aide établissement → bâtiment
  → zone → salle.

### UI-005 — Commit Docker inconnu

- Priorité : P2
- Résultat : version visible mais commit `unknown`.
- Recommandation : `GIT_VERSION=$(git rev-parse HEAD)` lors du build.

### UI-006 — Instabilité pendant le crawl

- Priorité : P1 à confirmer
- Plusieurs navigations ont dépassé 8 à 30 secondes et rendu l'instance
  temporairement injoignable. Surveiller Gunicorn, RAM, CPU et MariaDB.

## RBAC vérifié

Le setup crée `super_admin`, `admin`, `responsable_gmao`, `technicien`,
`assistant_prevention`, `demandeur` et `lecture`. La matrice contient 71
permissions ; `admin` en possède 67 et ne possède pas `*`. `super_admin` a une
matrice fixe. Les API anonymes renvoient 401 et les pages métier redirigent
vers la connexion.

## Données de test laissées

Créées via l'interface :

- sites : `TEST_UI_BAT_A`, `TEST_UI_BAT_B` ;
- bâtiments : `TEST_UI_BUILDING_A`, `TEST_UI_BUILDING_B` ;
- zones : `TEST_UI_ZONE_PEDAGO`, `TEST_UI_ZONE_ADMIN`, `TEST_UI_ZONE_TECH`,
  `TEST_UI_ZONE_RESTAURATION`, `TEST_UI_ZONE_EXTERIEUR`,
  `TEST_UI_ZONE_CIRCULATION` ;
- entreprise : `TEST_UI_COMPANY_MAINTENANCE`.

Le setup a également laissé `Collège audit RBAC`, `Bâtiment audit`, 36
catégories et 91 lots. La création des salles a été bloquée par UI-003.

Le formulaire produit a été inspecté : `reference_unit` est un texte libre et
non une liste d'unités. Sa création de test a été interrompue pendant une
phase d'instabilité et doit être vérifiée avant réutilisation.

## Tests restant à reprendre

Équipements quantifiés et sérialisés, déplacements de chaises, cycle de vie,
interventions liées aux salles, FEFO, inventaires, transvasements, planning
des permanences, multi-rôles avancé, documents et responsive complet.

Aucun nettoyage n'a été effectué et aucun code applicatif n'a été corrigé
pendant cet audit.
