From a6d30fd86a8873dedc0551a43588bc080c7a85e1 Mon Sep 17 00:00:00 2001 From: Christian Colglazier Date: Tue, 11 Feb 2020 15:24:10 -0500 Subject: [PATCH] Creates basic photo checklist --- scripts/frc-photo-checklist.py | 84 +++++++++++++++++++++++++++++----- 1 file changed, 73 insertions(+), 11 deletions(-) diff --git a/scripts/frc-photo-checklist.py b/scripts/frc-photo-checklist.py index fd1debd..1786f2c 100644 --- a/scripts/frc-photo-checklist.py +++ b/scripts/frc-photo-checklist.py @@ -3,6 +3,7 @@ # Program to create a photo checklist of a given frc event. import configparser +import datetime as dt import operator import os import tbapy @@ -16,6 +17,19 @@ def getProjectID(api, name): print('Error: No project with the name {} found'.format(name)) exit(1) +# createChecklistItem() creates a checklist item of the highest priority. +def createChecklistItem(name, api, projectID, item, date): + return api.items.add(name, + project_id=projectID, + parent_id=item['id'], + date_string=date, + priority=4) + +# createPhotoChecklistItem() creates a checklist item that requires a photo. +def createPhotoChecklistItem(name, api, projectID, item, date): + return createChecklistItem('Take photo of **{}**'.format(name), + api, projectID, item, date) + # createPitList() creates a checklist for taking photos of a teams pit. def createPitList(api, teams, projectID, checklist, date): item = api.items.add('**Take** Pit Photos', @@ -24,13 +38,44 @@ def createPitList(api, teams, projectID, checklist, date): date_string=date, priority=3) for team in teams: - api.items.add('Pit photo of **{}** {}'.format(team['team_number'], team['nickname']), - project_id=projectID, - parent_id=item['id'], - date_string=date, - priority=4) - api.commit() + createChecklistItem('Pit photo of **{}** {}'.format(team['team_number'], team['nickname']), + api, projectID, item, date) + +# createGroupsList() creates a checklist of the different groups of volenteers. +def createGroupsList(api, projectID, checklist, date): + item = api.items.add('Groups', + project_id=projectID, + parent_id=checklist['id'], + date_string=date, + priority=3) + groups = ['Judges', 'Robot Inspectors', 'Referees', 'Safety Inspectors', + 'Field Reset', 'Queuers', 'CSAs', 'VC and Pit Admin'] + for group in groups: + createPhotoChecklistItem(group, api, projectID, item, date) +# createWinnersList() creates a checklist of the winners of an event. +def createWinnersList(api, projectID, checklist, date): + item = api.items.add('Winners', + project_id=projectID, + parent_id=checklist['id'], + date_string=date, + priority=3) + groups = ['Chairman\'s award', 'Engineering Inspiration', 'Rookie All-Star', 'Winning Alliance', + 'Winning Team 1', 'Winning Team 2', 'Winning Team 3'] + for group in groups: + createPhotoChecklistItem(group, api, projectID, item, date) + +# createRobotList() creates a checklist for taking photos of a team's robot. +def createRobotList(api, teams, projectID, checklist, date): + item = api.items.add('**Take** Robot Photos', + project_id=projectID, + parent_id=checklist['id'], + date_string=date, + priority=3) + for team in teams: + createChecklistItem('Robot photo of **{}** {}'.format(team['team_number'], team['nickname']), + api, projectID, item, date) + # Parse settings config configString = '[Settings]\n' + open('../settings.conf').read() configParser = configparser.RawConfigParser() @@ -49,14 +94,31 @@ projectID = getProjectID(api, 'Test') tba = tbapy.TBA(tbaKey) eventKey = '2020ncpem' event = tba.event(eventKey) +setupDay = event['start_date'] +day1 = (dt.datetime.strptime(setupDay, '%Y-%m-%d') + dt.timedelta(days=1)).strftime('%Y-%m-%d') +day2 = event['end_date'] teams = sorted(tba.event_teams(eventKey), key=operator.attrgetter('team_number')) +# Create checklist checklist = api.items.add('{} Photos'.format(event['name']), project_id=projectID, - date_string=event['end_date'], + date_string=day2, priority=2) -api.commit() -createPitList(api, teams, projectID, checklist, event['start_date']) -name = api.state['user']['full_name'] -print(name) +# Setup +createPitList(api, teams, projectID, checklist, setupDay) +createChecklistItem('**Schedule** Judges photo', api, projectID, checklist, setupDay) +createChecklistItem('**Schedule** Inspectors photo', api, projectID, checklist, setupDay) +createChecklistItem('**Schedule** Seniors photo', api, projectID, checklist, setupDay) +createGroupsList(api, projectID, checklist, setupDay) +# Day 1 +createPhotoChecklistItem('Guest Speakers', api, projectID, checklist, day1) +createRobotList(api, teams, projectID, checklist, day1) +# Day 2 +createPhotoChecklistItem('Guest Speakers', api, projectID, checklist, day2) +createPhotoChecklistItem('Mentors after parade', api, projectID, checklist, day2) +createPhotoChecklistItem('Seniors', api, projectID, checklist, day2) +createPhotoChecklistItem('Alliances Representatives', api, projectID, checklist, day2) +createWinnersList(api, projectID, checklist, day2) +createChecklistItem('**Email** guest speakers and winners photos', api, projectID, checklist, day2) +api.commit()