This commit is contained in:
Ross
2021-06-07 23:23:12 +01:00
parent 2847e1c987
commit 5c54257065
6 changed files with 717 additions and 561 deletions
+49 -18
View File
@@ -4,6 +4,8 @@ import csv
def load_leave(Rota, file_name="leave.csv"):
shifts = Rota.get_shift_names()
workers = {}
with open(file_name, newline="") as f:
reader = csv.reader(f, delimiter=',', quotechar='|')
@@ -16,41 +18,70 @@ def load_leave(Rota, file_name="leave.csv"):
n = 0
for row in reader:
row_title = row[0]
r = row[2:]
# header, extract names
if n == 0:
if n == 1:
names = r
order = names
for name in names:
leave[name] = []
requests[name] = []
site_prefs[name] = []
# preferred site
if n == 6:
for i in range(len(r)):
pref = r[i].lower()
workers[name] = {}
workers[name]["leave"] = []
workers[name]["requests"] = []
workers[name]["site_pref"] = []
if pref == "1":
site_prefs[order[i]].append(pref)
else:
site_prefs[order[i]].append("0")
for i in range(len(r)):
try:
a = order[i]
except IndexError:
continue
lower_item = r[i].lower()
if lower_item == "derriford":
lower_item = "plymouth"
if row_title == "PROC site":
workers[order[i]]["site_pref"] = lower_item
if row_title == "Rotation":
workers[order[i]]["site"] = lower_item
elif row_title == "Grade":
workers[order[i]]["grade"] = lower_item
elif row_title == "%FTE":
workers[order[i]]["fte"] = lower_item
elif row_title == "NWD":
workers[order[i]]["nwd"] = lower_item
elif row_title == "Flexible NWD":
workers[order[i]]["flexible_nwd"] = lower_item
elif row_title == "End Date":
workers[order[i]]["end_date"] = lower_item
elif row_title == "OOP":
workers[order[i]]["oop"] = lower_item
elif row_title == "Group":
workers[order[i]]["group"] = lower_item
elif n > 11:
if n > 7:
for i in range(len(r)):
lower_item = r[i].lower()
if lower_item != "":
# This may be easier to do as a dict
if lower_item in shifts:
requests[order[i]].append((row[0], lower_item))
workers[order[i]]["requests"].append((row[0], lower_item))
else:
leave[order[i]].append((row[0], lower_item))
workers[order[i]]["leave"].append((row[0], lower_item))
n = n + 1
return (leave, requests, site_prefs)
return workers
#load_leave()