RWC sjekk for diska løpere
This commit is contained in:
		
							parent
							
								
									bbcc332166
								
							
						
					
					
						commit
						71020bc340
					
				| @ -110,7 +110,7 @@ def run(port='/dev/ttyUSB0', project_dir='./', xml_path='./output/'): | |||||||
|                     try: |                     try: | ||||||
|                         print(otime.CardDump.from_mtr_bytes(message)) |                         print(otime.CardDump.from_mtr_bytes(message)) | ||||||
|                         print(runner_info(event, card_dump)) |                         print(runner_info(event, card_dump)) | ||||||
|                     except ValueError as error: |                     except Exception as error: | ||||||
|                         print(error) |                         print(error) | ||||||
|                 else: |                 else: | ||||||
|                     card_dump = otime.CardDump.from_mtr_bytes(message) |                     card_dump = otime.CardDump.from_mtr_bytes(message) | ||||||
| @ -155,7 +155,7 @@ def gen(project_dir='./', xml_path='./output/'): | |||||||
| def runner_info(event, card_dump): | def runner_info(event, card_dump): | ||||||
|     runner = next((i for i in event.runners if str(i.card_id) == str(card_dump.card)), None) |     runner = next((i for i in event.runners if str(i.card_id) == str(card_dump.card)), None) | ||||||
|     if runner is None: |     if runner is None: | ||||||
|         return card_dump |         return f'[orange_red1]No runner with ecard {card_dump.card}! It matches these courses: {otime.find_courses_matching_controls(card_dump.controls, event.courses)}[/orange_red1] {card_dump}' | ||||||
|     result = event.get_runner_result(runner.id) |     result = event.get_runner_result(runner.id) | ||||||
|     if result is None: |     if result is None: | ||||||
|         return '🧐 Dette skal ikke skje...' |         return '🧐 Dette skal ikke skje...' | ||||||
|  | |||||||
| @ -46,6 +46,9 @@ def event_from_yaml_and_csv(config_path, mtr_path, csv_path): | |||||||
|                 i[7] = i[7] |                 i[7] = i[7] | ||||||
|             else: |             else: | ||||||
|                 i[7] = None |                 i[7] = None | ||||||
|  |             # Sjekk om brikkenummer er tomt | ||||||
|  |             if i[5] == '': | ||||||
|  |                 i[5] = 0 | ||||||
|         runners = [otime.Runner(id=i[0], status_override=i[1], first=i[2][0], last=i[2][1].strip(), o_class=i[3], club=i[4], card_id=int(i[5]), fork=int(i[6]), start_time=i[7]) for i in data] |         runners = [otime.Runner(id=i[0], status_override=i[1], first=i[2][0], last=i[2][1].strip(), o_class=i[3], club=i[4], card_id=int(i[5]), fork=int(i[6]), start_time=i[7]) for i in data] | ||||||
|     event.card_dumps = card_dumps |     event.card_dumps = card_dumps | ||||||
|     event.runners = runners |     event.runners = runners | ||||||
|  | |||||||
| @ -404,7 +404,8 @@ def produce_class_result(event, o_class_name) -> ClassResult: | |||||||
|     results += [RunnerResult(i.id, i.first, i.last, event.get_runner_status(i.id), 0, event.get_runner_time(i.id), event.get_runner_splits(i.id), |     results += [RunnerResult(i.id, i.first, i.last, event.get_runner_status(i.id), 0, event.get_runner_time(i.id), event.get_runner_splits(i.id), | ||||||
|                 event.get_runner_end_clock(i.id), i.club, 0, i.country, i.card_id, i.o_class, event.get_runner_controls(i.id),  |                 event.get_runner_end_clock(i.id), i.club, 0, i.country, i.card_id, i.o_class, event.get_runner_controls(i.id),  | ||||||
|                 start_time=event.get_card_dump(i.card_id).s_time, |                 start_time=event.get_card_dump(i.card_id).s_time, | ||||||
|                 missed_controls=find_missed_controls(event.get_runner_controls(i.id), event.get_course(o_class.course).codes[i.fork]))  |                 missed_controls=find_missed_controls(event.get_runner_controls(i.id), event.get_course(o_class.course).codes[i.fork]), | ||||||
|  |                 ran_other_course=find_courses_matching_controls(event.get_card_dump(i.card_id).controls, event.courses))  | ||||||
|                 for i in dsq_runners] |                 for i in dsq_runners] | ||||||
|     results += [RunnerResult(i.id, i.first, i.last, event.get_runner_status(i.id), 0, event.get_runner_time(i.id), event.get_runner_splits(i.id), |     results += [RunnerResult(i.id, i.first, i.last, event.get_runner_status(i.id), 0, event.get_runner_time(i.id), event.get_runner_splits(i.id), | ||||||
|                 event.get_runner_end_clock(i.id), i.club, 0, i.country, i.card_id, i.o_class, event.get_runner_controls(i.id)) for i in other_runners] |                 event.get_runner_end_clock(i.id), i.club, 0, i.country, i.card_id, i.o_class, event.get_runner_controls(i.id)) for i in other_runners] | ||||||
| @ -461,4 +462,12 @@ def contains(small, big): | |||||||
|         return False |         return False | ||||||
| 
 | 
 | ||||||
| def find_missed_controls(punches, codes): | def find_missed_controls(punches, codes): | ||||||
|         return [i for i in codes if i not in punches] |         return [i for i in codes if i not in punches] | ||||||
|  | 
 | ||||||
|  | def find_courses_matching_controls(controls, courses): | ||||||
|  |     matches = [] | ||||||
|  |     for i in courses: | ||||||
|  |         for fork in i.codes: | ||||||
|  |             if contains(fork, controls): | ||||||
|  |                 matches.append(i.name) | ||||||
|  |     return matches | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user