La garde tourne entre les techs d'un département, à la période choisie — indépendante par département. « Appliquer » génère les gardes de la semaine affichée (un tech absent est sauté au profit du suivant dans la rotation).
{{ r.dept }} · {{ shiftName(r.shift) }}
{{ gardeDowLabel(r) }} · change tous les {{ r.periodWeeks }} {{ (r.unit || 'occ') === 'week' ? 'sem.' : 'jour(s) de garde' }} · rotation : {{ r.techs.map(id => (techs.find(t => t.id === id) || {}).name || id).join(' → ') }}
Modifier (ordre, techs, période)
{{ editingGardeId ? 'Modifier la règle' : 'Nouvelle règle' }}
Occurrences consécutives avant de passer au tech suivant (1 = change à chaque {{ newGardeRule.unit === 'week' ? 'semaine' : 'jour de garde' }})
Plages (hors bureau) :
·
{{ dw.l }}
Combinables. La garde couvre les heures du shift choisi (hors bureau) ; pour des heures différentes semaine/week-end, crée 2 règles.
Séquence de rotation ({{ newGardeRule.techs.length }} positions — doublons permis pour des tours inégaux) :
{{ i + 1 }}.
Monter
Descendre
Retirer
Aperçu (qui est de garde, prochaines semaines) :
sem. {{ p.week.slice(8) }}/{{ p.week.slice(5, 7) }} → {{ p.name }}