latest rotas

This commit is contained in:
Ross
2025-07-07 17:49:21 +01:00
parent adccf8211c
commit cf48c3c168
2 changed files with 48 additions and 19 deletions
+34 -7
View File
@@ -29,7 +29,7 @@ def main(
time_to_run: int = 60 * 60,
ratio: float = 0.001,
start_date: datetime.datetime = "2025-09-01",
weeks: int = 12,
weeks: int = 22,
bom: int = 1,
):
rota_start_date = start_date.date()
@@ -53,7 +53,7 @@ def main(
name="oncall",
length=12.5,
days=days,
balance_offset=5,
balance_offset=2,
assign_as_block=False,
constraint=[
#{
@@ -84,8 +84,8 @@ def main(
days=days[5:],
balance_offset=2,
constraint=[
{"name": "pre", "options": 2},
{"name": "post", "options": 2},
{"name": "pre", "options": 1},
{"name": "post", "options": 1},
],
display_char="b",
),
@@ -137,13 +137,40 @@ def main(
w.add_hard_day_dependency("Fri", "Sat", "Sun")
else:
w.add_hard_day_dependency("Fri", "Sun")
## #w.add_hard_day_dependency("Sat", "Sun")
#w.set_max_shifts_per_week("weekend", 1)
# #w.add_hard_day_dependency("Sat", "Sun")
print(w)
Rota.add_worker(w)
for w in range(12, 21):
w13 = Worker(name=f"A13", site="rota a", grade=1, start_date="2025-10-01")
#w.prefer_multi_shift_together = 10
#w.allow_shifts_together("oncall", "twilight")
#w.allow_shifts_together("oncall", "weekend")
#w.add_hard_day_dependency("Fri", "Sat", "Sun")
w13.add_force_assign_with("twilight", "oncall")
w13.add_force_assign_with("weekend", "oncall")
#w.set_max_shifts_per_week("twilight", 1)
Rota.add_worker(w13)
w13 = Worker(name=f"A14", site="rota a", grade=1, start_date="2025-12-01")
#w.prefer_multi_shift_together = 10
#w.allow_shifts_together("oncall", "twilight")
#w.allow_shifts_together("oncall", "weekend")
#w.add_hard_day_dependency("Fri", "Sat", "Sun")
w13.add_force_assign_with("twilight", "oncall")
w13.add_force_assign_with("weekend", "oncall")
#w.set_max_shifts_per_week("twilight", 1)
Rota.add_worker(w13)
for w in range(14, 24):
w = Worker(
name=f"B{w}",
site="rota b",
@@ -155,7 +182,7 @@ def main(
],
)
#w.add_hard_day_exclusion("Sat", "Sun")
w.set_max_shifts_per_week("twilight", 1)
w.set_max_shifts_per_week("twilight", 2)
w.set_max_shifts_per_week("weekend b", 1)
print(w)