docs(planning): document phase 2.1 validation

This commit is contained in:
root 2026-08-23 11:05:35 +00:00
parent a760a4df69
commit 30c17e760e
6 changed files with 106 additions and 0 deletions

View file

@ -149,3 +149,18 @@ de déplacement ; aucune donnée antérieure ni `alban` n'a été supprimée.
Aucune donnée `TEST_UI_PHASE2_*` n'a été créée pendant cette première tranche.
Les tests utilisent des objets en mémoire et ne nettoient ni ne suppriment les
données existantes de la copie VM.
## Phase 2.1 — Ma journée
- Compte `TEST_UI_PHASE21_TECH`, rôle `test_ui_phase21_planner` avec droits
planning, interventions, patrimoine et prévention.
- Site `TEST_UI_PHASE21_SITE`, bâtiments `TEST_UI_PHASE21_BAT_A` et
`TEST_UI_PHASE21_BAT_B`, zones et salles marquées `TEST_UI_PHASE21_*`.
- Occupations : salle 101 manuelle, salle 102 Pronote simulée, salle 201
manuelle protégée.
- Rendez-vous fixe, urgence, interventions, préventives et tâches
administratives portant les marqueurs `TEST_UI_PHASE21_*`.
- Horaires du compte : lundivendredi 08:0012:00 / 13:3017:00.
Le mot de passe du compte de test est local uniquement et n'est pas stocké
dans ce dépôt.

View file

@ -0,0 +1,66 @@
# Implémentation Phase 2.1 — validation métier de Ma journée
## Baseline
- Version avant : `0.1.0-dev.7`
- Commit de départ : `c5b298c`
- Docker local : image `gmao-college:0.1.0-dev.7`, MariaDB saine
- `/health/` : HTTP 200
- `/planning/my-day` : réponse 200 après connexion
- Ancien menu : inchangé, 76/76, administrateurs uniquement
## Données persistantes
Le scénario est conservé dans la copie locale de la base sous les marqueurs
`TEST_UI_PHASE21_*`. Le compte `TEST_UI_PHASE21_TECH` possède un rôle dédié
avec les permissions planning, intervention, patrimoine et prévention. Son mot
de passe est local uniquement et n'est pas écrit dans Git.
Créés :
- site `TEST_UI_PHASE21_SITE` ;
- bâtiments `TEST_UI_PHASE21_BAT_A` et `TEST_UI_PHASE21_BAT_B` ;
- zones et salles 101, 102, circulation, 201, 001, local technique et
sanitaires ;
- horaires utilisateur 08:0012:00 / 13:3017:00 du lundi au vendredi ;
- occupations internes : salle 101 manuelle 08:3009:30, salle 102 Pronote
simulée 08:3009:00, salle 201 manuelle protégée 14:0016:00 ;
- rendez-vous `TEST_UI_PHASE21_COMPANY_APPOINTMENT` fixe 09:3010:30 ;
- urgence `TEST_UI_PHASE21_EMERGENCY_FUITE` fixe 10:1511:00 ;
- interventions, cinq tâches préventives et tâches administratives ;
- journée contrainte du mardi pour vérifier le statut « À replanifier ».
Aucune donnée existante n'a été nettoyée globalement.
## Résultats
Le lundi 24/08/2026, le moteur place l'administratif, les interventions et les
maintenances dans les fenêtres de travail, sans utiliser la salle 101 pendant
son occupation manuelle ni la salle 102 pendant son créneau Pronote simulé.
Le rendez-vous entreprise reste fixe. L'urgence qui le chevauche est marquée
`conflit` et expliquée : rendez-vous fixe chevauché, décision humaine requise.
Le mardi 25/08/2026, deux blocs fixes occupent 08:0012:00 et 13:3016:30.
La tâche administrative de 45 minutes est conservée et marquée `À replanifier`,
sans être tronquée.
## Replanification minimale
`POST /planning/my-day/reschedule` permet de choisir un créneau proposé pour
une `ScheduledTask` ou une `Intervention`. Le serveur revalide l'identité, la
durée, les horaires, la pause, les conflits internes et la salle avant
d'écrire. Les tâches administratives ne sont pas encore persistées
individuellement car leur modèle est récurrent sans date d'occurrence.
## Tests et limites
- `tests/unit/test_day_planner.py` : **15 passed** ;
- navigation + replanification invalide : **5 passed** ;
- total ciblé Phase 2.1 : **20 passed** ;
- mesure locale : environ 2 secondes pour 10 candidats et plusieurs salles ;
- aucune validation visuelle réelle 390×844/768×1024, navigateur instrumenté
indisponible.
Restent à développer : résolution humaine plus complète des conflits,
replanification automatique après urgence, accompagnement multi-segments,
multi-techniciens, compétences et solveur.

View file

@ -140,3 +140,4 @@ activement.
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 |

View file

@ -473,3 +473,12 @@ aux administrateurs.
- Horaires configurés et pauses respectés ; sans horaires explicites, aucune
journée 08:0017:00 n'est inventée.
- 8 tests ciblés passants. Ancien menu inchangé, 76/76.
### Phase 2.1 — validation métier réelle (2026-08-23)
- Scénario persistant `TEST_UI_PHASE21_*` créé sur copie locale VM.
- Journées nominale du 24/08/2026 et contrainte du 25/08/2026 vérifiées.
- Occupations salle manuelle, Pronote simulée et protégée respectées.
- Rendez-vous entreprise fixe conservé ; conflit avec urgence rendu visible.
- Tâche administrative trop longue conservée en `À replanifier`.
- Replanification minimale ajoutée avec validation serveur.
- 20 tests ciblés passants ; version conservée `0.1.0-dev.7`.

View file

@ -361,3 +361,11 @@ appelés.
La proposition reste partielle pour les urgences avec replanification,
l'accompagnement multi-segments des entreprises et le multi-techniciens.
## Phase 2.1 — validation métier de Ma journée
La validation locale montre que le moteur ne perd pas de tâche, respecte la
pause et les horaires, utilise les occupations internes résolues et conserve
les rendez-vous fixes. Une urgence qui chevauche un rendez-vous fixe produit un
conflit explicite au lieu d'une suppression automatique. La replanification
minimale est disponible pour les interventions et tâches planifiées, avec
contrôles serveur.

View file

@ -1,5 +1,12 @@
# Propositions UX — phase finale
## UX appliquée — Phase 2.1
La timeline de `Ma journée` affiche un résumé compact des tâches, urgences,
conflits et éléments à replanifier. Les conflits de rendez-vous fixes sont
expliqués en langage métier et la replanification propose des créneaux sans
afficher de détails techniques.
Document de propositions, sans refonte implémentée. Les observations
proviennent de la navigation locale sur copie de la base VM et des contrôles
statiques des menus et formulaires. Les intégrations interdites (watchdogs,