docs(planning): document phase 2 daily planning foundation
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
2fdefccfd3
commit
00eeb3d441
6 changed files with 100 additions and 0 deletions
|
|
@ -144,3 +144,8 @@ de déplacement ; aucune donnée antérieure ni `alban` n'a été supprimée.
|
||||||
- Créneau `TEST_UI_PLANNING_PROTECTED`, salle `TEST_UI_CLASSE_101`, semaine du
|
- Créneau `TEST_UI_PLANNING_PROTECTED`, salle `TEST_UI_CLASSE_101`, semaine du
|
||||||
07/09/2026, vendredi 14:00–16:00, réunion exceptionnelle manuelle avec
|
07/09/2026, vendredi 14:00–16:00, réunion exceptionnelle manuelle avec
|
||||||
protection contre les mises à jour Pronote. Donnée conservée pour inspection.
|
protection contre les mises à jour Pronote. Donnée conservée pour inspection.
|
||||||
|
## Phase 2
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
|
||||||
66
docs/ui-audit/IMPLEMENTATION_PHASE2.md
Normal file
66
docs/ui-audit/IMPLEMENTATION_PHASE2.md
Normal file
|
|
@ -0,0 +1,66 @@
|
||||||
|
# Implémentation Phase 2 — Ma journée
|
||||||
|
|
||||||
|
## Baseline
|
||||||
|
|
||||||
|
- Version avant : `0.1.0-dev.6`
|
||||||
|
- Commit de départ : `3c4ef00`
|
||||||
|
- Environnement : copie locale de la base VM, Docker local sur `127.0.0.1:5080`
|
||||||
|
- `/health/` : HTTP 200, MariaDB connectée
|
||||||
|
- Ancien menu : conservé, 76/76 entrées, administrateurs uniquement
|
||||||
|
- Intégrations externes : Pronote, ENT, Outlook, IA et watchdogs non requis
|
||||||
|
- Baseline pytest historique : `132 passed, 1 failed, 1 error`, échec/erreur
|
||||||
|
lookback GMAO hors périmètre
|
||||||
|
|
||||||
|
## Architecture retenue
|
||||||
|
|
||||||
|
La Phase 2 n'ajoute pas une quatrième table de tâches. Le service
|
||||||
|
`app_new/core/services/day_planner.py` expose une dataclass
|
||||||
|
`PlanningCandidate` et agrège les modèles existants : `ScheduledTask`,
|
||||||
|
`Intervention`, `AdminTask`, les salles et les horaires `WorkSchedule`.
|
||||||
|
Les propositions restent en mémoire : aucune modification silencieuse du
|
||||||
|
planning n'est effectuée.
|
||||||
|
|
||||||
|
Types couverts : maintenance préventive, intervention, administratif et
|
||||||
|
urgence. Un rendez-vous d'entreprise déjà représenté par une tâche fixe peut
|
||||||
|
être conservé ; le modèle multi-segments d'accompagnement reste hors de cette
|
||||||
|
tranche.
|
||||||
|
|
||||||
|
## Règles de proposition
|
||||||
|
|
||||||
|
- les horaires de travail et la pause sont des contraintes fortes ;
|
||||||
|
- sans horaire explicitement configuré pour le jour et l'utilisateur, la vue
|
||||||
|
affiche une alerte et ne fabrique pas de journée 08:00–17:00 ;
|
||||||
|
- les créneaux fixes sont conservés ;
|
||||||
|
- les urgences et échéances sont triées avant les tâches flexibles ;
|
||||||
|
- les salles sont vérifiées via le planning interne résolu, jamais via Pronote ;
|
||||||
|
- la recherche de créneau avance par pas déterministes de cinq minutes ;
|
||||||
|
- une tâche impossible est marquée « À replanifier » avec une explication ;
|
||||||
|
- chaque choix expose une raison courte à l'utilisateur.
|
||||||
|
|
||||||
|
## Interface
|
||||||
|
|
||||||
|
`/planning/my-day` est accessible depuis `Mon travail > Ma journée` et depuis
|
||||||
|
le tableau de bord. La vue propose la date précédente, aujourd'hui et la date
|
||||||
|
suivante, puis une timeline de cartes indiquant heure, durée, lieu, type,
|
||||||
|
contrainte, statut et explication. Les actions d'application automatique ne
|
||||||
|
sont pas présentes dans cette première tranche : l'utilisateur garde le
|
||||||
|
contrôle.
|
||||||
|
|
||||||
|
## Tests ajoutés
|
||||||
|
|
||||||
|
`tests/unit/test_day_planner.py` couvre la pause, le déterminisme, les horaires
|
||||||
|
fixes, l'impossibilité d'une tâche trop longue et l'absence d'horaires.
|
||||||
|
|
||||||
|
## Limites Phase 2 restantes
|
||||||
|
|
||||||
|
- pas encore de validation/applicaton en masse d'une proposition ;
|
||||||
|
- pas de workflow de replanification automatique d'une urgence ;
|
||||||
|
- pas de modèle dédié pour plusieurs segments d'entreprise extérieure ;
|
||||||
|
- pas de multi-techniciens, compétences ou solveur ;
|
||||||
|
- contrôles visuels réels à compléter avec navigateur instrumenté.
|
||||||
|
|
||||||
|
## Données TEST_UI
|
||||||
|
|
||||||
|
Aucune donnée existante n'a été supprimée ou nettoyée. Les scénarios avec
|
||||||
|
données `TEST_UI_PHASE2_*` seront ajoutés uniquement lorsque les tests
|
||||||
|
d'intégration de la vue quotidienne seront finalisés.
|
||||||
|
|
@ -139,3 +139,4 @@ activement.
|
||||||
|
|
||||||
Le contrôle visuel réel aux trois tailles reste à effectuer lorsqu'un
|
Le contrôle visuel réel aux trois tailles reste à effectuer lorsqu'un
|
||||||
navigateur instrumenté sera disponible.
|
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 |
|
||||||
|
|
|
||||||
|
|
@ -463,3 +463,13 @@ aux administrateurs.
|
||||||
desktop historique complet et de ses conditions d'affichage.
|
desktop historique complet et de ses conditions d'affichage.
|
||||||
- Nouveau menu métier, RBAC et intégrations inchangés ; version conservée
|
- Nouveau menu métier, RBAC et intégrations inchangés ; version conservée
|
||||||
`0.1.0-dev.6`.
|
`0.1.0-dev.6`.
|
||||||
|
### Phase 2 — Ma journée (2026-08-23)
|
||||||
|
|
||||||
|
- Version de développement portée de `0.1.0-dev.6` à `0.1.0-dev.7`.
|
||||||
|
- Ajout du service déterministe `DayPlanner` et de `PlanningCandidate`, sans
|
||||||
|
nouvelle table ni dépendance externe.
|
||||||
|
- Ajout de `/planning/my-day`, du lien `Mon travail > Ma journée` et d'un
|
||||||
|
accès depuis le tableau de bord.
|
||||||
|
- Horaires configurés et pauses respectés ; sans horaires explicites, aucune
|
||||||
|
journée 08:00–17:00 n'est inventée.
|
||||||
|
- 8 tests ciblés passants. Ancien menu inchangé, 76/76.
|
||||||
|
|
|
||||||
|
|
@ -350,3 +350,14 @@ NOUVEAU MENU MODIFIÉ : NON
|
||||||
RBAC MODIFIÉ : NON
|
RBAC MODIFIÉ : NON
|
||||||
INTÉGRATIONS MODIFIÉES : NON
|
INTÉGRATIONS MODIFIÉES : NON
|
||||||
VERSION : 0.1.0-dev.6
|
VERSION : 0.1.0-dev.6
|
||||||
|
## Phase 2 — première tranche implémentée
|
||||||
|
|
||||||
|
La vue `Ma journée` propose chronologiquement les tâches `ScheduledTask`,
|
||||||
|
`Intervention` et `AdminTask` accessibles à l'utilisateur. Les choix sont
|
||||||
|
déterministes, non persistés et expliqués. Les horaires de travail et les
|
||||||
|
pauses sont des contraintes fortes ; les salles sont vérifiées via le
|
||||||
|
planning interne résolu. Pronote, ENT, Outlook, IA et watchdogs ne sont pas
|
||||||
|
appelés.
|
||||||
|
|
||||||
|
La proposition reste partielle pour les urgences avec replanification,
|
||||||
|
l'accompagnement multi-segments des entreprises et le multi-techniciens.
|
||||||
|
|
|
||||||
|
|
@ -356,3 +356,10 @@ Les changements simples et réversibles suivants ont été appliqués :
|
||||||
Les évolutions nécessitant un choix métier (checklist d'onboarding,
|
Les évolutions nécessitant un choix métier (checklist d'onboarding,
|
||||||
refonte complète du tableau de bord, nouvelle taxonomie RBAC et optimisation
|
refonte complète du tableau de bord, nouvelle taxonomie RBAC et optimisation
|
||||||
de la journée) restent des propositions et ne sont pas implémentées.
|
de la journée) restent des propositions et ne sont pas implémentées.
|
||||||
|
## UX appliquée — Phase 2
|
||||||
|
|
||||||
|
La première tranche ajoute `Ma journée` dans `Mon travail` et sur le tableau
|
||||||
|
de bord. La timeline affiche heure, durée, localisation, type, contrainte,
|
||||||
|
statut et une explication en français. Une alerte indique explicitement quand
|
||||||
|
les horaires du technicien ne sont pas configurés ; aucune plage par défaut
|
||||||
|
n'est inventée.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue