504 lines
27 KiB
HTML
504 lines
27 KiB
HTML
{% load static %}
|
|
|
|
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="keywords" content="">
|
|
<meta name="description" content="">
|
|
<meta name="author" content="Gregory Trullemans">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
|
|
<link rel="apple-touch-icon" sizes="76x76" href="{% static "img/apple-icon.png" %}">
|
|
<link rel="icon" type="image/png" href="{% static "img/favicon.png" %}">
|
|
|
|
<title>{{ gymnast.first_name }} {{ gymnast.last_name }}</title>
|
|
|
|
<!-- Fonts and icons -->
|
|
<link href="https://fonts.googleapis.com/css?family=Poppins:200,300,400,600,700,800" rel="stylesheet" />
|
|
<!-- Font Awesome Pro -->
|
|
<link href="{% static "css/gymnast_report.css" %}" rel="stylesheet" />
|
|
<link href="{% static "css/font_awesome_all_5.15.3.css" %}" rel="stylesheet" />
|
|
<link href="{% static "css/black-dashboard_report.css" %}" rel="stylesheet" />
|
|
</head>
|
|
|
|
<header class="white-content">
|
|
<div class="row">
|
|
<div id="header-left" class="col-7 text-12">
|
|
{{ SITE_TITLE }} - {{ CLUB_NAME }}<br />
|
|
{{ ADDRESS }} - {{ ZIP }} {{ CITY }}<br />
|
|
Season {{ season }}{% if period != "season" %} - {% if period == "week" %}week{% endif %} {{ period_value }}{% endif %} ({{ date_begin | date:"j N Y" }} - {{ date_end | date:"j N Y" }})
|
|
</div>
|
|
<div id="header-right" class="col-5 text-right text-12">
|
|
Head Coach : {{ HEAD_COACH }}<br />
|
|
{{ HEAD_COACH_EMAIL }}<br />
|
|
{{ today | date:"j F Y" }}
|
|
</div>
|
|
</div>
|
|
</header>
|
|
<br />
|
|
<body class="white-content">
|
|
<div class="row">
|
|
<div class="col-2">
|
|
<img src="{% static 'img/default-avatar.png' %}" class="profil_img" />
|
|
</div>
|
|
<div class="col-9" style="text-align: justify;">
|
|
<h3 class="title mb-0">{{ gymnast.first_name }} {{ gymnast.last_name }}</h3>
|
|
<p class="mb-3 text-muted">{{ gymnast.age }} years - {% if gymnast.orientation %}{{ gymnast.get_orientation_display }}{% else %}unknown{% endif %} twisting side.<br />
|
|
{{season_informations.number_of_hours_per_week}}h training ({{ season_informations.number_of_training_sessions_per_week }}/w) - {{ season_informations.number_of_s_and_c_hours_per_week}}h S&C ({{ season_informations.number_of_s_and_c_sessions_per_week }}/w)<br />
|
|
<b>{{ season_informations.get_category_display }}</b>
|
|
</p>
|
|
|
|
{% if gymnast.informations %}
|
|
{{ gymnast.to_markdown | safe }}
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-4">
|
|
<h4 class="mb-1">Physiological</h4>
|
|
{% if wellbeing_score.mean_mindstate_value or height_weight_value.mean_height_value %}
|
|
<table class="table">
|
|
<thead>
|
|
<th class="pt-0 pb-0"></th>
|
|
<th class="pt-0 pb-0 text-right">Min</th>
|
|
<th class="pt-0 pb-0 text-right">Average</th>
|
|
<th class="pt-0 pb-0 text-right">Max</th>
|
|
</thead>
|
|
{% if wellbeing_score %}
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b>Mind state</b></td>
|
|
<td class="pt-0 pb-0 text-right">{{ wellbeing_score.min_mindstate_value }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ wellbeing_score.mean_mindstate_value|stringformat:".1f" }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ wellbeing_score.max_mindstate_value }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b>Sleep</b></td>
|
|
<td class="pt-0 pb-0 text-right">{{ wellbeing_score.min_sleep_value }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ wellbeing_score.mean_sleep_value|stringformat:".1f" }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ wellbeing_score.max_sleep_value }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b>Stress</b></td>
|
|
<td class="pt-0 pb-0 text-right">{{ wellbeing_score.min_stress_value }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ wellbeing_score.mean_stress_value|stringformat:".1f" }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ wellbeing_score.max_stress_value }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b>Fatigue</b></td>
|
|
<td class="pt-0 pb-0 text-right">{{ wellbeing_score.min_fatigue_value }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ wellbeing_score.mean_fatigue_value|stringformat:".1f" }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ wellbeing_score.max_fatigue_value }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b>Muscle soreness</b></td>
|
|
<td class="pt-0 pb-0 text-right">{{ wellbeing_score.min_muscle_soreness_value }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ wellbeing_score.mean_muscle_soreness_value|stringformat:".1f" }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ wellbeing_score.max_muscle_soreness_value }}</td>
|
|
</tr>
|
|
{% endif %}
|
|
{% if height_weight_value.mean_height_value %}
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b>Height</b></td>
|
|
<td class="pt-0 pb-0 text-right">{{ height_weight_value.min_height_value }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ height_weight_value.mean_height_value|stringformat:".1f" }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ height_weight_value.max_height_value }}</td>
|
|
</tr>
|
|
{% endif %}
|
|
{% if height_weight_value.mean_weight_value %}
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b>Weight</b></td>
|
|
<td class="pt-0 pb-0 text-right">{{ height_weight_value.min_weight_value }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ height_weight_value.mean_weight_value|stringformat:".1f" }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ height_weight_value.max_weight_value }}</td>
|
|
</tr>
|
|
{% endif %}
|
|
</table>
|
|
{% else %}
|
|
No information for selected week.
|
|
{% endif %}
|
|
</div>
|
|
<div class="col-4">
|
|
<h4 class="mb-1">Intensity</h4>
|
|
{% if intensity_value.mean_intensity_time_value %}
|
|
<table class="table">
|
|
<thead>
|
|
<th class="pt-0 pb-0 text-right"></th>
|
|
<th class="pt-0 pb-0 text-right">Min</th>
|
|
<th class="pt-0 pb-0 text-right">Average</th>
|
|
<th class="pt-0 pb-0 text-right">Max</th>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b>Time</b></td>
|
|
<td class="pt-0 pb-0 text-right">{{ intensity_value.min_intensity_time_value }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ intensity_value.mean_intensity_time_value|stringformat:".0f" }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ intensity_value.max_intensity_time_value }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b>Diff.</b></td>
|
|
<td class="pt-0 pb-0 text-right">{{ intensity_value.min_intensity_difficulty_value }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ intensity_value.mean_intensity_difficulty_value|stringformat:".0f" }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ intensity_value.max_intensity_difficulty_value }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b># Skill</b></td>
|
|
<td class="pt-0 pb-0 text-right">{{ intensity_value.min_quantity_of_skill_value }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ intensity_value.mean_quantity_of_skill_value|stringformat:".0f" }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ intensity_value.max_quantity_of_skill_value }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b># Passes</b></td>
|
|
<td class="pt-0 pb-0 text-right">{{ intensity_value.min_number_of_passes_value }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ intensity_value.mean_number_of_passes_value|stringformat:".0f" }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ intensity_value.max_number_of_passes_value }}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
{% else %}
|
|
No intensty for selected period.
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
<br />
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<h4 class="mb-1">Time of flight</h4>
|
|
{% if number_of_tof_straightjump or number_of_tof_q1r1 or number_of_tof_q1r2 %}
|
|
<table class="table">
|
|
<thead>
|
|
<th class="pt-0 pb-0"></th>
|
|
<th class="pt-0 pb-0"></th>
|
|
<th class="pt-0 pb-0 text-right">Min</th>
|
|
<th class="pt-0 pb-0 text-right">Average</th>
|
|
<th class="pt-0 pb-0 text-right">Max</th>
|
|
</thead>
|
|
{% if best_tof_straightjump.mean_score %}
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b>10 |</b></td>
|
|
<td class="pt-0 pb-0">({{ number_of_tof_straightjump }})</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_tof_straightjump.min_tof }} ({{ best_tof_straightjump.min_score }})</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_tof_straightjump.mean_tof|stringformat:".3f" }} ({{ best_tof_straightjump.mean_score|stringformat:".3f" }})</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_tof_straightjump.max_tof }} ({{ best_tof_straightjump.max_score }})</td>
|
|
</tr>
|
|
{% endif %}
|
|
{% if best_tof_q1r1.mean_score %}
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b>Q1R1</b></td>
|
|
<td class="pt-0 pb-0">({{ number_of_tof_q1r1 }})</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_tof_q1r1.min_tof }} ({{ best_tof_q1r1.min_score }})</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_tof_q1r1.mean_tof|stringformat:".3f" }} ({{ best_tof_q1r1.mean_score|stringformat:".3f" }})</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_tof_q1r1.max_tof }} ({{ best_tof_q1r1.max_score }})</td>
|
|
</tr>
|
|
{% endif %}
|
|
{% if best_tof_q1r2.mean_score %}
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b>Q1R2</b></td>
|
|
<td class="pt-0 pb-0">({{ number_of_tof_q1r2 }})</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_tof_q1r2.min_tof }} ({{ best_tof_q1r2.min_score }})</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_tof_q1r2.mean_tof|stringformat:".3f" }} ({{ best_tof_q1r2.mean_score|stringformat:".3f" }})</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_tof_q1r2.max_tof }} ({{ best_tof_q1r2.max_score }})</td>
|
|
</tr>
|
|
{% endif %}
|
|
{% if best_tof_q2r1.mean_score %}
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b>Q2R1</b></td>
|
|
<td class="pt-0 pb-0">({{ number_of_tof_q2r1 }})</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_tof_q2r1.min_tof }} ({{ best_tof_q2r1.min_score }})</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_tof_q2r1.mean_tof|stringformat:".3f" }} ({{ best_tof_q2r1.mean_score|stringformat:".3f" }})</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_tof_q2r1.max_tof }} ({{ best_tof_q2r1.max_score }})</td>
|
|
</tr>
|
|
{% endif %}
|
|
{% if best_tof_sf.mean_score %}
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b>SF</b></td>
|
|
<td class="pt-0 pb-0">({{ number_of_tof_sf }})</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_tof_sf.min_tof }} ({{ best_tof_sf.min_score }})</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_tof_sf.mean_tof|stringformat:".3f" }} ({{ best_tof_sf.mean_score|stringformat:".3f" }})</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_tof_sf.max_tof }} ({{ best_tof_sf.max_score }})</td>
|
|
</tr>
|
|
{% endif %}
|
|
{% if best_tof_f.mean_score %}
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b>F</b></td>
|
|
<td class="pt-0 pb-0">({{ number_of_tof_f }})</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_tof_f.min_tof }} ({{ best_tof_f.min_score }})</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_tof_f.mean_tof|stringformat:".3f" }} ({{ best_tof_f.mean_score|stringformat:".3f" }})</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_tof_f.max_tof }} ({{ best_tof_f.max_score }})</td>
|
|
</tr>
|
|
{% endif %}
|
|
</table>
|
|
{% else %}
|
|
No chrono/ToF found.
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="col-6">
|
|
<h4 class="mb-1">Best Scores</h4>
|
|
{% if best_point_routine_1 or best_point_routine_2 or best_point_routine_3 or best_point_routine_4 or best_point_routine_5 %}
|
|
<table class="table">
|
|
<thead>
|
|
<th class="pt-0 pb-0"></th>
|
|
<th class="pt-0 pb-0 text-right">Exe.</th>
|
|
<th class="pt-0 pb-0 text-right">Diff.</th>
|
|
<th class="pt-0 pb-0 text-right">HD</th>
|
|
<th class="pt-0 pb-0 text-right">ToF</th>
|
|
<th class="pt-0 pb-0 text-right">Total</th>
|
|
<th class="pt-0 pb-0"></th>
|
|
</thead>
|
|
{% if best_point_routine_1 %}
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b>Q1R1</b></td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_1.point_execution }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_1.point_difficulty }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_1.point_horizontal_displacement }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_1.point_time_of_flight }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_1.total }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_1.event.date_begin|date:"j M Y" }}</td>
|
|
</tr>
|
|
{% endif %}
|
|
{% if best_point_routine_2 %}
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b>Q1R2</b></td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_2.point_execution }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_2.point_difficulty }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_2.point_horizontal_displacement }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_2.point_time_of_flight }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_2.total }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_2.event.date_begin|date:"j M Y" }}</td>
|
|
</tr>
|
|
{% endif %}
|
|
{% if best_point_routine_3 %}
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b>Q2R1</b></td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_3.point_execution }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_3.point_difficulty }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_3.point_horizontal_displacement }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_3.point_time_of_flight }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_3.total }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_3.event.date_begin|date:"j M Y" }}</td>
|
|
</tr>
|
|
{% endif %}
|
|
{% if best_point_routine_4 %}
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b>SF</b></td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_4.point_execution }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_4.point_difficulty }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_4.point_horizontal_displacement }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_4.point_time_of_flight }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_4.total }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_4.event.date_begin|date:"j M Y" }}</td>
|
|
</tr>
|
|
{% endif %}
|
|
{% if best_point_routine_5 %}
|
|
<tr>
|
|
<td class="pt-0 pb-0"><b>F</b></td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_5.point_execution }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_5.point_difficulty }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_5.point_horizontal_displacement }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_5.point_time_of_flight }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_5.total }}</td>
|
|
<td class="pt-0 pb-0 text-right">{{ best_point_routine_5.event.date_begin|date:"j M Y" }}</td>
|
|
</tr>
|
|
{% endif %}
|
|
</table>
|
|
{% else %}
|
|
No scores during the selected week.
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
<br />
|
|
<div class="row" id="learned_skill_and_plan">
|
|
<div class="col-6">
|
|
<h4 class="mb-1">Last learned skills</h4>
|
|
{% if learned_skills %}
|
|
<table class="table">
|
|
{% for learned_skill in learned_skills %}
|
|
<tr>
|
|
<td class="pt-1 pb-0">{{ learned_skill.skill.short_label }}</td>
|
|
<td class="pt-1 pb-0">({{ learned_skill.get_learning_step_display }})</td>
|
|
<td class="pt-1 pb-0">{{ learned_skill.skill.notation }}</td>
|
|
<td class="pt-1 pb-0">{{ learned_skill.date|date:"j M Y" }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</table>
|
|
{% else %}
|
|
No new skill learned on the selected week.
|
|
{% endif %}
|
|
</div>
|
|
<div class="col-6">
|
|
<h4 class="mb-1">Objectives</h4>
|
|
{% if plan_list %}
|
|
<table class="table">
|
|
{% for plan in plan_list %}
|
|
<tr>
|
|
<td class="pt-1 pb-0">{{ plan.educative.short_label }}</td>
|
|
<td class="pt-1 pb-0">({{ plan.get_learning_step_display }})</td>
|
|
<td class="pt-1 pb-0">{{ plan.skill.notation }}</td>
|
|
<td class="pt-1 pb-0">{{ plan.date | date:"j M Y" }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</table>
|
|
{% else %}
|
|
No objective for the selected week.
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
<br />
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<h4 class="mb-1">Next Events</h4>
|
|
{% if next_event_list %}
|
|
<table class="table">
|
|
{% for event in next_event_list %}
|
|
<tr>
|
|
<td class="pt-1 pb-0">{{ event.date_begin | date:"j M Y" }}</td>
|
|
<td class="pt-1 pb-0">in {{ event.number_of_week_from_today }} week(s)</td>
|
|
<td class="pt-1 pb-0">{{ event.name }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</table>
|
|
{% else %}
|
|
No events on the selected week.
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
<br />
|
|
<div class="row" id="note">
|
|
<div class="col-12">
|
|
<h4 class="mb-1">Notes</h4>
|
|
{% if notes %}
|
|
{% for note in notes %}
|
|
{{ note.to_markdown | safe }}
|
|
{% endfor %}
|
|
{% else %}
|
|
No note for the selected week.
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
<br />
|
|
<div class="row" id="Routines" style="break-before: page;">
|
|
{% if q1r1 or q1r2 or q2r1 or sfinal or final %}
|
|
<div class="col-12">
|
|
<h4 class="mb-1">Routines</h4>
|
|
</div>
|
|
<div class="col-2">
|
|
<h5>Q1 routine 1</h5>
|
|
{% if q1r1 %}
|
|
<table class="table">
|
|
{% for routine_skill in q1r1.routine.skill_links.all %}
|
|
<tr>
|
|
<td class="pt-1 pb-0">{{ routine_skill.skill.notation }}</td>
|
|
<td class="pt-1 pb-0 text-right">{{ routine_skill.skill.difficulty }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
<tr>
|
|
<td class="pt-1 pb-0"></td>
|
|
<td class="pt-1 pb-0 text-right"><b>{{ q1r1.routine.difficulty }}</b></td>
|
|
</tr>
|
|
</table>
|
|
{% else %}
|
|
No routine defined.
|
|
{% endif %}
|
|
{% if q1r1_done_stat.total_succeeded %}
|
|
{{ q1r1_done_stat.total_succeeded }} | {{ q1r1_done_stat.total_try }} ({% widthratio q1r1_done_stat.total_succeeded q1r1_done_stat.total_try 100 %}%)
|
|
{% endif %}
|
|
</div>
|
|
<div class="col-2">
|
|
<h5>Q1 routine 2</h5>
|
|
{% if q1r2 %}
|
|
<table class="table">
|
|
{% for routine_skill in q1r2.routine.skill_links.all %}
|
|
<tr>
|
|
<td class="pt-1 pb-0">{{ routine_skill.skill.notation }}</td>
|
|
<td class="pt-1 pb-0 text-right">{{ routine_skill.skill.difficulty }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
<tr>
|
|
<td class="pt-1 pb-0"></td>
|
|
<td class="pt-1 pb-0 text-right"><b>{{ q1r2.routine.difficulty }}</b></td>
|
|
</tr>
|
|
</table>
|
|
{% else %}
|
|
No routine defined.
|
|
{% endif %}
|
|
{% if q1r2_done_stat.total_succeeded %}
|
|
{{ q1r2_done_stat.total_succeeded }} | {{ q1r2_done_stat.total_try }} ({% widthratio q1r2_done_stat.total_succeeded q1r2_done_stat.total_try 100 %}%)
|
|
{% endif %}
|
|
</div>
|
|
<div class="col-2">
|
|
<h5>Q2 routine 1</h5>
|
|
{% if q2r1 %}
|
|
<table class="table">
|
|
{% for routine_skill in q2r1.routine.skill_links.all %}
|
|
<tr>
|
|
<td class="pt-1 pb-0">{{ routine_skill.skill.notation }}</td>
|
|
<td class="pt-1 pb-0 text-right">{{ routine_skill.skill.difficulty }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
<tr>
|
|
<td class="pt-1 pb-0"></td>
|
|
<td class="pt-1 pb-0 text-right"><b>{{ q2r1.routine.difficulty }}</b></td>
|
|
</tr>
|
|
</table>
|
|
{% else %}
|
|
No routine defined.
|
|
{% endif %}
|
|
{% if q2r1_done_stat.total_succeeded %}
|
|
{{ q2r1_done_stat.total_succeeded }} | {{ q2r1_done_stat.total_try }} ({% widthratio q2r1_done_stat.total_succeeded q2r1_done_stat.total_try 100 %}%)
|
|
{% endif %}
|
|
</div>
|
|
<div class="col-2">
|
|
<h5>Semi-final routine</h5>
|
|
{% if sfinal %}
|
|
<table class="table">
|
|
{% for routine_skill in sfinal.routine.skill_links.all %}
|
|
<tr>
|
|
<td class="pt-1 pb-0">{{ routine_skill.skill.notation }}</td>
|
|
<td class="pt-1 pb-0 text-right">{{ routine_skill.skill.difficulty }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
<tr>
|
|
<td class="pt-1 pb-0"></td>
|
|
<td class="pt-1 pb-0 text-right"><b>{{ sfinal.routine.difficulty }}</b></td>
|
|
</tr>
|
|
</table>
|
|
{% else %}
|
|
No routine defined.
|
|
{% endif %}
|
|
{% if sfinal_done_stat.total_succeeded %}
|
|
{{ sfinal_done_stat.total_succeeded }} | {{ sfinal_done_stat.total_try }} ({% widthratio sfinal_done_stat.total_succeeded sfinal_done_stat.total_try 100 %}%)
|
|
{% endif %}
|
|
</div>
|
|
<div class="col-2">
|
|
<h5>Final routine</h5>
|
|
{% if final %}
|
|
<table class="table">
|
|
{% for routine_skill in final.routine.skill_links.all %}
|
|
<tr>
|
|
<td class="pt-1 pb-0">{{ routine_skill.skill.notation }}</td>
|
|
<td class="pt-1 pb-0 text-right">{{ routine_skill.skill.difficulty }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
<tr>
|
|
<td class="pt-1 pb-0"></td>
|
|
<td class="pt-1 pb-0 text-right"><b>{{ final.routine.difficulty }}</b></td>
|
|
</tr>
|
|
</table>
|
|
{% else %}
|
|
No routine defined.
|
|
{% endif %}
|
|
{% if final_done_stat.total_succeeded %}
|
|
{{ final_done_stat.total_succeeded }} | {{ final_done_stat.total_try }} ({% widthratio final_done_stat.total_succeeded final_done_stat.total_try 100 %}%)
|
|
{% endif %}
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</body>
|
|
|
|
</html>
|