260 lines
8.9 KiB
HTML
260 lines
8.9 KiB
HTML
{% extends "base.html" %}
|
|
{% load staticfiles %}
|
|
{% load rowerfilters %}
|
|
|
|
{% block title %}Rowsandall Training Plans{% endblock %}
|
|
|
|
{% block scripts %}
|
|
|
|
{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="grid_12">
|
|
<div class="grid_12 alpha">
|
|
<h1>Training Plan - {{ plan.name }}</h1>
|
|
<p>This plan starts on {{ plan.startdate }} and ends on {{ plan.enddate }}. The training plan target is: {{ plan.target.name }} on {{ plan.target.date }}.</p>
|
|
<p><a href="/rowers/editplan/{{ plan.id }}">Edit the plan</a></p>
|
|
</div>
|
|
<div class="grid_4 alpha">
|
|
<h2>Macro Cycles</h2>
|
|
</div>
|
|
<div class="grid_4 alpha">
|
|
<h2>Meso Cycles</h2>
|
|
</div>
|
|
<div class="grid_4">
|
|
<h2>Micro Cycles</h2>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Container for plan -->
|
|
<div class="grid_12 alpha">
|
|
{% now "Y-m-d" as todays_date %}
|
|
<!-- Macro Cycle for loop -->
|
|
{% for key,macrocycle in cycles.items %}
|
|
<!-- Container for Macro cycle -->
|
|
<div class="grid_12 alpha">
|
|
<!-- Macro Cycle -->
|
|
{% if macrocycle.0.type == 'filler' %}
|
|
<div class="grid_4 filler alpha">
|
|
{% else %}
|
|
<div class="grid_4 palegreen alpha">
|
|
{% endif %}
|
|
<!-- Padding -->
|
|
<div class="padded">
|
|
<table width="100%">
|
|
<tr>
|
|
<th colspan="4">
|
|
{{ macrocycle.0.name }} ({{ macrocycle.0.startdate }} - {{ macrocycle.0.enddate }})
|
|
</th>
|
|
</tr>
|
|
{% if macrocycle.0.type == 'userdefined' %}
|
|
<tr>
|
|
<td></td>
|
|
<td>dist (m)</td>
|
|
<td>t (min)</td>
|
|
<td>rScore</td>
|
|
<td>TRIMP</td>
|
|
</tr>
|
|
<tr>
|
|
<td>plan</td>
|
|
<td>{{ macrocycle.0.plandistance }}</td>
|
|
<td>{{ macrocycle.0.plantime }}</td>
|
|
<td>{{ maccrocycle.0.planrscore }}</td>
|
|
<td>{{ macrocycle.0.plantrimp }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td>actual</td>
|
|
<td>{{ macrocycle.0.actualdistance }}</td>
|
|
<td>{{ macrocycle.0.actualtime }}</td>
|
|
<td>{{ macrocycle.0.actualrscore }}</td>
|
|
<td>{{ macrocycle.0.actualtrimp }}</td>
|
|
</tr>
|
|
{% endif %}
|
|
{% if todays_date <= macrocycle.0.enddate|date:"Y-m-d" %}
|
|
<tr>
|
|
<td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="4">
|
|
<a href="/rowers/macrocycle/{{ macrocycle.0.id }}">edit</a>
|
|
/
|
|
<a href="/rowers/deletemacrocycle/{{ macrocycle.0.id }}">delete</a>
|
|
/
|
|
<a href='/rowers/sessions/{{ macrocycle.0.startdate|date:"Y-m-d" }}/{{ macrocycle.0.enddate|date:"Y-m-d" }}'>sessions</a>
|
|
</td>
|
|
</tr>
|
|
{% endif %}
|
|
</table>
|
|
</div>
|
|
<!-- End Padding -->
|
|
</div>
|
|
<!-- End Macro Cycle -->
|
|
<!-- Meso Cycle Container -->
|
|
<div class="grid_8 alpha">
|
|
<!-- Meso Cycle For Loop -->
|
|
{% for key, mesocycle in macrocycle.1.items %}
|
|
<!-- Meso Cycle plus its Micro Cycles -->
|
|
<div class="grid_8 alpha">
|
|
<!-- Meso Cycle -->
|
|
{% if mesocycle.0.type == 'filler' %}
|
|
<div class="grid_4 filler alpha">
|
|
{% else %}
|
|
<div class="grid_4 lightsalmon alpha">
|
|
{% endif %}
|
|
<!-- Meso Cycle Padding -->
|
|
<div class="padded alpha">
|
|
<table width="100%">
|
|
<tr>
|
|
<th colspan="4">
|
|
{{ mesocycle.0.name }} ({{ mesocycle.0.startdate }} - {{ mesocycle.0.enddate }})
|
|
</th>
|
|
</tr>
|
|
{% if mesocycle.0.type == 'userdefined' %}
|
|
<tr>
|
|
<td></td>
|
|
<td>dist (m)</td>
|
|
<td>t (min)</td>
|
|
<td>rScore</td>
|
|
<td>TRIMP</td>
|
|
</tr>
|
|
<tr>
|
|
<td>plan</td>
|
|
<td>{{ mesocycle.0.plandistance }}</td>
|
|
<td>{{ mesocycle.0.plantime }}</td>
|
|
<td>{{ mesocycle.0.planrscore }}</td>
|
|
<td>{{ mesocycle.0.plantrimp }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td>actual</td>
|
|
<td>{{ mesocycle.0.actualdistance }}</td>
|
|
<td>{{ mesocycle.0.actualtime }}</td>
|
|
<td>{{ mesocycle.0.actualrscore }}</td>
|
|
<td>{{ mesocycle.0.actualtrimp }}</td>
|
|
</tr>
|
|
{% endif %}
|
|
{% if todays_date <= mesocycle.0.enddate|date:"Y-m-d" %}
|
|
{% if mesocycle.0.plan.type == 'userdefined' %}
|
|
<tr>
|
|
<td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="4">
|
|
<a href="/rowers/mesocycle/{{ mesocycle.0.id }}">edit</a>
|
|
/
|
|
<a href="/rowers/deletemesocycle/{{ mesocycle.0.id }}">delete</a>
|
|
/
|
|
<a href='/rowers/sessions/{{ mesocycle.0.startdate|date:"Y-m-d" }}/{{ mesocycle.0.enddate|date:"Y-m-d" }}'>sessions</a>
|
|
</td>
|
|
</tr>
|
|
{% endif %}
|
|
{% endif %}
|
|
</table>
|
|
</div>
|
|
<!-- End Meso Cycle Padding -->
|
|
</div>
|
|
<!-- End Meso Cycle -->
|
|
<!-- Container for Micro Cycle -->
|
|
<div class="grid_4 omega">
|
|
<!-- Micro Cycle For Loop -->
|
|
{% for microcycle in mesocycle.1 %}
|
|
<!-- Micro Cycle -->
|
|
{% if microcycle.type == 'filler' %}
|
|
<div class="grid_4 filler alpha">
|
|
{% else %}
|
|
<div class="grid_4 paleblue alpha">
|
|
{% endif %}
|
|
<!-- Micro Cycle Padding -->
|
|
<div class="padded">
|
|
<table width="100%">
|
|
<tr>
|
|
<th colspan="4">
|
|
{{ microcycle.name }} ({{ microcycle.startdate }} - {{ microcycle.enddate }})
|
|
</th>
|
|
</tr>
|
|
{% if microcycle.type == 'userdefined' %}
|
|
<tr>
|
|
<td></td>
|
|
<td>dist (m)</td>
|
|
<td>t (min)</td>
|
|
<td>rScore</td>
|
|
<td>TRIMP</td>
|
|
</tr>
|
|
<tr>
|
|
<td>plan</td>
|
|
<td>{{ microcycle.plandistance }}</td>
|
|
<td>{{ microcycle.plantime }}</td>
|
|
<td>{{ microcycle.planrscore }}</td>
|
|
<td>{{ microcycle.plantrimp }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td>actual</td>
|
|
<td>{{ microcycle.actualdistance }}</td>
|
|
<td>{{ microcycle.actualtime }}</td>
|
|
<td>{{ microcycle.actualrscore }}</td>
|
|
<td>{{ microcycle.actualtrimp }}</td>
|
|
</tr>
|
|
{% endif %}
|
|
{% if todays_date <= microcycle.enddate|date:"Y-m-d" %}
|
|
{% if microcycle.plan.type == 'userdefined' %}
|
|
<tr>
|
|
<td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="4">
|
|
<a href="/rowers/microcycle/{{ microcycle.id }}">edit</a>
|
|
/
|
|
<a href="/rowers/deletemicrocycle/{{ microcycle.id }}">delete</a>
|
|
/
|
|
<a href='/rowers/sessions/{{ microcycle.startdate|date:"Y-m-d" }}/{{ microcycle.enddate|date:"Y-m-d" }}'>sessions</a>
|
|
</td>
|
|
</tr>
|
|
{% endif %}
|
|
{% endif %}
|
|
</table>
|
|
</div>
|
|
<!-- End Micro Cycle Padding -->
|
|
</div>
|
|
<!-- End Micro Cycle -->
|
|
{% endfor %}
|
|
<!-- End Micro Cycle For Loop -->
|
|
</div>
|
|
<!-- End Container for Micro Cycle -->
|
|
</div>
|
|
<!-- Meso Cycle plus its Micro Cycles -->
|
|
{% endfor %}
|
|
<!-- End Meso Cycle For Loop -->
|
|
</div>
|
|
<!-- End Meso Cycle Container -->
|
|
</div>
|
|
<!-- End Container for Macro Cycle -->
|
|
{% endfor %}
|
|
<!-- End Macro Cycle for loop -->
|
|
</div>
|
|
<!-- End Container for plan -->
|
|
<div class="grid_12">
|
|
<p>Click on the plan cycles to edit their names, start and end dates.
|
|
The gray "filler"
|
|
cycles are generated, adjusted and deleted automatically to
|
|
ensure the entire plan
|
|
duration is covered with non-overlapping cycles.
|
|
Once you edit a filler cycle, it become a user-defined
|
|
cycle, which cannot be deleted
|
|
by the system.</p>
|
|
<p>Filler cycles which have a filler cycle as a parent cannot be edited
|
|
or deleted. You have to edit the parent cycle first. The reason is
|
|
that children of filler cycles are not safe. They are deleted when
|
|
their parent is deleted by the system.</p>
|
|
<p>Click on "Sessions" in the cycle of your interest to see details
|
|
of the individual training sessions planned for this period.</p>
|
|
<p>A good way to organize the plan is to think of micro
|
|
cycles as training weeks. Macro cycles
|
|
are typically used to address specific phases of preparation
|
|
and to indicate the racing
|
|
season and may span several months.
|
|
Meso cycles can be used to group sequences of three to five
|
|
light, medium and
|
|
hard weeks. It is recommended to work from left to right,
|
|
starting with the macro cycles.</p>
|
|
</div>
|
|
{% endblock %}
|