Private
Public Access
1
0

date selector works on plannedsessions

This commit is contained in:
Sander Roosendaal
2018-11-09 12:57:38 +01:00
parent a376c079c7
commit 4955ee8692
7 changed files with 194 additions and 220 deletions

View File

@@ -1040,6 +1040,7 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower',
barchart=True, otwpower=True, empower=True, inboard=inboard)
rscore,normp = workout_rscore(w)
trimp,hrtss = workout_trimp(w)
isbreakthrough = False
ishard = False

View File

@@ -853,6 +853,9 @@ def update_agegroup_db(age,sex,weightcategory,wcdurations,wcpower,
delete_agegroup_db(age,sex,weightcategory,debug=debug)
wcdurations = [None if type(y) is float and np.isnan(y) else y for y in wcdurations]
wcpower = [None if type(y) is float and np.isnan(y) else y for y in wcpower]
df = pd.DataFrame(
{
'duration':wcdurations,

View File

@@ -1,3 +1,4 @@
from django.utils import timezone
from rowers.models import Workout, PowerTimeFitnessMetric, Rower
import datetime

View File

@@ -30,6 +30,7 @@ import numpy as np
import dataprep
import courses
import iso8601
from iso8601 import ParseError
from rowers.tasks import handle_check_race_course
def get_todays_micro(plan,thedate=date.today()):
@@ -411,7 +412,7 @@ def get_dates_timeperiod(request,startdatestring='',enddatestring=''):
startdatestring = request.GET.get('startdate')
enddatestring = request.GET.get('enddate')
if startdate and enddate:
if startdatestring and enddatestring:
startdate = dt.datetime.strptime(startdatestring,'%Y-%m-%d').date()
enddate = dt.datetime.strptime(enddatestring,'%Y-%m-%d').date()
return startdate,enddate

View File

@@ -82,62 +82,6 @@
<p>&nbsp;</p>
<ul class="cd-accordion-menu animated">
<li class="has-children" id="cycles">
<input type="checkbox" name="cycle-selector" id="cycle-selector">
<label for="cycle-selector"><i class="far fa-calendar-alt fa-fw"></i>&nbsp;Select Time Period</label>
<ul>
<li class="has-children" id="cycles-this">
<input type="checkbox" name="cycle-this" id="cycle-this">
<label for="cycle-this">This</label>
<ul>
<li>
<a href = {{ request.path|timeurl:"thisweek" }}>
Week
</a>
</li>
<li>
<a href = {{ request.path|timeurl:"thismonth" }}>
Month
</a>
</li>
</ul>
</li>
<li class="has-children" id="cycles-next">
<input type="checkbox" name="cycle-next" id="cycle-next">
<label for="cycle-next">Next</label>
<ul>
<li>
<a href = {{ request.path|timeurl:"nextweek" }}>
Week
</a>
</li>
<li>
<a href = {{ request.path|timeurl:"nextmonth" }}>
Month
</a>
</li>
</ul>
</li>
<li class="has-children" id="cycles-Last">
<input type="checkbox" name="cycle-Last" id="cycle-Last">
<label for="cycle-Last">Last</label>
<ul>
<li>
<a href = {{ request.path|timeurl:"lastweek" }}>
Week
</a>
</li>
<li>
<a href = {{ request.path|timeurl:"lastmonth" }}>
Month
</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
{% if user.is_authenticated and user|is_manager %}

View File

@@ -8,170 +8,185 @@
<h1>Planned Sessions for {{ rower.user.first_name }} {{ rower.user.last_name }}</h1>
{% if plannedsessions %}
<p>
Click on session name to view, edit to change the session and on the
traffic light symbol to add workouts to the session
</p>
<table width="90%" class="listtable shortpadded">
<thead>
<tr>
<th align="left">Status</th>
<th align="left">On or After</th>
<th align="left">On or Before</th>
<th align="left">Name</th>
<th align="left">Type</th>
<th align="left">Mode</th>
<th align="left">Edit</th>
<th align="left">Planned</th>
<th align="left">Actual</th>
<th align="left">&nbsp;</th>
<th align="left">Completion Date</th>
<th align="left">
</tr>
</thead>
<tbody>
{% for ps in plannedsessions %}
<tr>
<td>
{% if completeness|lookup:ps.id == 'not done' %}
{% if ps.sessiontype != 'race' %}
<a class="white dot"
href="/rowers/sessions/manage/session/{{ ps.id }}/user/{{ rower.user.id }}/?when={{ timeperiod }}">
&nbsp;</a>
{% else %}
<a class="white dot" href="/rowers/virtualevent/{{ ps.id }}/submit">&nbsp;</a>
{% endif %}
{% elif completeness|lookup:ps.id == 'completed' %}
{% if ps.sessiontype != 'race' %}
<a class="green dot"
href="/rowers/sessions/manage/session/{{ ps.id }}/user/{{ rower.user.id }}/?when={{ timeperiod }}">&nbsp;</a>
{% else %}
<a class="green dot" href="/rowers/virtualevent/{{ ps.id }}/submit">&nbsp;</a>
{% endif %}
{% elif completeness|lookup:ps.id == 'partial' %}
{% if ps.sessiontype != 'race' %}
<a class="orange dot"
href="/rowers/sessions/manage/session/{{ ps.id }}/user/{{ rower.user.id }}?when={{ timeperiod }}">&nbsp;</a>
{% else %}
<a class="orange dot" href="/rowers/virtualevent/{{ ps.id }}/submit">&nbsp;</a>
{% endif %}
{% else %}
{% if ps.sessiontype != 'race' %}
<a class="red dot"
href="/rowers/sessions/manage/session/{{ ps.id }}/user/{{ rower.user.id }}?when={{ timeperiod }}">&nbsp;</a>
{% else %}
<a class="red dot" href="/rowers/virtualevent/{{ ps.id }}/submit">&nbsp;</a>
{% endif %}
{% endif %}
</td>
<td> {{ ps.startdate|date:"Y-m-d" }} </td>
<td> {{ ps.enddate|date:"Y-m-d" }} </td>
<td>
{% if ps.sessiontype != 'race' %}
{% if ps.name != '' %}
<a class="small"
href="/rowers/sessions/{{ ps.id }}/user/{{ rower.user.id }}">{{ ps.name }}</a>
{% else %}
<a class="small"
href="/rowers/sessions/{{ ps.id }}/user/{{ rower.user.id }}">Unnamed Session</a>
{% endif %}
{% else %}
{% if ps.name != '' %}
<a class="small"
href="/rowers/virtualevent/{{ ps.id }}">{{ ps.name }}</a>
{% else %}
<a class="small"
href="/rowers/virtualevent/{{ ps.id }}">Unnamed Race</a>
{% endif %}
{% endif %}
</td>
<td> {{ ps.get_sessiontype_display }} </td>
<td> {{ ps.get_sessionmode_display }} </td>
<td>
{% if ps.manager == request.user %}
<a class="small"
href="/rowers/sessions/{{ ps.id }}/edit/user/{{ rower.user.id }}/?when={{ timeperiod }}">Edit</a>
{% else %}
&nbsp;
{% endif %}
</td>
<td> {{ ps.sessionvalue }} </td>
<td> {{ actualvalue|lookup:ps.id }}</td>
<td> {{ ps.sessionunit }} </td>
{% if completeness|lookup:ps.id == 'partial' %}
<td style="color:darkgray"><em> {{ completiondate|lookup:ps.id|date:"Y-m-d" }}</em></td>
{% else %}
<td> {{ completiondate|lookup:ps.id|date:"Y-m-d" }}</td>
<ul class="main-content">
<li>
<p>
<form enctype="multipart/form-data" method="get">
<table>
{{ dateform.as_table }}
</table>
<input type="Submit">
</form>
</p>
</li>
<li class="grid_4">
{% if plannedsessions %}
<p>
Click on session name to view, edit to change the session and on the
traffic light symbol to add workouts to the session
</p>
<table width="90%" class="listtable shortpadded">
<thead>
<tr>
<th align="left">Status</th>
<th align="left">On or After</th>
<th align="left">On or Before</th>
<th align="left">Name</th>
<th align="left">Type</th>
<th align="left">Mode</th>
<th align="left">Edit</th>
<th align="left">Planned</th>
<th align="left">Actual</th>
<th align="left">&nbsp;</th>
<th align="left">Completion Date</th>
<th align="left">
</tr>
</thead>
<tbody>
{% for ps in plannedsessions %}
<tr>
<td>
{% if completeness|lookup:ps.id == 'not done' %}
{% if ps.sessiontype != 'race' %}
<a class="white dot"
href="/rowers/sessions/manage/session/{{ ps.id }}/user/{{ rower.user.id }}/?when={{ timeperiod }}">
&nbsp;</a>
{% else %}
<a class="white dot" href="/rowers/virtualevent/{{ ps.id }}/submit">&nbsp;</a>
{% endif %}
{% elif completeness|lookup:ps.id == 'completed' %}
{% if ps.sessiontype != 'race' %}
<a class="green dot"
href="/rowers/sessions/manage/session/{{ ps.id }}/user/{{ rower.user.id }}/?when={{ timeperiod }}">&nbsp;</a>
{% else %}
<a class="green dot" href="/rowers/virtualevent/{{ ps.id }}/submit">&nbsp;</a>
{% endif %}
{% elif completeness|lookup:ps.id == 'partial' %}
{% if ps.sessiontype != 'race' %}
<a class="orange dot"
href="/rowers/sessions/manage/session/{{ ps.id }}/user/{{ rower.user.id }}?when={{ timeperiod }}">&nbsp;</a>
{% else %}
<a class="orange dot" href="/rowers/virtualevent/{{ ps.id }}/submit">&nbsp;</a>
{% endif %}
{% else %}
{% if ps.sessiontype != 'race' %}
<a class="red dot"
href="/rowers/sessions/manage/session/{{ ps.id }}/user/{{ rower.user.id }}?when={{ timeperiod }}">&nbsp;</a>
{% else %}
<a class="red dot" href="/rowers/virtualevent/{{ ps.id }}/submit">&nbsp;</a>
{% endif %}
{% endif %}
</td>
<td> {{ ps.startdate|date:"Y-m-d" }} </td>
<td> {{ ps.enddate|date:"Y-m-d" }} </td>
<td>
{% if ps.sessiontype != 'race' %}
{% if ps.name != '' %}
<a class="small"
href="/rowers/sessions/{{ ps.id }}/user/{{ rower.user.id }}">{{ ps.name }}</a>
{% else %}
<a class="small"
href="/rowers/sessions/{{ ps.id }}/user/{{ rower.user.id }}">Unnamed Session</a>
{% endif %}
{% else %}
{% if ps.name != '' %}
<a class="small"
href="/rowers/virtualevent/{{ ps.id }}">{{ ps.name }}</a>
{% else %}
<a class="small"
href="/rowers/virtualevent/{{ ps.id }}">Unnamed Race</a>
{% endif %}
{% endif %}
</td>
<td> {{ ps.get_sessiontype_display }} </td>
<td> {{ ps.get_sessionmode_display }} </td>
<td>
{% if ps.manager == request.user %}
<a class="small"
href="/rowers/sessions/{{ ps.id }}/edit/user/{{ rower.user.id }}/?when={{ timeperiod }}">Edit</a>
{% else %}
&nbsp;
{% endif %}
</td>
<td> {{ ps.sessionvalue }} </td>
<td> {{ actualvalue|lookup:ps.id }}</td>
<td> {{ ps.sessionunit }} </td>
{% if completeness|lookup:ps.id == 'partial' %}
<td style="color:darkgray"><em> {{ completiondate|lookup:ps.id|date:"Y-m-d" }}</em></td>
{% else %}
<td> {{ completiondate|lookup:ps.id|date:"Y-m-d" }}</td>
{% endif %}
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
You have no planned workouts for this period. Planned workouts are created
by your coach if you are part of a team. You can create your own
planned workouts by purchasing the "Coach" or "Self-Coach" plans.
{% endif %}
<p>
<a
href="/rowers/sessions/print/user/{{ rower.user.id }}/?when={{ timeperiod }}">
Print View</a>
</p>
</li>
<li class="grid_4">
{% if unmatchedworkouts %}
<h2>Workouts that are not linked to any session</h2>
<p>
<table width="90%" class="listtable shortpadded">
<thead>
<tr>
<th style="width:80"> Date</th>
<th align="left"> Time</th>
<th align="left"> Name</th>
<th align="left"> Type</th>
<th align="left"> Distance </th>
<th align="left"> Duration </th>
<th align="left"> Avg HR </th>
<th align="left"> Max HR </th>
</tr>
</thead>
<tbody>
{% for workout in unmatchedworkouts %}
<tr>
<td> {{ workout.date|date:"Y-m-d" }} </td>
<td> {{ workout.starttime|date:"H:i" }} </td>
{% if workout.user.user == user or user == team.manager %}
{% if workout.name != '' %}
<td>
<a href={% url rower.defaultlandingpage id=workout.id %}>
{{ workout.name }}
</a>
</td>
{% else %}
<td>
<a href={% url rower.defaultlandingpage id=workout.id %}>No Name
</a></td>
{% endif %}
{% else %}
{% if workout.name != '' %}
<td><a href="/rowers/workout/{{ workout.id }}/">{{ workout.name }}</a></td>
{% else %}
<td><a href="/rowers/workout/{{ workout.id }}/">No Name</a> </td>
{% endif %}
{% endif %}
<td> {{ workout.workouttype }} </td>
<td> {{ workout.distance }}m</td>
<td> {{ workout.duration |durationprint:"%H:%M:%S.%f" }} </td>
<td> {{ workout.averagehr }} </td>
<td> {{ workout.maxhr }} </td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
You have no planned workouts for this period. Planned workouts are created
by your coach if you are part of a team. You can create your own
planned workouts by purchasing the "Coach" or "Self-Coach" plans.
{% endif %}
<p>
<a
href="/rowers/sessions/print/user/{{ rower.user.id }}/?when={{ timeperiod }}">
Print View</a>
</p>
{% if unmatchedworkouts %}
<h2>Workouts that are not linked to any session</h2>
<p>
<table width="90%" class="listtable shortpadded">
<thead>
<tr>
<th style="width:80"> Date</th>
<th align="left"> Time</th>
<th align="left"> Name</th>
<th align="left"> Type</th>
<th align="left"> Distance </th>
<th align="left"> Duration </th>
<th align="left"> Avg HR </th>
<th align="left"> Max HR </th>
</tr>
</thead>
<tbody>
{% for workout in unmatchedworkouts %}
<tr>
<td> {{ workout.date|date:"Y-m-d" }} </td>
<td> {{ workout.starttime|date:"H:i" }} </td>
{% if workout.user.user == user or user == team.manager %}
{% if workout.name != '' %}
<td>
<a href={% url rower.defaultlandingpage id=workout.id %}>
{{ workout.name }}
</a>
</td>
{% else %}
<td>
<a href={% url rower.defaultlandingpage id=workout.id %}>No Name
</a></td>
{% endif %}
{% else %}
{% if workout.name != '' %}
<td><a href="/rowers/workout/{{ workout.id }}/">{{ workout.name }}</a></td>
{% else %}
<td><a href="/rowers/workout/{{ workout.id }}/">No Name</a> </td>
{% endif %}
{% endif %}
<td> {{ workout.workouttype }} </td>
<td> {{ workout.distance }}m</td>
<td> {{ workout.duration |durationprint:"%H:%M:%S.%f" }} </td>
<td> {{ workout.averagehr }} </td>
<td> {{ workout.maxhr }} </td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
</p>
</p>
</li>
</ul>
{% endblock %}

View File

@@ -14791,6 +14791,14 @@ def plannedsessions_view(request,
},
]
initial = {
'startdate':startdate,
'enddate':enddate,
}
dateform = DateRangeForm(initial=initial)
return render(request,'plannedsessions.html',
{
'teams':get_my_teams(request.user),
@@ -14798,6 +14806,7 @@ def plannedsessions_view(request,
'plannedsessions':sps,
'plan':trainingplan,
'active': 'nav-plan',
'dateform':dateform,
'rower':r,
'timeperiod':timeperiod,
'completeness':completeness,