From 00eeb3d44162a8041e096a494899d8512c2387fe Mon Sep 17 00:00:00 2001 From: root Date: Sun, 23 Aug 2026 10:18:21 +0000 Subject: [PATCH] docs(planning): document phase 2 daily planning foundation --- docs/ui-audit/CREATED_TEST_DATA.md | 5 ++ docs/ui-audit/IMPLEMENTATION_PHASE2.md | 66 ++++++++++++++++++++++++++ docs/ui-audit/PAGES_MATRIX.md | 1 + docs/ui-audit/PROGRESS.md | 10 ++++ docs/ui-audit/REPORT.md | 11 +++++ docs/ui-audit/UX_PROPOSALS.md | 7 +++ 6 files changed, 100 insertions(+) create mode 100644 docs/ui-audit/IMPLEMENTATION_PHASE2.md diff --git a/docs/ui-audit/CREATED_TEST_DATA.md b/docs/ui-audit/CREATED_TEST_DATA.md index 41b581c..9bedc43 100644 --- a/docs/ui-audit/CREATED_TEST_DATA.md +++ b/docs/ui-audit/CREATED_TEST_DATA.md @@ -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 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. +## 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. diff --git a/docs/ui-audit/IMPLEMENTATION_PHASE2.md b/docs/ui-audit/IMPLEMENTATION_PHASE2.md new file mode 100644 index 0000000..346bb5f --- /dev/null +++ b/docs/ui-audit/IMPLEMENTATION_PHASE2.md @@ -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. diff --git a/docs/ui-audit/PAGES_MATRIX.md b/docs/ui-audit/PAGES_MATRIX.md index 51e8d46..746ad75 100644 --- a/docs/ui-audit/PAGES_MATRIX.md +++ b/docs/ui-audit/PAGES_MATRIX.md @@ -139,3 +139,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 | diff --git a/docs/ui-audit/PROGRESS.md b/docs/ui-audit/PROGRESS.md index 1698ff8..d41ef25 100644 --- a/docs/ui-audit/PROGRESS.md +++ b/docs/ui-audit/PROGRESS.md @@ -463,3 +463,13 @@ aux administrateurs. desktop historique complet et de ses conditions d'affichage. - Nouveau menu métier, RBAC et intégrations inchangés ; version conservée `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. diff --git a/docs/ui-audit/REPORT.md b/docs/ui-audit/REPORT.md index 71e1341..3bcc118 100644 --- a/docs/ui-audit/REPORT.md +++ b/docs/ui-audit/REPORT.md @@ -350,3 +350,14 @@ NOUVEAU MENU MODIFIÉ : NON RBAC MODIFIÉ : NON INTÉGRATIONS MODIFIÉES : NON 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. diff --git a/docs/ui-audit/UX_PROPOSALS.md b/docs/ui-audit/UX_PROPOSALS.md index 8cc0595..1683ae4 100644 --- a/docs/ui-audit/UX_PROPOSALS.md +++ b/docs/ui-audit/UX_PROPOSALS.md @@ -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, 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. +## 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.