2.9 KiB
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.