added group specific reports and zip files
This commit is contained in:
parent
0af23f9bf6
commit
52f92bba33
2830
convert_csv_xlsx.py
2830
convert_csv_xlsx.py
File diff suppressed because it is too large
Load Diff
132
get_group_list.py
Normal file
132
get_group_list.py
Normal file
@ -0,0 +1,132 @@
|
||||
#! python3
|
||||
#get_group_list.py
|
||||
#A tool to process Compass Records and produce a list of Groups by County
|
||||
#Licence: GPL-3.0-or-later
|
||||
#Written by Stuart Griffiths, stuart.griffiths@birminghamscouts.org.uk
|
||||
#Started 25/09/2022
|
||||
#Version:0.1
|
||||
#Released: 25/09/2022
|
||||
#Status: Working
|
||||
#Inputs: CSV
|
||||
#Outputs: text file
|
||||
#Next Steps:
|
||||
#Issues:
|
||||
#Background IP: https://automatetheboringstuff.com/, Chapter 16
|
||||
|
||||
#Notes - CSV Column Numbers
|
||||
#District = 25
|
||||
#Scout_Group = 27
|
||||
|
||||
|
||||
#Libraries
|
||||
import os #Enables file IO
|
||||
from pathlib import Path #to work out current working directory
|
||||
import csv #required to handle csv files
|
||||
|
||||
|
||||
#1. Set up Output files
|
||||
#text files
|
||||
group_file = open('_group_list.txt', 'w')
|
||||
|
||||
#Modules
|
||||
def group_collecting():
|
||||
#2. Open the file
|
||||
file_name = str(Path.cwd()) + '/' + str('County Member Directory (Updated).csv')
|
||||
input_file = open(file_name) #assumes file is in working directory
|
||||
#Create a list using the CSV file
|
||||
input_data_reader = csv.reader(input_file)
|
||||
input_data = list(input_data_reader)
|
||||
#Set up lists
|
||||
group_list = [] #used to catch all groups
|
||||
CVS_list = []
|
||||
rea_list = []
|
||||
spitfire_list = []
|
||||
SCE_list = []
|
||||
SCW_list = []
|
||||
tame_list = []
|
||||
|
||||
#3. Process the data
|
||||
#Start at row 4 for the OSM output
|
||||
line_num = int(2) #strips header out
|
||||
while line_num < (len(input_data)-1): #while there is an entry to handle, do this
|
||||
#3.1. Test 1 - Should the role have a Woodbadge?
|
||||
#Read the column
|
||||
group_name = input_data[line_num][27]
|
||||
#Check - Is it in the list?
|
||||
if group_name in group_list:
|
||||
#check if already caught and dealt with
|
||||
print("caught that one already")
|
||||
else:
|
||||
group_list.append(group_name)
|
||||
district_name = input_data[line_num][25]
|
||||
if district_name == 'Cole Valley South':
|
||||
CVS_list.append(group_name)
|
||||
if district_name == 'Rea Valley':
|
||||
rea_list.append(group_name)
|
||||
if district_name == 'Birmingham Spitfire District Scout Association':
|
||||
spitfire_list.append(group_name)
|
||||
if district_name == 'Sutton Coldfield East':
|
||||
SCE_list.append(group_name)
|
||||
if district_name == 'Sutton Coldfield West':
|
||||
SCW_list.append(group_name)
|
||||
if district_name == 'Tame Valley Birmingham':
|
||||
tame_list.append(group_name)
|
||||
line_num = line_num + 1 #continues the loop
|
||||
|
||||
print("group list = " + str(len(group_list)))
|
||||
print("CVS list = " + str(len(CVS_list)))
|
||||
print("rea list = " + str(len(rea_list)))
|
||||
print("spitfire list = " + str(len(spitfire_list)))
|
||||
print("SCE list = " + str(len(SCE_list)))
|
||||
print("SCW list = " + str(len(SCW_list)))
|
||||
print("tame list = " + str(len(tame_list)))
|
||||
|
||||
#3.3 Produce the output file
|
||||
group_file.write('Group List For Birmingham County\n')
|
||||
group_file.write('================================\n')
|
||||
group_file.write('\n')
|
||||
group_file.write('Cole Valley South Roles\n')
|
||||
group_file.write('=======================\n')
|
||||
for x in range(len(CVS_list)):
|
||||
group_file.write(CVS_list[x])
|
||||
group_file.write('\n')
|
||||
group_file.write('\n')
|
||||
group_file.write('Rea Valley Roles\n')
|
||||
group_file.write('================\n')
|
||||
for x in range(len(rea_list)):
|
||||
group_file.write(rea_list[x])
|
||||
group_file.write('\n')
|
||||
group_file.write('\n')
|
||||
group_file.write('Spitfire Roles\n')
|
||||
group_file.write('==============\n')
|
||||
for x in range(len(spitfire_list)):
|
||||
group_file.write(spitfire_list[x])
|
||||
group_file.write('\n')
|
||||
group_file.write('\n')
|
||||
group_file.write('Sutton Coldfield East Roles\n')
|
||||
group_file.write('===========================\n')
|
||||
for x in range(len(SCE_list)):
|
||||
group_file.write(SCE_list[x])
|
||||
group_file.write('\n')
|
||||
group_file.write('\n')
|
||||
group_file.write('Sutton Coldfield West Roles\n')
|
||||
group_file.write('===========================\n')
|
||||
for x in range(len(SCW_list)):
|
||||
group_file.write(SCW_list[x])
|
||||
group_file.write('\n')
|
||||
group_file.write('\n')
|
||||
group_file.write('Tame Valley Roles\n')
|
||||
group_file.write('===========================\n')
|
||||
for x in range(len(tame_list)):
|
||||
group_file.write(tame_list[x])
|
||||
group_file.write('\n')
|
||||
group_file.write('\n')
|
||||
|
||||
#4: Close files to show they are done
|
||||
|
||||
group_file.close()
|
||||
print("Finished collecting groups!")
|
||||
|
||||
#Program
|
||||
group_collecting()
|
||||
|
1462
mogl_groups.py
Normal file
1462
mogl_groups.py
Normal file
File diff suppressed because it is too large
Load Diff
@ -5,4 +5,5 @@
|
||||
python3 appointments_training_reports.py
|
||||
python3 training_reports.py
|
||||
python3 wood_badge_reports.py
|
||||
python3 mogl_groups.py
|
||||
python3 convert_csv_xlsx.py
|
||||
|
Loading…
Reference in New Issue
Block a user