Startet på xml eksport funksjonen

This commit is contained in:
Trygve 2022-02-10 20:42:01 +01:00
parent 00428e7b62
commit 178f0bcbd7
2 changed files with 66 additions and 2 deletions

3
cli.py
View File

@ -69,5 +69,6 @@ if __name__ == "__main__":
print_runners(runner_list)
#print_time(runner_list)
#print_o_classes(o_classes)
print_class_splits(runner_list, o_classes[0])
#print_class_splits(runner_list, o_classes[0])
#print(otime.check_codes(runner_list[1]))
print(otime.gen_xml_result(runner_list, o_classes))

View File

@ -20,11 +20,20 @@ class runner:
def fullname(self):
return '{} {}'.format(self.first, self.last)
# Returns False if not ok and touple if ok
def check_codes(self):
# Returns False if not ok and touple if ok
return contains(self.o_class.course.codes, self.controls)
def totaltime(self):
return self.splits[-2]
def status(self):
if self.controls == []:
return 'Active'
elif self.check_codes():
return 'OK'
elif self.check_codes() == False:
return 'Disqualified'
class course:
def __init__(self, name, codes):
@ -161,4 +170,58 @@ def contains(small, big):
return True
return False
def filter_runners_by_class(runners, o_class):
list_filtrd = []
for i in runners:
if i.o_class == o_class:
list_filtrd.append(i)
return list_filtrd
def gen_xml_result(runners, o_classes):
root = ET.Element('ResultList')
tree = ET.ElementTree(root)
event = ET.SubElement(root, 'Event')
for i in o_classes:
#<ClassResult>
class_result = ET.SubElement(event, 'ClassResult')
#<Class>
t = ET.SubElement(class_result, 'Class')
name = ET.SubElement(t, 'Name')
name.text = i.name
#<PersonResult>
for n in filter_runners_by_class(runners, i):
person_result = ET.SubElement(class_result, 'PersonResult')
#<Person>
person = ET.SubElement(person_result, 'Person')
eventorid = ET.SubElement(person, 'Id')
eventorid.text = '0'
#<Name>
name = ET.SubElement(person, 'Name')
family = ET.SubElement(name, 'Family')
family.text = n.last
given = ET.SubElement(name, 'Given')
given.text = n.first
#</Name>
#</Person>
#<Organisation>
org = ET.SubElement(person_result, 'Organisation')
orgid = ET.SubElement(org, 'Id')
orgid.text = '0'
name = ET.SubElement(org, 'Name')
name.text = n.club
country = ET.SubElement(org, 'Country')
# TODO: hent land fra løperobjektet
country.text = 'Norway'
country.set('code', 'NOR')
#</Organisation>
#<Result>
result = ET.SubElement(person, 'Result')
status = ET.SubElement(result, 'Status')
status.text = n.status()
#</Result>
#</PersonResult>
#</Class>
tree.write('output.xml')
return ET.dump(root)