$def with (event, class_results) $def format_rank(rank, not_competing: bool) -> str: $if rank is not None: $return str(rank) $elif not_competing: $return 'NC' $else: $return '' $def format_time(time: int, status: ResultStatus) -> str: $if status == ResultStatus.OK and time is not None: $return minutes_seconds(time) $else: $return '' $def format_points(points: float, status: ResultStatus) -> str: $if status == ResultStatus.OK and points is not None: $return '{:.2f}'.format(points) $else: $return '' $def format_time_total(time: int, status: ResultStatus, start_time=None) -> str: $if status == ResultStatus.OK: $return minutes_seconds(time) $elif status == ResultStatus.INACTIVE and start_time is not None: $return 'Start at ' + start_time.strftime('%H:%M:%S') $else: $return MAP_STATUS[status] $def format_points_total(points: float, status: ResultStatus, start_time=None) -> str: $if status == ResultStatus.OK: $return '{:.2f}'.format(points) $elif status == ResultStatus.INACTIVE and start_time is not None: $return 'Start at ' + start_time.strftime('%H:%M:%S') $else: $return MAP_STATUS[status] $def voided_legs(ranked_results): $if ranked_results and ranked_results[0].entry.result is not None: $ voided_legs = ranked_results[0].entry.result.voided_legs() $if voided_legs: $return ' (Voided legs: ' + ', '.join(voided_legs) + ')' $else: $return '' $def f(value) -> str: $return value if value is not None else ''
Event name: $(event.name if event is not None else '')
Event date: $(event.date.isoformat() if event is not None else '')
$ columns = build_columns(class_results=class_results) $for class_, ranked_results in class_results: $if not ranked_results: $continue $if not columns: $else: $if 'factor' in columns: $if class_.params.otype == 'score': $else: $if 'penalties_controls' in columns: $if 'penalties_overtime' in columns: $for ranked_result in ranked_results: $ entry = ranked_result.entry $ result = entry.result $if not columns: $else: $if 'factor' in columns: $if class_.params.otype == 'score': $else: $if 'penalties_controls' in columns: $if 'penalties_overtime' in columns:

$class_.name$voided_legs(ranked_results)

Rank Name ClubTimeHandicapRun time Score controls Score overtime Total scoreRun timePenalty controlsPenalty overtime Total time
$format_rank(ranked_result.rank, entry.not_competing) $f(entry.first_name) $f(entry.last_name) $f(entry.club_name)$format_time_total(result.time, result.status, entry.start.start_time)$'{:1.4f}'.format(result.extensions.get('factor', 1))$format_time(result.time, result.status) $format_points(result.extensions.get('score_controls', None), result.status) $format_points(result.extensions.get('score_overtime', None), result.status) $format_points_total(result.extensions.get('score', None), result.status, entry.start.start_time)$format_time(result.extensions.get('running_time', None), result.status)$format_time(result.extensions.get('penalties_controls', None), result.status)$format_time(result.extensions.get('penalties_overtime', None), result.status) $format_time_total(result.time, result.status, entry.start.start_time)