Files
proc-rota/leave.py
T
Ross 1d3801c69e .
2021-01-12 20:47:09 +00:00

56 lines
1.4 KiB
Python

import csv
def load_leave(Rota, file_name="leave.csv"):
shifts = Rota.get_shift_names()
with open(file_name, newline="") as f:
reader = csv.reader(f, delimiter=',', quotechar='|')
leave = {}
requests = {}
site_prefs = {}
order = []
n = 0
for row in reader:
r = row[2:]
# header, extract names
if n == 0:
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()
if pref == "1":
site_prefs[order[i]].append(pref)
else:
site_prefs[order[i]].append("0")
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))
else:
leave[order[i]].append((row[0], lower_item))
n = n + 1
return (leave, requests, site_prefs)
#load_leave()