Added statistics for districts, updated some of the non-first aid roles
This commit is contained in:
parent
57af847546
commit
3d1c95b2e2
@ -4,7 +4,7 @@
|
||||
#Licence: GPL-3.0-or-later
|
||||
#Written by Stuart Griffiths, stuart.griffiths@birminghamscouts.org.uk
|
||||
#Started 19/05/2022
|
||||
#Version:0.3
|
||||
#Version:0.4
|
||||
#Released: 31/05/2022
|
||||
#Status: Working - outputs to 2 seperate CSV files
|
||||
#Inputs: CSV
|
||||
@ -90,6 +90,55 @@ def training_report():
|
||||
safety_due_list = []
|
||||
safeguarding_due_list = []
|
||||
firstaid_due_list = []
|
||||
#create lists for counting purposes county
|
||||
county_safety_missing_list = []
|
||||
county_safeguarding_missing_list = []
|
||||
county_firstaid_missing_list = []
|
||||
county_safety_due_list = []
|
||||
county_safeguarding_due_list = []
|
||||
county_firstaid_due_list = []
|
||||
#create lists for counting purposes CVS
|
||||
CVS_safety_missing_list = []
|
||||
CVS_safeguarding_missing_list = []
|
||||
CVS_firstaid_missing_list = []
|
||||
CVS_safety_due_list = []
|
||||
CVS_safeguarding_due_list = []
|
||||
CVS_firstaid_due_list = []
|
||||
#create lists for counting purposes rea
|
||||
rea_safety_missing_list = []
|
||||
rea_safeguarding_missing_list = []
|
||||
rea_firstaid_missing_list = []
|
||||
rea_safety_due_list = []
|
||||
rea_safeguarding_due_list = []
|
||||
rea_firstaid_due_list = []
|
||||
#create lists for counting purposes SCE
|
||||
SCE_safety_missing_list = []
|
||||
SCE_safeguarding_missing_list = []
|
||||
SCE_firstaid_missing_list = []
|
||||
SCE_safety_due_list = []
|
||||
SCE_safeguarding_due_list = []
|
||||
SCE_firstaid_due_list = []
|
||||
#create lists for counting purposes SCW
|
||||
SCW_safety_missing_list = []
|
||||
SCW_safeguarding_missing_list = []
|
||||
SCW_firstaid_missing_list = []
|
||||
SCW_safety_due_list = []
|
||||
SCW_safeguarding_due_list = []
|
||||
SCW_firstaid_due_list = []
|
||||
#create lists for counting purposes spitfire
|
||||
spitfire_safety_missing_list = []
|
||||
spitfire_safeguarding_missing_list = []
|
||||
spitfire_firstaid_missing_list = []
|
||||
spitfire_safety_due_list = []
|
||||
spitfire_safeguarding_due_list = []
|
||||
spitfire_firstaid_due_list = []
|
||||
#create lists for counting purposes tame
|
||||
tame_safety_missing_list = []
|
||||
tame_safeguarding_missing_list = []
|
||||
tame_firstaid_missing_list = []
|
||||
tame_safety_due_list = []
|
||||
tame_safeguarding_due_list = []
|
||||
tame_firstaid_due_list = []
|
||||
#to avoid errors
|
||||
safety_status = False
|
||||
safeguarding_status = False
|
||||
@ -125,10 +174,16 @@ def training_report():
|
||||
if role not in role_list:
|
||||
role_training = True
|
||||
#Of course some roles do need safety and safeguarding but not first aid....
|
||||
role_list_first_aid = ['County Treasurer', 'District Treasurer', 'Group Treasurer', 'Section Assistant', 'Group Section Assistant', 'District Section Assistant', 'County Section Assistant', 'County Secretary', 'District Secretary', 'Group Secretary', 'County Treasurer', 'District Treasurer', 'Group Treasurer', 'County Executive Committee Member', 'District Executive Committee Member', 'Group Executive Committee Member', 'Group Executive Committee Member - Elected Member', 'County Appointments Advisory Committee Member', 'District Appointments Advisory Committee Member', 'District Skills Instructor', 'County Skills Instructor', 'Group Skills Instructor', 'County Administrator', 'District Administrator', 'Group Administrator', 'County Badge Secretary', 'District Badge Secretary', 'Group Badge Secretary', 'Scout Active Support Member', 'District Training Administrator', 'County Training Administrator', 'County Chaplain', 'District Chaplain' 'Section Assistant - Squirrel Scouts', 'Section Assistant - Beaver Scouts', 'Section Assistant - Cub Scouts', 'Section Assistant - Scouts', 'District Section Assistant - Explorer Scouts', 'Assistant Section Leader', 'Assistant Section Leader - Beaver Scouts', 'Assistant Section Leader - Cub Scouts', 'Assistant Section Leader - Scouts', 'County Scout Active Support Co-ordinator', 'County Scout Active Support Member', 'District Scout Active Support Member', 'Group Scout Active Support Member', 'County Training Adviser', 'County Scout Active Support Manager', 'District Scout Active Support Manager' ]
|
||||
role_list_first_aid = ['County Treasurer', 'District Treasurer', 'Group Treasurer', 'Section Assistant', 'Group Section Assistant', 'District Section Assistant', 'County Section Assistant', 'County Secretary', 'District Secretary', 'Group Secretary', 'County Treasurer', 'District Treasurer', 'Group Treasurer', 'County Executive Committee Member', 'District Executive Committee Member', 'Group Executive Committee Member', 'Group Executive Committee Member - Elected Member', 'County Appointments Advisory Committee Member', 'District Appointments Advisory Committee Member', 'District Skills Instructor', 'County Skills Instructor', 'Group Skills Instructor', 'County Administrator', 'District Administrator', 'Group Administrator', 'County Badge Secretary', 'District Badge Secretary', 'Group Badge Secretary', 'Scout Active Support Member', 'District Training Administrator', 'County Training Administrator', 'County Chaplain', 'District Chaplain' 'Section Assistant - Squirrel Scouts', 'Section Assistant - Beaver Scouts', 'Section Assistant - Cub Scouts', 'Section Assistant - Scouts', 'District Section Assistant - Explorer Scouts', 'County Scout Active Support Co-ordinator', 'County Scout Active Support Member', 'District Scout Active Support Member', 'Group Scout Active Support Member', 'County Training Adviser', 'County Scout Active Support Manager', 'District Scout Active Support Manager', 'District Training Adviser', 'District Training Adviser - Managers and Supporters', 'Section Assistant - Squirrel Scouts', 'Group Executive Committee Member - Ex-Officio Member', 'Scout Active Support Co-ordinator', 'Group Section Assistant - Beaver Scouts', 'Group Section Assistant - Cub Scouts', 'Group Section Assistant - Scouts', 'Group Executive Committee Member - Ex-Officio Member', 'Section Assistant - Cub Scouts, Beaver Scouts', 'Section Assistant - Group', 'Group Section Assistant - Cub Scouts', 'Group Section Assistant - Scouts', 'Group Section Assistant - Beaver Scouts', 'Group Executive Committee Member - Nominated Member', 'District Chaplain', 'District Appointments Chair', 'District Executive Committee Member - Ex-Officio Member', 'Group Supporter - Quartermaster', 'District Scouter', 'Group Deputy Chair', 'Group Chaplain', 'District Appointments Advisery Committee Member', ]
|
||||
if role not in role_list_first_aid:
|
||||
firstaid_required = True
|
||||
#3.3 late to complete testing
|
||||
#Is the role new and so we don't need to add to missing list yet?
|
||||
role_start = datetime.datetime.strptime(input_data[line_num][9], "%d/%m/%Y")
|
||||
role_start_period = role_start + relativedelta(months=+5)
|
||||
#need to flag if in role start period
|
||||
if today < role_start_period:
|
||||
newbie = True
|
||||
#3.3.1 safety
|
||||
#Read the column
|
||||
safety = input_data[line_num][36]
|
||||
@ -136,7 +191,7 @@ def training_report():
|
||||
#print(input_data[line_num][37])
|
||||
#Check is it late?
|
||||
#If date is blank, add to list using membership no, known_name, surname, email, telephone, member_role, manager, group, district, safety due, safeguarding due, first aid due
|
||||
if safety == "" and role_training == True:
|
||||
if safety == "" and role_training == True and newbie == False:
|
||||
safety_status = True #marker that safety is late
|
||||
member_number = input_data[line_num][0]
|
||||
#check whether membership number is in the index and add it if not
|
||||
@ -146,7 +201,24 @@ def training_report():
|
||||
except:
|
||||
#this executes if the membership number is not in the list
|
||||
safety_missing_list.append(member_number)
|
||||
if input_data[line_num][37] != "" and role_training == True:
|
||||
#Get county and district stats
|
||||
district_name = input_data[line_num][19]
|
||||
if district_name == '':
|
||||
county_safety_missing_list.append(member_number)
|
||||
if district_name == 'Cole Valley South':
|
||||
CVS_safety_missing_list.append(member_number)
|
||||
if district_name == 'Rea Valley':
|
||||
rea_safety_missing_list.append(member_number)
|
||||
if district_name == 'Birmingham Spitfire District Scout Association':
|
||||
spitfire_safety_missing_list.append(member_number)
|
||||
if district_name == 'Sutton Coldfield East':
|
||||
SCE_safety_missing_list.append(member_number)
|
||||
if district_name == 'Sutton Coldfield West':
|
||||
SCW_safety_missing_list.append(member_number)
|
||||
if district_name == 'Tame Valley Birmingham':
|
||||
tame_safety_missing_list.append(member_number)
|
||||
|
||||
if input_data[line_num][37] != "" and role_training == True and newbie == False:
|
||||
#Convert string to date object, has to be done here for the blanks!
|
||||
safety = datetime.datetime.strptime(input_data[line_num][37], "%d/%m/%Y")
|
||||
#Check is it late?
|
||||
@ -161,13 +233,28 @@ def training_report():
|
||||
except:
|
||||
#this executes if the membership number is not in the list
|
||||
safety_missing_list.append(member_number)
|
||||
|
||||
#Get county and district stats
|
||||
district_name = input_data[line_num][19]
|
||||
if district_name == '':
|
||||
county_safety_missing_list.append(member_number)
|
||||
if district_name == 'Cole Valley South':
|
||||
CVS_safety_missing_list.append(member_number)
|
||||
if district_name == 'Rea Valley':
|
||||
rea_safety_missing_list.append(member_number)
|
||||
if district_name == 'Birmingham Spitfire District Scout Association':
|
||||
spitfire_safety_missing_list.append(member_number)
|
||||
if district_name == 'Sutton Coldfield East':
|
||||
SCE_safety_missing_list.append(member_number)
|
||||
if district_name == 'Sutton Coldfield West':
|
||||
SCW_safety_missing_list.append(member_number)
|
||||
if district_name == 'Tame Valley Birmingham':
|
||||
tame_safety_missing_list.append(member_number)
|
||||
#3.3.2 Safeguarding
|
||||
#Read the column
|
||||
safeguarding = input_data[line_num][38]
|
||||
#Check is it late?
|
||||
#If date is less than today when program is ran, add to list using membership no, known_name, surname, email, telephone, member_role, manager, group, district, safety due, safeguarding due, first aid due
|
||||
if safeguarding == "" and role_training == True:
|
||||
if safeguarding == "" and role_training == True and newbie == False:
|
||||
safeguarding_status = True
|
||||
member_number = input_data[line_num][0]
|
||||
#check whether membership number is in the index and add it if not
|
||||
@ -177,7 +264,23 @@ def training_report():
|
||||
except:
|
||||
#this executes if the membership number is not in the list
|
||||
safeguarding_missing_list.append(member_number)
|
||||
if input_data[line_num][39] != "" and role_training == True:
|
||||
#Get county and district stats
|
||||
district_name = input_data[line_num][19]
|
||||
if district_name == '':
|
||||
county_safeguarding_missing_list.append(member_number)
|
||||
if district_name == 'Cole Valley South':
|
||||
CVS_safeguarding_missing_list.append(member_number)
|
||||
if district_name == 'Rea Valley':
|
||||
rea_safeguarding_missing_list.append(member_number)
|
||||
if district_name == 'Birmingham Spitfire District Scout Association':
|
||||
spitfire_safeguarding_missing_list.append(member_number)
|
||||
if district_name == 'Sutton Coldfield East':
|
||||
SCE_safeguarding_missing_list.append(member_number)
|
||||
if district_name == 'Sutton Coldfield West':
|
||||
SCW_safeguarding_missing_list.append(member_number)
|
||||
if district_name == 'Tame Valley Birmingham':
|
||||
tame_safeguarding_missing_list.append(member_number)
|
||||
if input_data[line_num][39] != "" and role_training == True and newbie == False:
|
||||
#Convert string to date object, has to be done here for the blanks!
|
||||
safeguarding = datetime.datetime.strptime(input_data[line_num][39], "%d/%m/%Y")
|
||||
#Check is it late?
|
||||
@ -192,6 +295,22 @@ def training_report():
|
||||
except:
|
||||
#this executes if the membership number is not in the list
|
||||
safeguarding_missing_list.append(member_number)
|
||||
#Get county and district stats
|
||||
district_name = input_data[line_num][19]
|
||||
if district_name == '':
|
||||
county_safeguarding_missing_list.append(member_number)
|
||||
if district_name == 'Cole Valley South':
|
||||
CVS_safeguarding_missing_list.append(member_number)
|
||||
if district_name == 'Rea Valley':
|
||||
rea_safeguarding_missing_list.append(member_number)
|
||||
if district_name == 'Birmingham Spitfire District Scout Association':
|
||||
spitfire_safeguarding_missing_list.append(member_number)
|
||||
if district_name == 'Sutton Coldfield East':
|
||||
SCE_safeguarding_missing_list.append(member_number)
|
||||
if district_name == 'Sutton Coldfield West':
|
||||
SCW_safeguarding_missing_list.append(member_number)
|
||||
if district_name == 'Tame Valley Birmingham':
|
||||
tame_safeguarding_missing_list.append(member_number)
|
||||
|
||||
#3.3.3 First Aid
|
||||
#Read the column
|
||||
@ -208,6 +327,22 @@ def training_report():
|
||||
except:
|
||||
#this executes if the membership number is not in the list
|
||||
firstaid_missing_list.append(member_number)
|
||||
#Get county and district stats
|
||||
district_name = input_data[line_num][19]
|
||||
if district_name == '':
|
||||
county_firstaid_missing_list.append(member_number)
|
||||
if district_name == 'Cole Valley South':
|
||||
CVS_firstaid_missing_list.append(member_number)
|
||||
if district_name == 'Rea Valley':
|
||||
rea_firstaid_missing_list.append(member_number)
|
||||
if district_name == 'Birmingham Spitfire District Scout Association':
|
||||
spitfire_firstaid_missing_list.append(member_number)
|
||||
if district_name == 'Sutton Coldfield East':
|
||||
SCE_firstaid_missing_list.append(member_number)
|
||||
if district_name == 'Sutton Coldfield West':
|
||||
SCW_firstaid_missing_list.append(member_number)
|
||||
if district_name == 'Tame Valley Birmingham':
|
||||
tame_firstaid_missing_list.append(member_number)
|
||||
if input_data[line_num][41] != "" and role_training == True and firstaid_required == True:
|
||||
#Convert string to date object, has to be done here for the blanks!
|
||||
firstaid = datetime.datetime.strptime(input_data[line_num][41], "%d/%m/%Y")
|
||||
@ -223,6 +358,22 @@ def training_report():
|
||||
except:
|
||||
#this executes if the membership number is not in the list
|
||||
firstaid_missing_list.append(member_number)
|
||||
#Get county and district stats
|
||||
district_name = input_data[line_num][19]
|
||||
if district_name == '':
|
||||
county_firstaid_missing_list.append(member_number)
|
||||
if district_name == 'Cole Valley South':
|
||||
CVS_firstaid_missing_list.append(member_number)
|
||||
if district_name == 'Rea Valley':
|
||||
rea_firstaid_missing_list.append(member_number)
|
||||
if district_name == 'Birmingham Spitfire District Scout Association':
|
||||
spitfire_firstaid_missing_list.append(member_number)
|
||||
if district_name == 'Sutton Coldfield East':
|
||||
SCE_firstaid_missing_list.append(member_number)
|
||||
if district_name == 'Sutton Coldfield West':
|
||||
SCW_firstaid_missing_list.append(member_number)
|
||||
if district_name == 'Tame Valley Birmingham':
|
||||
tame_firstaid_missing_list.append(member_number)
|
||||
|
||||
#3.4 Due training
|
||||
#3.4.1 Safety
|
||||
@ -240,6 +391,22 @@ def training_report():
|
||||
except:
|
||||
#this executes if the membership number is not in the list
|
||||
safety_due_list.append(member_number)
|
||||
#Get county and district stats
|
||||
district_name = input_data[line_num][19]
|
||||
if district_name == '':
|
||||
county_safety_due_list.append(member_number)
|
||||
if district_name == 'Cole Valley South':
|
||||
CVS_safety_due_list.append(member_number)
|
||||
if district_name == 'Rea Valley':
|
||||
rea_safety_due_list.append(member_number)
|
||||
if district_name == 'Birmingham Spitfire District Scout Association':
|
||||
spitfire_safety_due_list.append(member_number)
|
||||
if district_name == 'Sutton Coldfield East':
|
||||
SCE_safety_due_list.append(member_number)
|
||||
if district_name == 'Sutton Coldfield West':
|
||||
SCW_safety_due_list.append(member_number)
|
||||
if district_name == 'Tame Valley Birmingham':
|
||||
tame_safety_due_list.append(member_number)
|
||||
|
||||
#3.4.2 Safeguarding
|
||||
if input_data[line_num][39] != "":
|
||||
@ -256,6 +423,22 @@ def training_report():
|
||||
except:
|
||||
#this executes if the membership number is not in the list
|
||||
safeguarding_due_list.append(member_number)
|
||||
#Get county and district stats
|
||||
district_name = input_data[line_num][19]
|
||||
if district_name == '':
|
||||
county_safeguarding_due_list.append(member_number)
|
||||
if district_name == 'Cole Valley South':
|
||||
CVS_safeguarding_due_list.append(member_number)
|
||||
if district_name == 'Rea Valley':
|
||||
rea_safeguarding_due_list.append(member_number)
|
||||
if district_name == 'Birmingham Spitfire District Scout Association':
|
||||
spitfire_safeguarding_due_list.append(member_number)
|
||||
if district_name == 'Sutton Coldfield East':
|
||||
SCE_safeguarding_due_list.append(member_number)
|
||||
if district_name == 'Sutton Coldfield West':
|
||||
SCW_safeguarding_due_list.append(member_number)
|
||||
if district_name == 'Tame Valley Birmingham':
|
||||
tame_safeguarding_due_list.append(member_number)
|
||||
|
||||
#3.4.3 First Aid
|
||||
if input_data[line_num][41] != "":
|
||||
@ -272,47 +455,81 @@ def training_report():
|
||||
except:
|
||||
#this executes if the membership number is not in the list
|
||||
firstaid_due_list.append(member_number)
|
||||
#Get county and district stats
|
||||
district_name = input_data[line_num][19]
|
||||
if district_name == '':
|
||||
county_firstaid_due_list.append(member_number)
|
||||
if district_name == 'Cole Valley South':
|
||||
CVS_firstaid_due_list.append(member_number)
|
||||
if district_name == 'Rea Valley':
|
||||
rea_firstaid_due_list.append(member_number)
|
||||
if district_name == 'Birmingham Spitfire District Scout Association':
|
||||
spitfire_firstaid_due_list.append(member_number)
|
||||
if district_name == 'Sutton Coldfield East':
|
||||
SCE_firstaid_due_list.append(member_number)
|
||||
if district_name == 'Sutton Coldfield West':
|
||||
SCW_firstaid_due_list.append(member_number)
|
||||
if district_name == 'Tame Valley Birmingham':
|
||||
tame_firstaid_due_list.append(member_number)
|
||||
|
||||
#4: Construct the file outputs
|
||||
#Late or missing training
|
||||
#single one only
|
||||
if safety_status == True and safeguarding_status != True and firstaid_status != True and role_training == True:
|
||||
if safety_status == True and safeguarding_status != True and firstaid_status != True and role_training == True and firstaid_required == True:
|
||||
#write only with the safety status
|
||||
if input_data[line_num][36] == '':
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], 'Never Completed', '', ''])
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], 'Never Completed', 'Up To Date', 'Up To Date'])
|
||||
else:
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], input_data[line_num][37], '', ''])
|
||||
if safety_status != True and safeguarding_status == True and firstaid_status != True and role_training == True:
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], input_data[line_num][37], 'Up To Date', 'Up To Date'])
|
||||
if safety_status == True and safeguarding_status != True and firstaid_status != True and role_training == True and firstaid_required == False:
|
||||
#write only with the safety status
|
||||
if input_data[line_num][36] == '':
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], 'Never Completed', 'Up To Date', 'Not Required'])
|
||||
else:
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], input_data[line_num][37], 'Up To Date', 'Not Required'])
|
||||
if safety_status != True and safeguarding_status == True and firstaid_status != True and role_training == True and firstaid_required == True:
|
||||
#write only with the safeguarding status
|
||||
if input_data[line_num][38] == '':
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], '', 'Never Completed', ''])
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], 'Up To Date', 'Never Completed', 'Up To Date'])
|
||||
else:
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], '', input_data[line_num][39], ''])
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], 'Up To Date', input_data[line_num][39], 'Up To Date'])
|
||||
if safety_status != True and safeguarding_status == True and firstaid_status != True and role_training == True and firstaid_required == False:
|
||||
#write only with the safeguarding status
|
||||
if input_data[line_num][38] == '':
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], 'Up To Date', 'Never Completed', 'Not Required'])
|
||||
else:
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], 'Up To Date', input_data[line_num][39], 'Not Required'])
|
||||
if safety_status != True and safeguarding_status != True and firstaid_status == True and role_training == True and firstaid_required == True:
|
||||
#write only with the first aid status
|
||||
if input_data[line_num][40]:
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], '', '', 'Never Completed'])
|
||||
if input_data[line_num][40] == '':
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], 'Up To Date', 'Up To Date', 'Never Completed'])
|
||||
else:
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], '', '', input_data[line_num][41]])
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], 'Up To Date', 'Up To Date', input_data[line_num][41]])
|
||||
# x2 combo only
|
||||
if safety_status == True and safeguarding_status == True and firstaid_status != True and role_training == True:
|
||||
if safety_status == True and safeguarding_status == True and firstaid_status != True and role_training == True and firstaid_required == True:
|
||||
#write safety and safeguarding status
|
||||
if input_data[line_num][36] == '' and input_data[line_num][38] == '':
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], 'Never Completed', 'Never Completed', ''])
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], 'Never Completed', 'Never Completed', 'Up To Date'])
|
||||
else:
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], input_data[line_num][37], input_data[line_num][39], ''])
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], input_data[line_num][37], input_data[line_num][39], 'Up To Date'])
|
||||
if safety_status == True and safeguarding_status == True and firstaid_status != True and role_training == True and firstaid_required == False:
|
||||
#write safety and safeguarding status
|
||||
if input_data[line_num][36] == '' and input_data[line_num][38] == '':
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], 'Never Completed', 'Never Completed', 'Not Required'])
|
||||
else:
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], input_data[line_num][37], input_data[line_num][39], 'Not Required'])
|
||||
if safety_status == True and safeguarding_status != True and firstaid_status == True and role_training == True and firstaid_required == True:
|
||||
#write safety and first aid status
|
||||
if input_data[line_num][36] == '' and input_data[line_num][40] == '':
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], 'Never Completed' , '', 'Never Completed'])
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], 'Never Completed' , 'Up To Date', 'Never Completed'])
|
||||
else:
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], input_data[line_num][37] , '', input_data[line_num][41]])
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], input_data[line_num][37] , 'Up To Date', input_data[line_num][41]])
|
||||
if safety_status != True and safeguarding_status == True and firstaid_status == True and role_training == True and firstaid_required == True:
|
||||
#write safeguarding and first aid status
|
||||
if input_data[line_num][38] == '' and input_data[line_num][40] == '':
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], '', 'Never Completed', 'Never Completed'])
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], 'Up To Date', 'Never Completed', 'Never Completed'])
|
||||
else:
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], '', input_data[line_num][39], input_data[line_num][41]])
|
||||
late_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], 'Up To Date', input_data[line_num][39], input_data[line_num][41]])
|
||||
# all 3
|
||||
if safety_status == True and safeguarding_status == True and firstaid_status == True and role_training == True and firstaid_required == True:
|
||||
#write safety, safeguarding and first aid status
|
||||
@ -325,23 +542,23 @@ def training_report():
|
||||
#single one only
|
||||
if safety_due_status == True and safeguarding_due_status != True and firstaid_due_status != True and role_training == True:
|
||||
#write only with the safety status
|
||||
due_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], input_data[line_num][37], "", ""])
|
||||
due_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], input_data[line_num][37], "Up To Date", "Up To Date"])
|
||||
if safety_due_status != True and safeguarding_due_status == True and firstaid_due_status != True and role_training == True:
|
||||
#write only with the safeguarding status
|
||||
due_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], '', input_data[line_num][39], ""])
|
||||
due_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], 'Up To Date', input_data[line_num][39], "Up To Date"])
|
||||
if safety_due_status != True and safeguarding_due_status != True and firstaid_due_status == True and role_training == True:
|
||||
#write only with the first aid status
|
||||
due_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], '', '', input_data[line_num][41]])
|
||||
due_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], 'Up To Date', 'Up To Date', input_data[line_num][41]])
|
||||
# x2 combo only
|
||||
if safety_due_status == True and safeguarding_due_status == True and firstaid_due_status != True and role_training == True:
|
||||
#write safety and safeguarding status
|
||||
due_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], input_data[line_num][37], input_data[line_num][39], ""])
|
||||
due_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], input_data[line_num][37], input_data[line_num][39], "Up To Date"])
|
||||
if safety_due_status == True and safeguarding_due_status != True and firstaid_due_status == True and role_training == True:
|
||||
#write safety and first aid status
|
||||
due_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], input_data[line_num][37] , '', input_data[line_num][41]])
|
||||
due_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], input_data[line_num][37] , 'Up To Date', input_data[line_num][41]])
|
||||
if safety_due_status != True and safeguarding_due_status == True and firstaid_due_status == True and role_training == True:
|
||||
#write safeguarding and first aid status
|
||||
due_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], '', input_data[line_num][39], input_data[line_num][41]])
|
||||
due_mandatory.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][8], input_data[line_num][13], input_data[line_num][21], input_data[line_num][19], 'Up To Date', input_data[line_num][39], input_data[line_num][41]])
|
||||
# all 3
|
||||
if safety_due_status == True and safeguarding_due_status == True and firstaid_due_status == True and role_training == True:
|
||||
#write safety, safeguarding and first aid status
|
||||
@ -356,6 +573,7 @@ def training_report():
|
||||
firstaid_due_status = False
|
||||
role_training = False
|
||||
firstaid_required = False
|
||||
newbie = False
|
||||
|
||||
line_num = line_num + 1 #continues the loop
|
||||
#print(input_data[line_num][0])
|
||||
@ -370,6 +588,70 @@ def training_report():
|
||||
statistics_file.write('Leaders who need to complete the Safeguarding module within ' + str(due_months) + ' months: ' + str(len(safeguarding_due_list))+'\n')
|
||||
statistics_file.write('Leaders who are late with First Aid module: ' + str(len(firstaid_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the First Aid module within ' + str(due_months) + ' months: ' + str(len(firstaid_due_list))+'\n')
|
||||
statistics_file.write('\n')
|
||||
statistics_file.write('County Roles\n')
|
||||
statistics_file.write('============\n')
|
||||
statistics_file.write('Leaders who are late with Safety module: ' + str(len(county_safety_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the Safety module within ' + str(due_months) + ' months: ' + str(len(county_safety_due_list))+'\n')
|
||||
statistics_file.write('Leaders who are late with Safeguarding module: ' + str(len(county_safeguarding_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the Safeguarding module within ' + str(due_months) + ' months: ' + str(len(county_safeguarding_due_list))+'\n')
|
||||
statistics_file.write('Leaders who are late with First Aid module: ' + str(len(county_firstaid_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the First Aid module within ' + str(due_months) + ' months: ' + str(len(county_firstaid_due_list))+'\n')
|
||||
statistics_file.write('\n')
|
||||
statistics_file.write('Cole Valley South Roles\n')
|
||||
statistics_file.write('=======================\n')
|
||||
statistics_file.write('Leaders who are late with Safety module: ' + str(len(CVS_safety_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the Safety module within ' + str(due_months) + ' months: ' + str(len(CVS_safety_due_list))+'\n')
|
||||
statistics_file.write('Leaders who are late with Safeguarding module: ' + str(len(CVS_safeguarding_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the Safeguarding module within ' + str(due_months) + ' months: ' + str(len(CVS_safeguarding_due_list))+'\n')
|
||||
statistics_file.write('Leaders who are late with First Aid module: ' + str(len(CVS_firstaid_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the First Aid module within ' + str(due_months) + ' months: ' + str(len(CVS_firstaid_due_list))+'\n')
|
||||
statistics_file.write('\n')
|
||||
statistics_file.write('Rea Valley Roles\n')
|
||||
statistics_file.write('================\n')
|
||||
statistics_file.write('Leaders who are late with Safety module: ' + str(len(rea_safety_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the Safety module within ' + str(due_months) + ' months: ' + str(len(rea_safety_due_list))+'\n')
|
||||
statistics_file.write('Leaders who are late with Safeguarding module: ' + str(len(rea_safeguarding_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the Safeguarding module within ' + str(due_months) + ' months: ' + str(len(rea_safeguarding_due_list))+'\n')
|
||||
statistics_file.write('Leaders who are late with First Aid module: ' + str(len(rea_firstaid_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the First Aid module within ' + str(due_months) + ' months: ' + str(len(rea_firstaid_due_list))+'\n')
|
||||
statistics_file.write('\n')
|
||||
statistics_file.write('Spitfire Roles\n')
|
||||
statistics_file.write('==============\n')
|
||||
statistics_file.write('Leaders who are late with Safety module: ' + str(len(spitfire_safety_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the Safety module within ' + str(due_months) + ' months: ' + str(len(spitfire_safety_due_list))+'\n')
|
||||
statistics_file.write('Leaders who are late with Safeguarding module: ' + str(len(spitfire_safeguarding_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the Safeguarding module within ' + str(due_months) + ' months: ' + str(len(spitfire_safeguarding_due_list))+'\n')
|
||||
statistics_file.write('Leaders who are late with First Aid module: ' + str(len(spitfire_firstaid_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the First Aid module within ' + str(due_months) + ' months: ' + str(len(spitfire_firstaid_due_list))+'\n')
|
||||
statistics_file.write('\n')
|
||||
statistics_file.write('Sutton Coldfield East Roles\n')
|
||||
statistics_file.write('===========================\n')
|
||||
statistics_file.write('Leaders who are late with Safety module: ' + str(len(SCE_safety_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the Safety module within ' + str(due_months) + ' months: ' + str(len(SCE_safety_due_list))+'\n')
|
||||
statistics_file.write('Leaders who are late with Safeguarding module: ' + str(len(SCE_safeguarding_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the Safeguarding module within ' + str(due_months) + ' months: ' + str(len(SCE_safeguarding_due_list))+'\n')
|
||||
statistics_file.write('Leaders who are late with First Aid module: ' + str(len(SCE_firstaid_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the First Aid module within ' + str(due_months) + ' months: ' + str(len(SCE_firstaid_due_list))+'\n')
|
||||
statistics_file.write('\n')
|
||||
statistics_file.write('Sutton Coldfield West Roles\n')
|
||||
statistics_file.write('===========================\n')
|
||||
statistics_file.write('Leaders who are late with Safety module: ' + str(len(SCW_safety_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the Safety module within ' + str(due_months) + ' months: ' + str(len(SCW_safety_due_list))+'\n')
|
||||
statistics_file.write('Leaders who are late with Safeguarding module: ' + str(len(SCW_safeguarding_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the Safeguarding module within ' + str(due_months) + ' months: ' + str(len(SCW_safeguarding_due_list))+'\n')
|
||||
statistics_file.write('Leaders who are late with First Aid module: ' + str(len(SCW_firstaid_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the First Aid module within ' + str(due_months) + ' months: ' + str(len(SCW_firstaid_due_list))+'\n')
|
||||
statistics_file.write('\n')
|
||||
statistics_file.write('Tame Valley Roles\n')
|
||||
statistics_file.write('===========================\n')
|
||||
statistics_file.write('Leaders who are late with Safety module: ' + str(len(tame_safety_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the Safety module within ' + str(due_months) + ' months: ' + str(len(tame_safety_due_list))+'\n')
|
||||
statistics_file.write('Leaders who are late with Safeguarding module: ' + str(len(tame_safeguarding_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the Safeguarding module within ' + str(due_months) + ' months: ' + str(len(tame_safeguarding_due_list))+'\n')
|
||||
statistics_file.write('Leaders who are late with First Aid module: ' + str(len(tame_firstaid_missing_list))+'\n')
|
||||
statistics_file.write('Leaders who need to complete the First Aid module within ' + str(due_months) + ' months: ' + str(len(tame_firstaid_due_list))+'\n')
|
||||
statistics_file.write('\n')
|
||||
|
||||
#5: Close files to show they are done
|
||||
late_mandatory_file.close()
|
||||
|
@ -4,7 +4,7 @@
|
||||
#Licence: GPL-3.0-or-later
|
||||
#Written by Stuart Griffiths, stuart.griffiths@birminghamscouts.org.uk
|
||||
#Started 27/03/2022
|
||||
#Version:0.4
|
||||
#Version:0.5
|
||||
#Released:
|
||||
#Status: Working
|
||||
#Inputs: CSV
|
||||
@ -46,6 +46,8 @@ GDPR_file = open('GDPR_training.csv', 'w', newline='')
|
||||
GDPR = csv.writer(GDPR_file)
|
||||
GDPR.writerow(['Membership Number', 'Known Name', 'Surname', 'E-Mail', 'Role', 'Group', 'District', 'Uncompleted_Training_Module'])
|
||||
|
||||
#text files
|
||||
GDPR_statistics_file = open('_GDPR_statistics.txt', 'w')
|
||||
|
||||
#Modules
|
||||
def training_report():
|
||||
@ -55,6 +57,15 @@ def training_report():
|
||||
#Create a list using the CSV file
|
||||
input_data_reader = csv.reader(input_file)
|
||||
input_data = list(input_data_reader)
|
||||
#Set up lists
|
||||
total_GDPR_list = []
|
||||
county_GDPR_list = []
|
||||
CVS_GDPR_list = []
|
||||
rea_GDPR_list = []
|
||||
spitfire_GDPR_list = []
|
||||
SCE_GDPR_list = []
|
||||
SCW_GDPR_list = []
|
||||
tame_GDPR_list = []
|
||||
|
||||
#3. Process the data
|
||||
#Start at row 4 for the OSM output
|
||||
@ -81,10 +92,68 @@ def training_report():
|
||||
module_name = str(input_data[line_num][16])
|
||||
if module_name == 'General Data Protection Regulations':
|
||||
complete_check = str(input_data[line_num][17])
|
||||
member_number = input_data[line_num][0]
|
||||
#Check: is the date blank?
|
||||
if complete_check == '':
|
||||
GDPR.writerow([input_data[line_num][0], input_data[line_num][3], input_data[line_num][2], input_data[line_num][4], input_data[line_num][5], input_data[line_num][14], input_data[line_num][12], input_data[line_num][16], input_data[line_num][7]])
|
||||
try:
|
||||
x = total_GDPR_list.index(member_number)
|
||||
#if it is, nothing happens
|
||||
except:
|
||||
#this executes if the membership number is not in the list
|
||||
#Statistics
|
||||
total_GDPR_list.append(member_number)
|
||||
district_name = input_data[line_num][12]
|
||||
if district_name == '':
|
||||
county_GDPR_list.append(member_number)
|
||||
if district_name == 'Cole Valley South':
|
||||
CVS_GDPR_list.append(member_number)
|
||||
if district_name == 'Rea Valley':
|
||||
rea_GDPR_list.append(member_number)
|
||||
if district_name == 'Birmingham Spitfire District Scout Association':
|
||||
spitfire_GDPR_list.append(member_number)
|
||||
if district_name == 'Sutton Coldfield East':
|
||||
SCE_GDPR_list.append(member_number)
|
||||
if district_name == 'Sutton Coldfield West':
|
||||
SCW_GDPR_list.append(member_number)
|
||||
if district_name == 'Tame Valley Birmingham':
|
||||
tame_GDPR_list.append(member_number)
|
||||
line_num = line_num + 1 #continues the loop
|
||||
|
||||
#3.3 Produce the statistics file
|
||||
GDPR_statistics_file.write('Statistics File for Training Reports\n')
|
||||
GDPR_statistics_file.write('====================================\n')
|
||||
GDPR_statistics_file.write('\n')
|
||||
GDPR_statistics_file.write('Leaders who need to complete GDPR module: ' + str(len(total_GDPR_list))+'\n')
|
||||
GDPR_statistics_file.write('\n')
|
||||
GDPR_statistics_file.write('County Roles\n')
|
||||
GDPR_statistics_file.write('============\n')
|
||||
GDPR_statistics_file.write('Leaders who need to complete GDPR module: ' + str(len(county_GDPR_list))+'\n')
|
||||
GDPR_statistics_file.write('\n')
|
||||
GDPR_statistics_file.write('Cole Valley South Roles\n')
|
||||
GDPR_statistics_file.write('=======================\n')
|
||||
GDPR_statistics_file.write('Leaders who need to complete GDPR module: ' + str(len(CVS_GDPR_list))+'\n')
|
||||
GDPR_statistics_file.write('\n')
|
||||
GDPR_statistics_file.write('Rea Valley Roles\n')
|
||||
GDPR_statistics_file.write('================\n')
|
||||
GDPR_statistics_file.write('Leaders who need to complete GDPR module: ' + str(len(rea_GDPR_list))+'\n')
|
||||
GDPR_statistics_file.write('\n')
|
||||
GDPR_statistics_file.write('Spitfire Roles\n')
|
||||
GDPR_statistics_file.write('==============\n')
|
||||
GDPR_statistics_file.write('Leaders who need to complete GDPR module: ' + str(len(spitfire_GDPR_list))+'\n')
|
||||
GDPR_statistics_file.write('\n')
|
||||
GDPR_statistics_file.write('Sutton Coldfield East Roles\n')
|
||||
GDPR_statistics_file.write('===========================\n')
|
||||
GDPR_statistics_file.write('Leaders who need to complete GDPR module: ' + str(len(SCE_GDPR_list))+'\n')
|
||||
GDPR_statistics_file.write('\n')
|
||||
GDPR_statistics_file.write('Sutton Coldfield West Roles\n')
|
||||
GDPR_statistics_file.write('===========================\n')
|
||||
GDPR_statistics_file.write('Leaders who need to complete GDPR module: ' + str(len(SCW_GDPR_list))+'\n')
|
||||
GDPR_statistics_file.write('\n')
|
||||
GDPR_statistics_file.write('Tame Valley Roles\n')
|
||||
GDPR_statistics_file.write('===========================\n')
|
||||
GDPR_statistics_file.write('Leaders who need to complete GDPR module: ' + str(len(tame_GDPR_list))+'\n')
|
||||
GDPR_statistics_file.write('\n')
|
||||
#4: Close files to show they are done
|
||||
|
||||
missing_file.close()
|
||||
@ -198,9 +267,18 @@ def districts_reports():
|
||||
#7.2 Process the data
|
||||
#start at row 2 to strip header out
|
||||
line_num = int(1)
|
||||
#list of written membership numbers
|
||||
GDPR_list = []
|
||||
while line_num < (len(input_data)-1): #While there is an entry to handle, do something
|
||||
#read District info (6)
|
||||
district = input_data[line_num][6]
|
||||
member_number = input_data[line_num][0]
|
||||
try:
|
||||
x = GDPR_list.index(member_number)
|
||||
#if it is, nothing happens
|
||||
except:
|
||||
#this executes if the membership number is not in the list
|
||||
GDPR_list.append(member_number)
|
||||
if district == '':
|
||||
#If no district, must be county
|
||||
county_GDPR.writerow([input_data[line_num][0], input_data[line_num][1], input_data[line_num][2], input_data[line_num][3], input_data[line_num][4], input_data[line_num][5], input_data[line_num][6], input_data[line_num][7]])
|
||||
@ -216,7 +294,6 @@ def districts_reports():
|
||||
rea_GDPR.writerow([input_data[line_num][0], input_data[line_num][1], input_data[line_num][2], input_data[line_num][3], input_data[line_num][4], input_data[line_num][5], input_data[line_num][6], input_data[line_num][7]])
|
||||
if district == 'Tame Valley Birmingham':
|
||||
tame_GDPR.writerow([input_data[line_num][0], input_data[line_num][1], input_data[line_num][2], input_data[line_num][3], input_data[line_num][4], input_data[line_num][5], input_data[line_num][6], input_data[line_num][7]])
|
||||
|
||||
line_num = line_num + 1 #continues the loop
|
||||
|
||||
#8: Close the files
|
||||
|
Loading…
Reference in New Issue
Block a user