From 48edede7931a243ff82db849ea572db20761540f Mon Sep 17 00:00:00 2001 From: louispaulb Date: Tue, 14 Jul 2026 20:56:34 -0400 Subject: [PATCH] =?UTF-8?q?refactor(planif):=20d=C3=A9sencombrer=20l'en-t?= =?UTF-8?q?=C3=AAte=20selon=20UX=5FREFACTORING=5FPROMPT=20(PL1/PL2/PL4/PL5?= =?UTF-8?q?/PL6)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - PL5 : sous-menu « Modèles de semaine » (menu-dans-menu) → dialogue dédié components/planif/WeekTemplatesDialog.vue (props données / emits save·apply· set-default·delete ; état + mutations restent dans la page, EmptyState réutilisé) - PL2 : menu Outils 13 items + sous-menu → 11 items à plat ; retrait des 2 entrées redondantes avec la barre (« À assigner », vue Mois) - PL1/PL4 : barre allégée — bouton ★ modèle par défaut déplacé dans le ⋮ (groupé) + ⌘K (planif-templates, planif-apply-default) ; HelpHint « Suggérer » retiré (l'explication vit déjà dans le bandeau du dialogue) - PL6 : champ orphelin « Max h/sem » supprimé (ref jamais consommée = code mort) - docs : statuts PL1/PL2/PL4/PL5/PL6 mis à jour dans UX_REFACTORING_PROMPT.md Vérifié : build SPA OK · aperçu 9001 — Outils/⋮/dialogue exercés, chaîne emit save → prompt parent OK, grille Semaine + Tournées intactes, 0 nouvelle erreur console (les « Anchor: target null » préexistent au baseline). Co-Authored-By: Claude Fable 5 --- .../components/planif/WeekTemplatesDialog.vue | 49 +++++++++++++++ apps/ops/src/pages/PlanificationPage.vue | 63 +++++++++---------- docs/UX_REFACTORING_PROMPT.md | 10 +-- 3 files changed, 85 insertions(+), 37 deletions(-) create mode 100644 apps/ops/src/components/planif/WeekTemplatesDialog.vue diff --git a/apps/ops/src/components/planif/WeekTemplatesDialog.vue b/apps/ops/src/components/planif/WeekTemplatesDialog.vue new file mode 100644 index 0000000..965be1c --- /dev/null +++ b/apps/ops/src/components/planif/WeekTemplatesDialog.vue @@ -0,0 +1,49 @@ + + + diff --git a/apps/ops/src/pages/PlanificationPage.vue b/apps/ops/src/pages/PlanificationPage.vue index 454cdc6..0415631 100644 --- a/apps/ops/src/pages/PlanificationPage.vue +++ b/apps/ops/src/pages/PlanificationPage.vue @@ -78,22 +78,9 @@ Équipe — compétences · cadence · coûtCompétences (score + cadence/skill) · coût · catalogue Durées par caractéristique - + - Modèles de semaine - - - - Enregistrer la semaine… - - Appliquer - - Modèle par défaut (★) - {{ tm.name }} - - - - + Modèles de semaine{{ weekTemplates.length ? weekTemplates.length + ' modèle(s)' + (defaultTemplate ? ' · défaut : ' + defaultTemplate.name : '') : 'enregistrer / appliquer un patron' }} Rotation de garde @@ -104,9 +91,8 @@ Congés / absences Synchroniser les techniciens - + 👁  Affichage - Jobs à assigner (glisser-déposer) Jobs prévus en en-têteliste par jour — glisser sur un tech @@ -117,16 +103,11 @@ Jobs Legacy sur les timelinesdurées estimées des jobs osTicket datés (fenêtre affichée) - - - Besoins & couverture (vue Mois)heures requises par compétence · alertes de couverture - - Appliquer le modèle par défaut (consciente des absences) + Répartition automatique des jobs du jour sélectionné (distance · compétence · priorité · taux d'occupation) — revue avant d'appliquer - Propose une assignation optimisée des jobs du jour sélectionné aux techniciens, en combinant compétence requise, disponibilité, distance (routes réelles) et taux d'occupation. Les cas simples vont d'abord aux techs les moins polyvalents (réserve les experts). Rien n'est appliqué avant votre validation. @@ -145,18 +126,24 @@ - - guard(loadWeek) }, + ] }, + { label: 'Modèles de semaine', items: [ + { icon: 'star', label: 'Appliquer le modèle par défaut', caption: defaultTemplate ? defaultTemplate.name : 'aucun — marquer ★ dans Modèles', color: 'amber-8', disabled: !defaultTemplate, action: applyDefault }, + { icon: 'bookmark', label: 'Gérer les modèles…', action: () => { showWeekTemplates = true } }, + ] }, ]" />
- {{ visibleTechs.length }} / {{ techs.length }} techs {{ cellClipboard.length }} copié(s) @@ -568,6 +555,9 @@ + + + @@ -1247,7 +1237,7 @@