diff --git a/apps/ops/src/pages/PlanificationPage.vue b/apps/ops/src/pages/PlanificationPage.vue index 3a7bee6..55026b8 100644 --- a/apps/ops/src/pages/PlanificationPage.vue +++ b/apps/ops/src/pages/PlanificationPage.vue @@ -21,12 +21,14 @@ Appliquer + Modèle par défaut (★) {{ tm.name }} + Appliquer le modèle par défaut (consciente des absences) Notifier les techs par SMS à la publication @@ -572,6 +574,10 @@ function saveTemplate () { }) } function deleteTemplate (i) { weekTemplates.value = weekTemplates.value.filter((_, j) => j !== i); localStorage.setItem(LS_TPL, JSON.stringify(weekTemplates.value)) } +// Modèle par défaut (★) — un seul à la fois, appliqué en 1 clic +const defaultTemplate = computed(() => weekTemplates.value.find(t => t.default) || null) +function setDefaultTemplate (i) { weekTemplates.value = weekTemplates.value.map((t, j) => ({ ...t, default: j === i ? !t.default : false })); localStorage.setItem(LS_TPL, JSON.stringify(weekTemplates.value)) } +function applyDefault () { const d = defaultTemplate.value; if (!d) { $q.notify({ type: 'info', message: 'Aucun modèle par défaut — marque-en un avec ★ dans Modèles' }); return } applyTemplate(d) } function countPatternDays (tm, techId) { let n = 0; for (const d of dayList.value) { const map = tm.byDow[dowOf(d.iso)]; if (map && map[techId]) n++ } return n } // Application « consciente des absences » : on n'assigne pas un tech absent ce jour-là. // Absent toute la semaine (≈ congé permanent: maternité/blessure) → flag « à remplacer ».