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
|
renvoient HTTP 500. `/equipments/<id>/hierarchy` renvoie une liste de zones
|
||||||
vide. Les déplacements et cycles de vie restent donc bloqués. Anomalie
|
vide. Les déplacements et cycles de vie restent donc bloqués. Anomalie
|
||||||
documentée uniquement, sans correction pendant cette passe.
|
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 |
|
| Dashboard | `/` | 200 | Revalidé VM ; affiche « Aucun équipement » si la relation est absente |
|
||||||
| Alertes | `/alerts` | 200 | Accessible |
|
| Alertes | `/alerts` | 200 | Accessible |
|
||||||
| Messagerie | `/messagerie` | 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é |
|
| Nouvelle intervention | `/interventions/new` | 200 | Formulaire affiché |
|
||||||
| Planning | `/planning/` | 200 | Smoke test |
|
| Planning | `/planning/` | 200 | Smoke test |
|
||||||
| Horaires | `/planning/time` | 200 | Formulaire affiché |
|
| 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 |
|
| 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 |
|
| Formations | `/training/` | 200 | Smoke test |
|
||||||
| Équipements | `/equipments/` | 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 |
|
| Catégories | `/equipments/categories` | 200 | Accessible |
|
||||||
| Bâtiments | `/equipments/buildings/` | 200 | Confusion Site/Bâtiment |
|
| Bâtiments | `/equipments/buildings/` | 200 | Confusion Site/Bâtiment |
|
||||||
| Zones | `/equipments/zones/` | 200 | Accessible |
|
| 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é |
|
| Utilisateurs | `/admin/users` | 200 | RBAC vérifié |
|
||||||
| Permissions | `/admin/permissions` | 200 | RBAC vérifié |
|
| Permissions | `/admin/permissions` | 200 | RBAC vérifié |
|
||||||
| Status | `/status/` | 200 | Accessible |
|
| 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 interventions | `/exports/interventions` | 200 | Page d'export accessible |
|
||||||
| Export coûts CSV | `/exports/costs/csv` | 200 | Réponse courte ; téléchargement non sauvegardé |
|
| Export coûts CSV | `/exports/costs/csv` | 200 | Réponse courte ; téléchargement non sauvegardé |
|
||||||
| Logements | `/housing/` | 200 | Page accessible |
|
| 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
|
(la configuration de contexte GMAO est explicitement exclue) ; son teardown
|
||||||
échoue également sur une contrainte `gmao_context.user_id` nulle. Aucun échec
|
échoue également sur une contrainte `gmao_context.user_id` nulle. Aucun échec
|
||||||
des tests ciblés par les correctifs P1.
|
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
|
é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à
|
n'a été observée sur les pages parcourues, en dehors de UI-017 et UI-031 déjà
|
||||||
documentés.
|
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