Répéter un créneau sur plusieurs jours
Le panneau créait un créneau, pour un jour. Or un même horaire se répète d'un jour à l'autre bien plus souvent qu'il ne varie : ressaisir cinq fois « 9 h–17 h, pause 30 » était le geste le plus répété de la semaine, et le plus exposé à la faute de frappe. Les sept jours sont désormais cochables. Le jour ouvert est coché et verrouillé — on ne crée pas ailleurs qu'ici depuis la case d'un jour donné — et voyage dans un champ caché, puisqu'une case désactivée n'est pas envoyée. La création est **tout ou rien**. Un jour refusé, pour période close ou chevauchement, annule les autres : une répétition à demi appliquée laisserait un planning que personne n'a voulu, et qu'il faudrait défaire à la main pour le refaire. Le contrôle de période porte donc sur tous les jours demandés avant la première écriture. Trois champs du modèle étaient inatteignables depuis l'écran : le nombre de repas, la note du créneau, et l'étiquette en modification. Cette dernière était un vrai défaut — une étiquette posée de travers se corrigeait en supprimant le créneau pour le refaire, ce qui perdait sa validation et son historique. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
804e14bf04
commit
aa7336d749
6 files changed
+236
-74
No files matched your search
@@ -18,7 +18,10 @@ export interface BoardShiftInput {
|
||||
startAt: Date;
|
||||
endAt: Date;
|
||||
breakMinutes: number;
|
||||
mealCount: number;
|
||||
poste: PosteCode;
|
||||
/** Étiquette telle qu'enregistrée, pour rouvrir le créneau sur la sienne. */
|
||||
labelId: string | null;
|
||||
isValidated: boolean;
|
||||
note: string | null;
|
||||
}
|
||||
@@ -30,6 +33,8 @@ export interface BoardShift {
|
||||
time: string;
|
||||
minutes: number;
|
||||
breakMinutes: number;
|
||||
mealCount: number;
|
||||
labelId: string | null;
|
||||
state: ShiftState;
|
||||
note: string | null;
|
||||
}
|
||||
@@ -139,6 +144,8 @@ export function buildRows(
|
||||
time: `${zonedClock(shift.startAt, timeZone)}–${zonedClock(shift.endAt, timeZone)}`,
|
||||
minutes,
|
||||
breakMinutes: shift.breakMinutes,
|
||||
mealCount: shift.mealCount,
|
||||
labelId: shift.labelId,
|
||||
state: shiftState(shift.isValidated, isPublished, shift.membershipId),
|
||||
note: shift.note,
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user