Compare commits

..

No commits in common. "aee318bd0e99fd5eb016de87cc17557919cabc61" and "88ba0c9da92028691f0ea6c9638d6955e6925d90" have entirely different histories.

2 changed files with 16 additions and 40 deletions

View File

@ -1,4 +1,3 @@
from copy import copy
import datetime
import csv
import re
@ -113,8 +112,6 @@ class Event:
runners_ranked.extend(runners_sorted)
for n in runners_ranked:
if n.status() == 'Active':
continue
person_result = ET.SubElement(class_result, 'PersonResult')
# <Person>
person = ET.SubElement(person_result, 'Person')
@ -152,23 +149,17 @@ class Event:
st = ET.SubElement(result, 'SplitTime')
xml_child(st, 'ControlCode', code)
xml_child(st, 'Time', split)
if code == n.res_codes()[-1]:
if code == n.o_class.course.codes[-1]:
break
# </SplitTime>
elif n.status() == 'Disqualified':
xml_child(result, 'Status', n.status())
controls = copy(n.card_r.controls)
splits = copy(n.card_r.splits)
for code in n.res_codes():
for code in n.o_class.course.codes:
st = ET.SubElement(result, 'SplitTime')
xml_child(st, 'ControlCode', code)
for control, split in zip(controls, splits):
for control, split in zip(n.card_r.controls, n.card_r.splits):
if code == control:
xml_child(st, 'Time', split)
controls.remove(control)
splits.remove(split)
break
else:
xml_child(result, 'Status', n.status())
else:
@ -215,7 +206,7 @@ class Event:
courses = []
for c in data['courses']:
courses.append(Course(c['name'], c['codes'], forked=c['forked'], variations=c['variations']))
courses.append(Course(c['name'], c['codes']))
o_classes = []
for c in data['o_classes']:
@ -344,10 +335,11 @@ class Runner:
return '{} {}'.format(self.first, self.last)
def check_codes(self):
return contains(self.res_codes(), self.card_r.controls)
# Returns False if not ok and touple if ok
return contains(self.o_class.course.codes, list(self.card_r.controls))
def totaltime(self):
f_control = self.res_codes()[-1]
f_control = self.o_class.course.codes[-1]
try:
index = self.card_r.controls.index(f_control)
return self.card_r.splits[index]
@ -366,24 +358,15 @@ class Runner:
c_ranked = rank_runners(allrunners, self.o_class)
return c_ranked.index(self) + 1
def res_codes(self):
if self.o_class.course.forked == False:
return self.o_class.course.codes
else:
return self.o_class.course.variations[self.fork]
# Used for making result files and tables
def res_splits(self):
splits_cpy = self.card_r.splits.copy()
for control in self.card_r.controls:
if control not in self.res_codes():
if control not in self.o_class.course.codes:
index = self.card_r.controls.index(control)
split = self.card_r.splits[index]
splits_cpy.remove(split)
return splits_cpy # list
def asdict(self):
return {
'id': self.id,
@ -511,14 +494,14 @@ class Course:
self.codes = codes
try:
self.forked = kwargs['forked']
forked = kwargs['forked']
except KeyError:
self.forked = False
forked = False
try:
self.variations = kwargs['variations']
variations = kwargs['variations']
except KeyError:
self.variations = None
variations = None
def __repr__(self):
return f'name({self.name})'
@ -526,9 +509,7 @@ class Course:
def asdict(self):
return {
'name': self.name,
'codes': self.codes,
'forked': self.forked,
'variations': self.variations
'codes': self.codes
}
# Stored in Event.o_classes

View File

@ -21,7 +21,7 @@ def main():
case 1:
import_menu()
case 2:
export_menu()
print('export')
case 3:
print('edit')
case 4:
@ -131,8 +131,7 @@ def export_menu():
global event
while True:
try:
print(''' 1. Export otime file
2. Export iof 3.0 xml file
print(''' 1. export otime file
2. Back''')
try:
opt = int(input('Choose an option (1-2): '))
@ -143,13 +142,9 @@ def export_menu():
case 1:
filename = input('File: ')
f = open(filename, 'w')
f.write(event.create_json_file())
f.write(event.create_json_file)
case 2:
filename = input('File: ')
event.get_xml_res().write(filename)
case 3:
break
except FileNotFoundError: