forked from Trygve/otime
La til strekktider i eksporten og fiksa kodesjekken
This commit is contained in:
parent
ebe25acca8
commit
ebc023764e
6
cli.py
6
cli.py
@ -71,8 +71,4 @@ if __name__ == "__main__":
|
||||
#print_o_classes(o_classes)
|
||||
#print_class_splits(runner_list, o_classes[0])
|
||||
#print(otime.check_codes(runner_list[1]))
|
||||
#otime.gen_xml_result(runner_list, o_classes)
|
||||
|
||||
testco = [51,52,53,31,32,23,33,34,35,55,56]
|
||||
testrunner = [31,32,33,34,35]
|
||||
print(otime.contains(testrunner, testco))
|
||||
otime.gen_xml_result(runner_list, o_classes)
|
||||
|
67
otime.py
67
otime.py
@ -1,6 +1,5 @@
|
||||
import datetime
|
||||
import csv
|
||||
import sqlite3
|
||||
import re
|
||||
from rich.console import Console
|
||||
from rich.table import Table
|
||||
@ -40,8 +39,20 @@ class runner:
|
||||
c_ranked = rank_runners(allrunners, self.o_class)
|
||||
return c_ranked.index(self) + 1
|
||||
def res_splits(self):
|
||||
pass
|
||||
|
||||
control_map = self.check_codes()
|
||||
splits = []
|
||||
lastn = 0
|
||||
for n in control_map:
|
||||
if n != lastn+1:
|
||||
splits.append(self.splits[n])
|
||||
else:
|
||||
# Dette må testes ordentlig seinere!
|
||||
gap = n - lastn
|
||||
split = 0
|
||||
for i in range(gap):
|
||||
split += self.splits[n-gap]
|
||||
splits.append(split)
|
||||
return splits
|
||||
class course:
|
||||
def __init__(self, name, codes):
|
||||
self.name = name
|
||||
@ -182,18 +193,26 @@ def ttime_mtr_to_class(csv_file, runnerarray):
|
||||
runner.s_time = s_time
|
||||
|
||||
def contains(small, big):
|
||||
for i in range(len(big)-len(small)+1):
|
||||
for j in range(len(small)):
|
||||
if big[i+j] != small[j]:
|
||||
valid = True
|
||||
mark = 0
|
||||
map_bl = []
|
||||
for i in small:
|
||||
for n,control in enumerate(big[mark:]):
|
||||
if i == control:
|
||||
mark += n
|
||||
map_bl.append(mark)
|
||||
break
|
||||
else:
|
||||
return i, i+len(small)
|
||||
return True
|
||||
return False
|
||||
|
||||
valid = False
|
||||
if valid:
|
||||
return map_bl
|
||||
else:
|
||||
return False
|
||||
|
||||
def get_runners_in_class(runners, o_class):
|
||||
list_filtrd = []
|
||||
for i in runners:
|
||||
marker = 0
|
||||
if i.o_class == o_class:
|
||||
list_filtrd.append(i)
|
||||
|
||||
@ -211,6 +230,8 @@ def gen_xml_result(runners, o_classes):
|
||||
root = ET.Element('ResultList')
|
||||
tree = ET.ElementTree(root)
|
||||
event = ET.SubElement(root, 'Event')
|
||||
ename = ET.SubElement(event, 'Name')
|
||||
ename.text = 'PLACEHOLDER'
|
||||
for i in o_classes:
|
||||
#<ClassResult>
|
||||
class_result = ET.SubElement(root, 'ClassResult')
|
||||
@ -247,7 +268,7 @@ def gen_xml_result(runners, o_classes):
|
||||
country.set('code', 'NOR')
|
||||
#</Organisation>
|
||||
#<Result>
|
||||
result = ET.SubElement(person, 'Result')
|
||||
result = ET.SubElement(person_result, 'Result')
|
||||
if len(n.splits) > 2:
|
||||
start_t = ET.SubElement(result, 'StartTime')
|
||||
start_t.text = n.s_time.isoformat()
|
||||
@ -260,13 +281,27 @@ def gen_xml_result(runners, o_classes):
|
||||
totime = ET.SubElement(result, 'TimeBehind')
|
||||
totime.text = str(n.totaltime() - runners_ranked[0].totaltime())
|
||||
#</TimeBehind>
|
||||
rank = ET.SubElement(result, 'Rank')
|
||||
rank.text = str(n.rank(runners))
|
||||
status = ET.SubElement(result, 'Status')
|
||||
status.text = n.status()
|
||||
pos = ET.SubElement(result, 'Position')
|
||||
pos.text = str(n.rank(runners))
|
||||
status = ET.SubElement(result, 'Status')
|
||||
status.text = n.status()
|
||||
#<SplitTime>
|
||||
for code,split in zip(n.o_class.course.codes, n.res_splits()):
|
||||
st = ET.SubElement(result, 'SplitTime')
|
||||
ck = ET.SubElement(st, 'ControlCode')
|
||||
ck.text = str(code)
|
||||
time = ET.SubElement(st, 'Time')
|
||||
time.text = str(split)
|
||||
#</SplitTime>
|
||||
else:
|
||||
status = ET.SubElement(result, 'Status')
|
||||
status.text = n.status()
|
||||
else:
|
||||
status = ET.SubElement(result, 'Status')
|
||||
status.text = n.status()
|
||||
#</Result>
|
||||
#</PersonResult>
|
||||
#</Class>
|
||||
|
||||
tree.write('output.xml')
|
||||
tree.write('Resultater.xml')
|
||||
return ET.dump(root)
|
||||
|
Loading…
Reference in New Issue
Block a user