This commit is contained in:
ross
2020-04-10 13:03:53 +01:00
parent d0ca2bfc97
commit 93aa4e6e6a
3 changed files with 2566 additions and 240 deletions
+6 -3
View File
@@ -1,10 +1,11 @@
import datetime
from collections import defaultdict
from shifts import SingleShift, ShiftCollection, days, sites
class Worker:
def __init__(self, Shifts, id, name, site, grade, fte=100, nwd=[], end_date=None, oop=None):
def __init__(self, Shifts, id, name, site, grade, fte=100, nwd=None, end_date=None, oop=None):
self.id = id
self.name = name
self.site = site
@@ -13,6 +14,8 @@ class Worker:
self.nwd = nwd
self.proportion_rota_to_work = 1
self.shift_target_number = defaultdict(int)
days_to_work = Shifts.rota_days_length
if end_date is None:
@@ -28,7 +31,7 @@ class Worker:
# add unavalabilities
for weeks_days in Shifts.weeks_days_product[days_to_work:]:
week, day = weeks_days
unavailable_to_work.add((self.id, week, day))
Shifts.unavailable_to_work.add((self.id, week, day))
if oop is not None:
start_oop, end_oop = oop
@@ -45,7 +48,7 @@ class Worker:
for weeks_days in Shifts.weeks_days_product[days_until_oop:days_until_oop+oop_length]:
week, day = weeks_days
unavailable_to_work.add((self.id, week, day))
Shifts.unavailable_to_work.add((self.id, week, day))
self.proportion_rota_to_work = days_to_work / Shifts.rota_days_length