128 lines
4.0 KiB
HTML
128 lines
4.0 KiB
HTML
{% extends "base.html" %}
|
|
{% load staticfiles %}
|
|
{% load rowerfilters %}
|
|
|
|
{% block title %}Workout Statistics{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="grid_12 alpha">
|
|
<h1>Workout Statistics</h1>
|
|
<div class="grid_2 alpha">
|
|
<p>
|
|
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/edit">Edit Workout</a>
|
|
</p>
|
|
</div>
|
|
<div class="grid_2">
|
|
<p>
|
|
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/export">Export</a>
|
|
</p>
|
|
|
|
</div>
|
|
<div class="grid_2">
|
|
<p>
|
|
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/advanced">Advanced</a>
|
|
</p>
|
|
</div>
|
|
<div class="grid_2 omega suffix_4 tooltip">
|
|
<form enctype="multipart/form-data" action="{{ formloc }}" method="post">
|
|
{% csrf_token %}
|
|
{% if workstrokesonly == True %}
|
|
<input class="grid_2 alpha button blue small" type="hidden" name="workstrokesonly" value="False">
|
|
<input class="grid_2 alpha button blue small" value="Include Rest Strokes" type="Submit">
|
|
{% else %}
|
|
<input class="grid_2 alpha button blue small" type="hidden" name="workstrokesonly" value="True">
|
|
<input class="grid_2 alpha button blue small" value="Remove Rest Strokes" type="Submit">
|
|
{% endif %}
|
|
</form>
|
|
<span class="tooltiptext">If your data source allows, this will show or hide strokes taken during rest intervals.</span>
|
|
</div>
|
|
</div>
|
|
<div class="grid_6 alpha">
|
|
<h2>Stroke Rate</h2>
|
|
<table width="100%" class="listtable">
|
|
<thead>
|
|
<tr>
|
|
<th>Metric</th>
|
|
<th>Value</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>Mean</td><td>{{ stats.spm.mean|floatformat:-2 }}</td>
|
|
</tr><tr>
|
|
<td>Minimum</td><td>{{ stats.spm.min|floatformat:-2 }}</td>
|
|
</tr><tr>
|
|
<td>25%</td><td>{{ stats.spm.firstq|floatformat:-2 }}</td>
|
|
</tr><tr>
|
|
<td>Median</td><td>{{ stats.spm.median|floatformat:-2 }}</td>
|
|
</tr><tr>
|
|
<td>75%</td><td>{{ stats.spm.thirdq|floatformat:-2 }}</td>
|
|
</tr><tr>
|
|
<td>Maximum</td><td>{{ stats.spm.max|floatformat:-2 }}</td>
|
|
</tr><tr>
|
|
<td>Standard Deviation</td><td>{{ stats.spm.std|floatformat:-2 }}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="grid_6 alpha">
|
|
<h2>Heart Rate</h2>
|
|
<table width="100%" class="listtable">
|
|
<thead>
|
|
<tr>
|
|
<th>Metric</th>
|
|
<th>Value</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>Mean</td><td>{{ stats.hr.mean|floatformat:-2 }}</td>
|
|
</tr><tr>
|
|
<td>Minimum</td><td>{{ stats.hr.min|floatformat:-2 }}</td>
|
|
</tr><tr>
|
|
<td>25%</td><td>{{ stats.hr.firstq|floatformat:-2 }}</td>
|
|
</tr><tr>
|
|
<td>Median</td><td>{{ stats.hr.median|floatformat:-2 }}</td>
|
|
</tr><tr>
|
|
<td>75%</td><td>{{ stats.hr.thirdq|floatformat:-2 }}</td>
|
|
</tr><tr>
|
|
<td>Maximum</td><td>{{ stats.hr.max|floatformat:-2 }}</td>
|
|
</tr><tr>
|
|
<td>Standard Deviation</td><td>{{ stats.hr.std|floatformat:-2 }}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="grid_6 omega">
|
|
<div class="grid_6 alpha">
|
|
<h2>Power</h2>
|
|
<table width="100%" class="listtable">
|
|
<thead>
|
|
<tr>
|
|
<th>Metric</th>
|
|
<th>Value</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>Mean</td><td>{{ stats.power.mean|floatformat:-2 }}</td>
|
|
</tr><tr>
|
|
<td>Minimum</td><td>{{ stats.power.min|floatformat:-2 }}</td>
|
|
</tr><tr>
|
|
<td>25%</td><td>{{ stats.power.firstq|floatformat:-2 }}</td>
|
|
</tr><tr>
|
|
<td>Median</td><td>{{ stats.power.median|floatformat:-2 }}</td>
|
|
</tr><tr>
|
|
<td>75%</td><td>{{ stats.power.thirdq|floatformat:-2 }}</td>
|
|
</tr><tr>
|
|
<td>Maximum</td><td>{{ stats.power.max|floatformat:-2 }}</td>
|
|
</tr><tr>
|
|
<td>Standard Deviation</td><td>{{ stats.power.std|floatformat:-2 }}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
{% endblock %}
|