Add support for avoiding shifts on specific dates with reasons

This commit is contained in:
Ross
2026-01-05 22:07:23 +00:00
parent e6bdd4a09e
commit d66ddf29ad
5 changed files with 200 additions and 6 deletions
+2
View File
@@ -117,6 +117,7 @@ class AvoidShiftOnDates(BaseModel):
start_date: Optional[datetime.date] = None
end_date: Optional[datetime.date] = None
dates: Optional[list[datetime.date]] = None
reason: Optional[str] = None
@field_validator("start_date", "end_date", mode="before")
def coerce_dates(cls, v):
@@ -428,6 +429,7 @@ class Worker(BaseModel):
"start_date": av.start_date,
"end_date": av.end_date,
"dates": av.dates,
"reason": getattr(av, "reason", None),
}
# append to rota-level list; the model builder will enforce these
if hasattr(Rota.constraint_options_model, "avoid_shifts_by_worker_dates"):