docs(audit): documenter les corrections des blocages
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
f2783a05c8
commit
ce6d8ae9de
4 changed files with 96 additions and 3 deletions
|
|
@ -375,3 +375,47 @@ Les groupes `TEST_UI_EQ_CHAISES` (30 individuels) et
|
|||
renvoient HTTP 500. `/equipments/<id>/hierarchy` renvoie une liste de zones
|
||||
vide. Les déplacements et cycles de vie restent donc bloqués. Anomalie
|
||||
documentée uniquement, sans correction pendant cette passe.
|
||||
|
||||
## Passe corrective ciblée — 22 août 2026
|
||||
|
||||
Les trois blocages restants ont été corrigés dans le dépôt local. La VM
|
||||
auditée n'est pas accessible depuis cette passe : chaque statut ci-dessous
|
||||
reste **CORRIGÉ DANS LE CODE — À REVALIDER SUR VM**.
|
||||
|
||||
### UI-017 — liste des interventions
|
||||
|
||||
- Cause : les templates de liste et du planning préventif accédaient
|
||||
directement à `interv.equipment.name` pour des relations optionnelles.
|
||||
- Correction : affichage conditionnel de l'équipement, puis de la salle, puis
|
||||
du libellé humain `Localisation non renseignée`.
|
||||
- Fichiers : les deux templates `interventions/index.html` et les deux
|
||||
templates `interventions/planning.html`.
|
||||
- Tests : quatre combinaisons salle/équipement couvrent liste, détail et
|
||||
dashboard.
|
||||
- Statut : **CORRIGÉ DANS LE CODE — À REVALIDER SUR VM**.
|
||||
|
||||
### UI-031 — détail et hiérarchie des équipements groupés
|
||||
|
||||
- Cause du détail 500 : le template global affichait
|
||||
`equipment.preventive_count`, propriété absente du modèle `Equipment`.
|
||||
- Correction : ajout de cette propriété calculée au modèle, sans migration.
|
||||
- Cause de la hiérarchie vide : l'endpoint ne sélectionnait que les
|
||||
descendants ; une famille quantitative sans enfant produisait zéro ligne,
|
||||
même si sa salle était renseignée.
|
||||
- Correction : si aucun descendant n'est trouvé, l'équipement racine est
|
||||
ajouté avec son bâtiment, sa zone, sa salle et sa quantité effective.
|
||||
- Fichiers : `app_new/core/models/equipment.py` et
|
||||
`app_new/equipments/main.py`.
|
||||
- Tests : famille quantitative de quantité 30, détail rendu et endpoint
|
||||
hierarchy vérifié avec zone/salle/quantité.
|
||||
- Statut : **CORRIGÉ DANS LE CODE — À REVALIDER SUR VM**.
|
||||
|
||||
### Résidu UI-012 — lien Journaux
|
||||
|
||||
- Cause : la navigation vérifiait `audit.view`, alors que la garde globale de
|
||||
`logs.index` exige `watchdog_dnd.view`.
|
||||
- Correction : le bouton `/logs/` utilise désormais exactement
|
||||
`has_permission('watchdog_dnd.view')`.
|
||||
- Fichier : `app_new/templates/base.html`.
|
||||
- Tests : concordance vérifiée avec `required_permission('logs.index', 'GET')`.
|
||||
- Statut : **CORRIGÉ DANS LE CODE — À REVALIDER SUR VM**.
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ Matrice initiale issue du smoke test authentifié avec `chatgpt`.
|
|||
| Dashboard | `/` | 200 | Revalidé VM ; affiche « Aucun équipement » si la relation est absente |
|
||||
| Alertes | `/alerts` | 200 | Accessible |
|
||||
| Messagerie | `/messagerie` | 200 | Accessible |
|
||||
| Interventions | `/interventions/` | 500 | UI-017 toujours reproductible avec intervention sans salle/équipement |
|
||||
| Interventions | `/interventions/` | 500 | UI-017 corrigé dans le code, à revalider sur VM |
|
||||
| Nouvelle intervention | `/interventions/new` | 200 | Formulaire affiché |
|
||||
| Planning | `/planning/` | 200 | Smoke test |
|
||||
| Horaires | `/planning/time` | 200 | Formulaire affiché |
|
||||
|
|
@ -25,7 +25,7 @@ Matrice initiale issue du smoke test authentifié avec `chatgpt`.
|
|||
| 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` | 500 | UI-031 observé après création de `TEST_UI_EQ_CHAISES` |
|
||||
| Équipement détail groupe | `/equipments/1` | 500 | UI-031 corrigé dans le code, à revalider sur VM |
|
||||
| Catégories | `/equipments/categories` | 200 | Accessible |
|
||||
| Bâtiments | `/equipments/buildings/` | 200 | Confusion Site/Bâtiment |
|
||||
| Zones | `/equipments/zones/` | 200 | Accessible |
|
||||
|
|
@ -77,7 +77,7 @@ Matrice initiale issue du smoke test authentifié avec `chatgpt`.
|
|||
| Utilisateurs | `/admin/users` | 200 | RBAC vérifié |
|
||||
| Permissions | `/admin/permissions` | 200 | RBAC vérifié |
|
||||
| Status | `/status/` | 200 | Accessible |
|
||||
| Logs | `/logs/` | 403 | Incohérence à analyser |
|
||||
| Logs | `/logs/` | 403 | Résidu UI-012 corrigé dans le code ; bouton aligné sur `watchdog_dnd.view` |
|
||||
| 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 |
|
||||
|
|
|
|||
|
|
@ -206,3 +206,19 @@ Suite complète locale : **117 passed, 1 failed, 1 error**. Le test échoué est
|
|||
(la configuration de contexte GMAO est explicitement exclue) ; son teardown
|
||||
échoue également sur une contrainte `gmao_context.user_id` nulle. Aucun échec
|
||||
des tests ciblés par les correctifs P1.
|
||||
|
||||
## Passe corrective ciblée locale — 22 août 2026
|
||||
|
||||
UI-017, UI-031 et le résidu UI-012 sont **CORRIGÉS DANS LE CODE — À
|
||||
REVALIDER SUR VM**. UI-017 accepte désormais les quatre combinaisons de
|
||||
relations optionnelles ; UI-031 rend les fiches d'équipement groupé et sa
|
||||
hiérarchie même sans enfant ; UI-012 aligne le bouton Journaux sur
|
||||
`watchdog_dnd.view`.
|
||||
|
||||
Tests ciblés : **10 passed** ; suites demandées : **19 passed**.
|
||||
Suite complète : **120 passed, 2 failed, 1 error**. Le test historique de
|
||||
lookback GMAO échoue toujours avec son teardown ; un test stock échoue aussi
|
||||
après modification du rôle admin par les tests RBAC. Ces résultats sont hors
|
||||
des trois correctifs ciblés.
|
||||
|
||||
Commits : `8c54f46`, `864f65d`, `f2783a0`.
|
||||
|
|
|
|||
|
|
@ -158,3 +158,36 @@ références, mouvements et emplacements. Les écrans utilisateurs/rôles ont
|
|||
également été sollicités avant l'interruption du lot ; aucune régression 500
|
||||
n'a été observée sur les pages parcourues, en dehors de UI-017 et UI-031 déjà
|
||||
documentés.
|
||||
|
||||
## Passe corrective ciblée locale — 22 août 2026
|
||||
|
||||
Cette passe n'a traité que UI-017, UI-031 et le résidu UI-012. La VM n'étant
|
||||
pas accessible depuis l'environnement de correction, aucun résultat ne vaut
|
||||
validation VM.
|
||||
|
||||
1. **UI-017** : les templates supposaient que `Intervention.equipment`
|
||||
existait. Les quatre combinaisons de relations sont maintenant rendues
|
||||
avec des libellés humains, dont « Localisation non renseignée ».
|
||||
2. **UI-031** : la fiche demandait une propriété absente
|
||||
(`preventive_count`) ; elle existe maintenant sur `Equipment`. La requête
|
||||
de hiérarchie ignorait aussi la racine sans enfant ; elle la réinjecte
|
||||
avec sa localisation effective.
|
||||
3. **UI-012** : le menu contrôlait `audit.view` alors que `/logs/` exigeait
|
||||
`watchdog_dnd.view`. Le template et la garde utilisent désormais la même
|
||||
permission.
|
||||
|
||||
### Validation locale
|
||||
|
||||
- `test_ui_p1_regressions.py` : **10 passed**.
|
||||
- Suites ciblées P1/équipements/cleaning/interventions : **19 passed**.
|
||||
- `pytest` complet : **120 passed, 2 failed, 1 error**. Les échecs sont le
|
||||
test historique GMAO/lookback et un test stock dépendant de l'état du rôle
|
||||
admin après les tests RBAC ; le teardown du premier échoue également. Aucun
|
||||
test ciblant les trois correctifs ne se termine en échec.
|
||||
|
||||
### Revalidation VM requise
|
||||
|
||||
Après déploiement des commits `8c54f46`, `864f65d` et `f2783a0`, vérifier avec
|
||||
les données `TEST_UI_*` : `/interventions/`, `/`, `/equipments/1`,
|
||||
`/equipments/2`, `/equipments/1/hierarchy`, et la visibilité de `/logs/` pour
|
||||
un compte sans `watchdog_dnd.view`. Aucune migration Alembic n'est nécessaire.
|
||||
|
|
|
|||
Loading…
Reference in a new issue