8 KiB
8 KiB
Bugs et anomalies
UI-001 — Transvasement inaccessible
- Priorité : P1
- Module : Matériel & Produits d'entretien
- URL :
/cleaning/transvasement - Compte :
chatgpt/super_admin - Résultat : HTTP 500, écran générique.
- Attendu : formulaire utilisable ou message métier explicite si le stock est vide.
- Impact : dilution et transvasement impossibles.
UI-002 — Configuration des prévisions inaccessible
- Priorité : P1
- Module : Matériel & Produits d'entretien
- URL :
/cleaning/forecast-config - Compte :
chatgpt/super_admin - Résultat : HTTP 500.
- Attendu : coefficients par défaut affichés et modifiables.
- Impact : coefficients de permanence impossibles à configurer.
UI-003 — Création de salle bloquée
- Priorité : P1
- Module : Établissement
- URL :
/equipments/rooms/new - Résultat : le select « Bâtiment » est vide malgré des bâtiments visibles
dans
/equipments/buildings/. - Attendu : bâtiments proposés, puis zones filtrées par bâtiment.
- Impact : impossibilité de poursuivre les scénarios équipements/interventions.
UI-004 — Confusion Site/Bâtiment
- Priorité : P2
- URL :
/equipments/buildings/ - Résultat : le formulaire principal crée un
Site(Collège), tandis que le véritable bâtiment se crée via/equipments/buildings/new. - Recommandation : séparer les deux actions et afficher la hiérarchie établissement → bâtiment → zone → salle.
UI-005 — Commit Docker non identifié
- Priorité : P2
- URL :
/health/, setup - Résultat : version
0.1.0-dev.2, commitunknown. - Recommandation : fournir
GIT_VERSION=$(git rev-parse HEAD)au build.
UI-006 — Instabilité sous navigation séquentielle
- Priorité : P1 à confirmer
- Résultat : temps de réponse parfois supérieur à 8–30 secondes, puis indisponibilité temporaire.
- Recommandation : surveiller CPU/RAM, Gunicorn, connexions MariaDB et documenter les temps de réponse sans lancer de test de charge.
UI-007 — Disponibilités et horaires semblent partager le même écran
- Priorité : P2
- URL :
/planning/availability - Résultat : titre « Horaires et suivi annuel » et structure identique à
/planning/time. - Attendu : redirection explicite ou écran distinct avec un libellé cohérent.
- Impact : l'utilisateur peut croire qu'il existe deux écrans différents.
UI-008 — Requête 401 visible dans la console au chargement du login
- Priorité : P3 à confirmer
- Résultat : Playwright signale une ressource 401 sur
/auth/login. - Impact : bruit console et appel potentiellement lancé avant la session.
UI-009 — Soumission produit très lente/non confirmée
- Priorité : P1 à confirmer (environnementale ou applicative)
- URL :
/cleaning/products/new - Compte :
chatgpt/super_admin - Étapes : remplir un produit
TEST_UI_DETERGENT_SOLpuis soumettre une seule fois. - Résultat : l'action Playwright est restée bloquée plus de 30 secondes ; la requête n'a pas été répétée.
- Impact : impossible de confirmer la création d'un produit dans cette passe.
- Qualification : vérifier les logs et la charge VM avant de conclure à un bug applicatif.
UI-010 — Soumission prévention très lente/non confirmée
- Priorité : P1 à confirmer (environnementale ou applicative)
- URL :
/prevention/ - Compte :
chatgpt/super_admin - Étapes : remplir le formulaire d'agent prévention avec des données
TEST_UI_*, puis soumettre une seule fois. - Résultat : clic bloqué au-delà du délai ; aucune répétition.
- Impact : impossible de confirmer la création d'un personnel de prévention dans cette passe.
UI-011 — Lien Documents renvoie 404
- Priorité : P2
- URL :
/documents/ - Compte :
chatgpt/super_admin - Résultat : HTTP 404.
- Attendu : liste documentaire ou redirection vers le module documentaire réellement utilisé.
- Impact : lien cassé pour un utilisateur qui cherche les documents.
UI-012 — Menu non filtré selon les permissions
- Priorité : P1
- Comptes :
TEST_UI_USER_MULTIetTEST_UI_USER_NONE. - Résultat : les deux dashboards contiennent les mêmes liens équipements,
interventions et nettoyage, y compris pour
TEST_UI_USER_NONEsans rôle. - Backend :
TEST_UI_USER_NONEreçoit bien 403 sur ces URLs ; le backend est donc plus strict que le menu. - Résultat multi-rôles :
TEST_UI_USER_MULTIreçoit 200 sur patrimoine et interventions, puis 403 patrimoine après un refus individuel, tandis que les interventions restent accessibles. - Impact : UX trompeuse et risque d'erreurs ; un utilisateur voit des liens qu'il ne peut pas ouvrir.
UI-013 — Pagination absente ou non supportée sur plusieurs listes
- Priorité : P2
/lots/?page=2et/equipments/?page=2répondent 200./interventions/?page=2et/companies/?page=2répondent 404.- Attendu : pagination cohérente, ou absence explicite du paramètre avec une interface qui ne l'affiche pas.
- Impact : incohérence de navigation lorsque le volume de données augmente.
UI-014 — Entreprises sans recherche ni filtre visible
- Priorité : P2
- URL :
/companies/ - Résultat : aucune zone de recherche ou de tri dans la liste.
- Attendu : recherche par nom/contact lorsque le nombre d'entreprises croît.
UI-015 — Formulaire entreprise vide provoque une erreur 500
- Priorité : P1
- URL :
/companies/new - Étapes : soumettre le formulaire vide avec un CSRF valide.
- Résultat : HTTP 500 au lieu d'une validation utilisateur.
- Attendu : HTTP 400 ou retour formulaire avec champ obligatoire signalé.
UI-016 — Formulaire intervention vide provoque une erreur 500
- Priorité : P1
- URL :
/interventions/new - Étapes : soumettre le formulaire vide avec un CSRF valide.
- Résultat : HTTP 500.
- Attendu : validation des champs obligatoires et message compréhensible.
UI-017 — Liste interventions casse avec une intervention sans salle
- Priorité : P1
- URL :
/interventions/ - Donnée :
TEST_UI_INTERVENTION_ELECTRICITE(ID 1), créée sans salle ni équipement pour tester le cas autorisé par le formulaire. - Résultat : le détail
/interventions/1répond 200, mais la liste renvoie HTTP 500. - Attendu : afficher l'intervention avec « Salle non renseignée » ou demander une salle avant validation.
- Impact : une intervention valide au niveau formulaire rend la liste principale inutilisable.
UI-018 — Titre d'édition ambigu
- Priorité : P2
- URL :
/interventions/1/edit - Résultat : le titre HTML reste « Nouvelle intervention » en édition.
- Attendu : « Modifier l'intervention » avec identifiant/titre existant.
UI-019 — Tableau de bord en erreur avec une intervention sans équipement
- Priorité : P1
- URL :
/ - Utilisateur :
chatgpt(super-administrateur) - Précondition : l'intervention de test ID 1 existe sans équipement associé.
- Étapes : ouvrir une session puis demander
/. - Résultat : HTTP 500. Le journal indique
dashboard/index.html:495et l'expressioninterv.equipment.namealors queinterv.equipmentvautNone. - Attendu : le tableau de bord doit afficher une valeur de remplacement (« Aucun équipement ») ou exclure proprement la relation absente.
- Impact : erreur critique pour la page d'entrée et perte d'accès au tableau de bord dès qu'une intervention sans équipement est enregistrée.
UI-020 — Lien Journaux visible mais accès refusé
- Priorité : P2
- URL :
/logs/ - Utilisateur :
chatgpt(rôle personnaliséchatgpt) - Étapes : ouvrir une page autorisée contenant la navigation, puis suivre le
lien « Journaux » ; ouvrir également
/logs/directement. - Résultat : le lien
/logs/est présent dans le HTML de navigation, mais le serveur répond HTTP 403. Le compte possède les permissions d'audit visibles dans sa matrice, sans permission effective acceptée par cette route. - Attendu : masquer le lien si l'accès est refusé, ou attribuer/vérifier la permission réellement requise par la route.
- Impact : incohérence UI/backend et perte de temps pour l'utilisateur.