Private
Public Access
1
0

Merge branch 'release/v9.92'

This commit is contained in:
Sander Roosendaal
2019-05-19 10:59:26 +02:00
9 changed files with 147 additions and 149 deletions
+9 -13
View File
@@ -8,13 +8,13 @@ atomicwrites==1.3.0
attrs==19.1.0 attrs==19.1.0
backcall==0.1.0 backcall==0.1.0
beautifulsoup4==4.7.1 beautifulsoup4==4.7.1
billiard==3.6.0.0 billiard==3.5.0.5
bleach==3.1.0 bleach==3.1.0
bokeh==1.0.4 bokeh==1.0.4
boto==2.49.0 boto==2.49.0
braintree==3.51.0 braintree==3.51.0
cairocffi==1.0.2 cairocffi==1.0.2
celery==4.3.0 celery==4.2.2
certifi==2019.3.9 certifi==2019.3.9
cffi==1.12.2 cffi==1.12.2
chardet==3.0.4 chardet==3.0.4
@@ -46,10 +46,9 @@ django-leaflet==0.24.0
django-mailbox==4.7.1 django-mailbox==4.7.1
django-oauth-toolkit==1.2.0 django-oauth-toolkit==1.2.0
django-oauth2-provider==0.2.6.1 django-oauth2-provider==0.2.6.1
django-redis==4.10.0
django-rest-framework==0.1.0 django-rest-framework==0.1.0
django-rest-swagger==2.2.0 django-rest-swagger==2.2.0
django-rq==1.3.1 django-rq==2.0
django-rq-dashboard==0.3.3 django-rq-dashboard==0.3.3
django-ses==0.8.10 django-ses==0.8.10
django-shell-plus==1.1.7 django-shell-plus==1.1.7
@@ -67,9 +66,7 @@ Faker==1.0.4
fitparse==1.1.0 fitparse==1.1.0
Flask==1.0.2 Flask==1.0.2
future==0.17.1 future==0.17.1
GDAL==2.3.3
geocoder==1.38.1 geocoder==1.38.1
geos==0.2.1
holoviews==1.11.3 holoviews==1.11.3
html5lib==1.0.1 html5lib==1.0.1
htmlmin==0.1.12 htmlmin==0.1.12
@@ -99,7 +96,7 @@ jupyterlab==0.35.4
jupyterlab-server==0.3.0 jupyterlab-server==0.3.0
keyring==18.0.0 keyring==18.0.0
kiwisolver==1.0.1 kiwisolver==1.0.1
kombu==4.5.0 kombu==4.3.0
lxml==4.3.2 lxml==4.3.2
Markdown==3.0.1 Markdown==3.0.1
MarkupSafe==1.1.1 MarkupSafe==1.1.1
@@ -132,9 +129,9 @@ pip-upgrader==1.4.6
pluggy==0.9.0 pluggy==0.9.0
prometheus-client==0.6.0 prometheus-client==0.6.0
prompt-toolkit==2.0.9 prompt-toolkit==2.0.9
psycopg2==2.8.1
ptyprocess==0.6.0 ptyprocess==0.6.0
py==1.8.0 py==1.8.0
pycairo==1.18.0
pycparser==2.19 pycparser==2.19
Pygments==2.3.1 Pygments==2.3.1
pyparsing==2.3.1 pyparsing==2.3.1
@@ -160,9 +157,10 @@ ratelim==0.1.6
redis==3.2.1 redis==3.2.1
requests==2.21.0 requests==2.21.0
requests-oauthlib==1.2.0 requests-oauthlib==1.2.0
rowingdata==2.3.8 rowingdata==2.3.9
rowingphysics==0.5.0 rowingphysics==0.5.0
rq==0.13.0 rq==1.0
rq-dashboard==0.4.0
scipy==1.2.1 scipy==1.2.1
SecretStorage==3.1.1 SecretStorage==3.1.1
Send2Trash==1.5.0 Send2Trash==1.5.0
@@ -190,10 +188,8 @@ VerbalExpressions==0.0.2
vine==1.3.0 vine==1.3.0
wcwidth==0.1.7 wcwidth==0.1.7
webencodings==0.5.1 webencodings==0.5.1
Werkzeug==0.15.1 Werkzeug==0.15.2
widgetsnbextension==3.4.2 widgetsnbextension==3.4.2
winkerberos==0.7.0
xlrd==1.2.0
xmltodict==0.12.0 xmltodict==0.12.0
yamjam==0.1.7 yamjam==0.1.7
yamllint==1.15.0 yamllint==1.15.0
+7 -7
View File
@@ -14,9 +14,9 @@
<li class="rounder"> <li class="rounder">
<h2>Compare Workouts</h2> <h2>Compare Workouts</h2>
{% if team %} {% if team %}
<a href="/rowers/team-compare-select/team/{{ team.id }}/"> <a href="/rowers/user-analysis-select/compare/team/{{ team.id }}/">
{% else %} {% else %}
<a href="/rowers/team-compare-select/team/0/"> <a href="/rowers/user-analysis-select/compare/team/0/">
{% endif %} {% endif %}
<div class="vignet"> <div class="vignet">
<img src="/static/img/workoutcompare.png" <img src="/static/img/workoutcompare.png"
@@ -29,7 +29,7 @@
</li> </li>
<li class="rounder"> <li class="rounder">
<h2>Stroke Analysis</h2> <h2>Stroke Analysis</h2>
<a href="/rowers/flexall/"> <a href="/rowers/user-analysis-select/flexall/">
<div class="vignet"> <div class="vignet">
<img src="/static/img/strokeanalysis.png" <img src="/static/img/strokeanalysis.png"
alt="Stroke Analysis"> alt="Stroke Analysis">
@@ -41,7 +41,7 @@
</li> </li>
<li class="rounder"> <li class="rounder">
<h2>Histogram</h2> <h2>Histogram</h2>
<a href="/rowers/histo/"> <a href="/rowers/user-analysis-select/histo/">
<div class="vignet"> <div class="vignet">
<img src="/static/img/histogram.png" alt="Power Histogram"> <img src="/static/img/histogram.png" alt="Power Histogram">
</div> </div>
@@ -52,7 +52,7 @@
</li> </li>
<li class="rounder"> <li class="rounder">
<h2>Statistics</h2> <h2>Statistics</h2>
<a href="/rowers/cumstats/"> <a href="/rowers/user-analysis-select/stats/">
<div class="vignet"> <div class="vignet">
<img src="/static/img/statistics.PNG" alt="Statistics"> <img src="/static/img/statistics.PNG" alt="Statistics">
</div> </div>
@@ -63,7 +63,7 @@
</li> </li>
<li class="rounder"> <li class="rounder">
<h2>Box Chart</h2> <h2>Box Chart</h2>
<a href="/rowers/user-boxplot-select/"> <a href="/rowers/user-analysis-select/boxplot/">
<div class="vignet"> <div class="vignet">
<img src="/static/img/boxplot.png" alt="Box Chart"> <img src="/static/img/boxplot.png" alt="Box Chart">
</div> </div>
@@ -75,7 +75,7 @@
</li> </li>
<li class="rounder"> <li class="rounder">
<h2>Trend Flex</h2> <h2>Trend Flex</h2>
<a href="/rowers/user-multiflex-select/"> <a href="/rowers/user-analysis-select/trendflex/">
<div class="vignet"> <div class="vignet">
<img src="/static/img/trendflex.png" alt="Trend Flex"> <img src="/static/img/trendflex.png" alt="Trend Flex">
</div> </div>
+33 -61
View File
@@ -110,7 +110,7 @@
} }
.caption span.border { .caption span.border {
background-color: #111; background-color: #1c75bc;
color: #fff; color: #fff;
padding: 18px; padding: 18px;
font-size: 25px; font-size: 25px;
@@ -128,7 +128,7 @@
letter-spacing: 5px; letter-spacing: 5px;
text-transform: uppercase; text-transform: uppercase;
font: 20px "Lato", sans-serif; font: 20px "Lato", sans-serif;
color: #111; color: #1c75bc;
} }
/* Turn off parallax scrolling for tablets and phones */ /* Turn off parallax scrolling for tablets and phones */
@@ -202,27 +202,6 @@
</div> </div>
</div> </div>
<div style="position:relative;">
<div style="color:#ddd;background-color:#282E34;text-align:center;padding:50px 80px;text-align: justify;">
<h2>Testimonials</h2>
<p>"Check out @rowsandall as well - his site is really useful for dissecting rowing data, especially if you eventually get power/angles on the water - check out the articles in the blog - if youre logging your ergs on C2logbook you can have a play dissecting the data" - Tom Carter</p>
<p>"Sander has made amazing tools for self-coaching or working with a coach."</p>
<p>“I just wanted to say that I absolutely love this website. Ive been
using my NK empower oarlock for about a month now, and Im really
excited to be able to better visualize my data.”</p>
<p> “I discovered rowsandall.com which is brilliant.”</p>
</div>
</div>
<div class="bgimg-3">
<div class="caption">
<span class="border">
Plan, execute, measure, adjust
</span>
</div>
</div>
<div style="position:relative;"> <div style="position:relative;">
<div style="color:#ddd;background-color:#282E34;text-align:center;padding:50px 80px;text-align: justify;"> <div style="color:#ddd;background-color:#282E34;text-align:center;padding:50px 80px;text-align: justify;">
<h1>What we offer</h1> <h1>What we offer</h1>
@@ -252,6 +231,27 @@ using my NK empower oarlock for about a month now, and Im really
</div> </div>
</div> </div>
<div class="bgimg-3">
<div class="caption">
<span class="border">
Plan, execute, measure, adjust
</span>
</div>
</div>
<div style="position:relative;">
<div style="color:#ddd;background-color:#282E34;text-align:center;padding:50px 80px;text-align: justify;">
<h2>Testimonials</h2>
<p>"Check out @rowsandall as well - his site is really useful for dissecting rowing data, especially if you eventually get power/angles on the water - check out the articles in the blog - if youre logging your ergs on C2logbook you can have a play dissecting the data" - Tom Carter</p>
<p>"Sander has made amazing tools for self-coaching or working with a coach."</p>
<p>“I just wanted to say that I absolutely love this website. Ive been
using my NK empower oarlock for about a month now, and Im really
excited to be able to better visualize my data.”</p>
<p> “I discovered rowsandall.com which is brilliant.”</p>
</div>
</div>
<div class="bgimg-1"> <div class="bgimg-1">
<div class="caption"> <div class="caption">
<span class="border">Follow us on <span class="border">Follow us on
@@ -274,50 +274,22 @@ using my NK empower oarlock for about a month now, and Im really
<footer class="main-footer"> <footer class="main-footer">
<ul> <ul>
<li> <li>
<ul> <a href="https://analytics.rowsandall.com/">
<li> Rowing Analytics Blog
<a href="/rowers/help/">Help</a> </a>
</li>
<li>
<a href="https://analytics.rowsandall.com/">
Rowing Analytics Blog
</a>
</li>
<li>
<a href="https://www.facebook.com/rowsandall">
Rowing Data Facebook Group</a>
</li>
</ul>
</li> </li>
<li> <li>
<ul> <a href="https://www.facebook.com/rowsandall">
<li> Rowing Data Facebook Group</a>
<a href="/rowers/email/">Contact</a>
</li>
<li>
<a href="/rowers/partners/">Partnering?</a>
</li>
<li>
<a href="/rowers/developers/">Developers Info</a>
</li>
</ul>
</li> </li>
<li> <li>
<ul> <a href="/rowers/email/">Contact</a>
<li>
<a href="/rowers/paidplans/">Paid Plans</a>
</li>
</ul>
</li> </li>
<li> <li>
<ul> <a href="/rowers/paidplans/">Paid Plans</a>
<li> </li>
<a href="/rowers/legal/">Terms and Conditions</a> <li>
</li> <a href="/rowers/legal/">Legal</a>
<li>
<a href="/rowers/legal/">Privacy Policy</a>
</li>
</ul>
</li> </li>
</ul> </ul>
</footer> </footer>
+32 -7
View File
@@ -10,11 +10,11 @@
<ul> <ul>
<li id="compare"> <li id="compare">
{% if team %} {% if team %}
<a href="/rowers/team-compare-select/team/{{ team.id }}/"> <a href="/rowers/user-analysis-select/compare/team/{{ team.id }}/">
<i class="fas fa-balance-scale fa-fw"></i>&nbsp;Compare <i class="fas fa-balance-scale fa-fw"></i>&nbsp;Compare
</a> </a>
{% else %} {% else %}
<a href="/rowers/team-compare-select/team/0/"> <a href="/rowers/user-analysis-select/compare/team/0/">
<i class="fas fa-balance-scale fa-fw"></i>&nbsp;Compare <i class="fas fa-balance-scale fa-fw"></i>&nbsp;Compare
</a> </a>
{% endif %} {% endif %}
@@ -48,29 +48,29 @@
</label> </label>
<ul> <ul>
<li id="stats-boxchart"> <li id="stats-boxchart">
<a href="/rowers/user-boxplot-select/"> <a href="/rowers/user-analysis-select/boxplot/">
<i class="fas fa-box-open fa-fw"></i>&nbsp;Box Chart <i class="fas fa-box-open fa-fw"></i>&nbsp;Box Chart
</a> </a>
</li> </li>
<li id="stats-trendflex"> <li id="stats-trendflex">
<a href="/rowers/user-multiflex-select/"> <a href="/rowers/user-analysis-select/trendflex/">
<i class="far fa-chart-line fa-fw"></i>&nbsp;Trend Flex <i class="far fa-chart-line fa-fw"></i>&nbsp;Trend Flex
</a> </a>
</li> </li>
<li id="stats-cumstats"> <li id="stats-cumstats">
<a href="/rowers/cumstats/"> <a href="/rowers/user-analysis-select/stats/">
<i class="fal fa-table fa-fw"></i>&nbsp;Statistics <i class="fal fa-table fa-fw"></i>&nbsp;Statistics
</a> </a>
</li> </li>
<li id="stats-histo"> <li id="stats-histo">
<a href="/rowers/histo/"> <a href="/rowers/user-analysis-select/histo/">
<i class="fas fa-chart-bar"></i>&nbsp;Histogram <i class="fas fa-chart-bar"></i>&nbsp;Histogram
</a> </a>
</li> </li>
</ul> </ul>
</li> </li>
<li> <li>
<a href="/rowers/flexall/"> <a href="/rowers/user-analysis-select/flexall/">
<i class="fas fa-chart-line fa-fw"></i>&nbsp;Cumulative Flex Chart <i class="fas fa-chart-line fa-fw"></i>&nbsp;Cumulative Flex Chart
</a> </a>
</li> </li>
@@ -106,4 +106,29 @@
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if user|user_teams %}
<p>&nbsp;</p>
<ul class="cd-accordion-menu animated">
<li class="has-children" id="teams">
<input type="checkbox" name="team-selector" id="team-selector">
<label for="team-selector"><i class="fas fa-bullhorn fa-fw"></i>&nbsp;Groups</label>
<ul>
{% for tteam in teams %}
<li>
<a href={{ request.path|teamurl:tteam }}>
<i class="fas fa-users fa-fw"></i>
{% if tteam == team %}
&bull;
{% else %}
&nbsp;
{% endif %}
{{ tteam.name }}
</a>
</li>
{% endfor %}
</ul>
</li>
</ul>
{% endif %}
{% include 'menuscript.html' %} {% include 'menuscript.html' %}
+24 -40
View File
@@ -66,9 +66,21 @@
<h1>{{ team.name }} Join Workouts</h1> <h1>{{ team.name }} Glue Workouts</h1>
<ul class="main-content"> <ul class="main-content">
<li class="grid_4 maxheight">
{% if team %}
<form id="searchform" action="/rowers/workouts-join-select/team/{{ team.id }}/"
method="get" accept-charset="utf-8">
{% else %}
<form id="searchform" action="/rowers/workouts-join-select/"
method="get" accept-charset="utf-8">
{% endif %}
{{ searchform }}
<input type="submit" value="GO"></input>
</form>
</li>
<li class="grid_2 maxheight"> <li class="grid_2 maxheight">
<form enctype="multipart/form-data" action="/rowers/workouts-join/" method="post"> <form enctype="multipart/form-data" action="/rowers/workouts-join/" method="post">
{% if workouts %} {% if workouts %}
@@ -96,45 +108,17 @@
</form> </form>
</li> </li>
<li class="grid_2"> <li class="grid_2">
{% if team %} <form enctype="multipart/form-data" action="" method="post">
<form enctype="multipart/form-data" action="/rowers/workouts-join-select/team/{{ team.id }}/" method="post"> <table>
{% else %} {{ dateform.as_table }}
<form enctype="multipart/form-data" action="/rowers/workouts-join-select/" method="post"> </table>
{% endif %} <table>
<table> {{ modalityform.as_table }}
{{ dateform.as_table }} </table>
</table> <p>
<p> {% csrf_token %}
{% csrf_token %} <input name='modalityform' type="submit" value="Filter Workouts">
<input name='daterange' type="submit" value="Submit"> </p>
</p>
</form>
</li>
<li>
{% if team %}
<form enctype="multipart/form-data" action="/rowers/workouts-join-select/team/{{ team.id }}/" method="post">
{% else %}
<form enctype="multipart/form-data" action="/rowers/workouts-join-select/" method="post">
{% endif %}
<table>
{{ modalityform.as_table }}
</table>
<p>
{% csrf_token %}
<input name='modalityform' type="submit" value="Submit">
</p>
</form>
</li>
<li class="grid_2">
{% if team %}
<form id="searchform" action="/rowers/workouts-join-select/team/{{ team.id }}/{{ startdate|date:"Y-m-d" }}/{{ enddate|date:"Y-m-d" }}/"
method="get" accept-charset="utf-8">
{% else %}
<form id="searchform" action="/rowers/workouts-join-select/{{ startdate|date:"Y-m-d" }}/{{ enddate|date:"Y-m-d" }}/"
method="get" accept-charset="utf-8">
{% endif %}
{{ searchform }}
<input type="submit" value="GO"></input>
</form> </form>
</li> </li>
</ul> </ul>
Binary file not shown.
+3 -1
View File
@@ -224,8 +224,10 @@ urlpatterns = [
re_path(r'^user-boxplot-select/user/(?P<userid>\d+)/$',views.user_boxplot_select,name='user_boxplot_select'), re_path(r'^user-boxplot-select/user/(?P<userid>\d+)/$',views.user_boxplot_select,name='user_boxplot_select'),
re_path(r'^user-boxplot-select/$',views.user_boxplot_select,name='user_boxplot_select'), re_path(r'^user-boxplot-select/$',views.user_boxplot_select,name='user_boxplot_select'),
re_path(r'^user-analysis-select/(?P<function>\w.*)/user/(?P<userid>\d+)/$',views.analysis_new,name='analysis_new'), re_path(r'^user-analysis-select/(?P<function>\w.*)/user/(?P<userid>\d+)/$',views.analysis_new,name='analysis_new'),
re_path(r'^user-analysis-select/(?P<function>\w.*)/$',views.analysis_new,name='analysis_new'), re_path(r'^user-analysis-select/(?P<function>\w.*)/team/(?P<teamid>\d+)/$',views.analysis_new,name='analysis_new'),
re_path(r'^user-analysis-select/user/(?P<userid>\d+)/$',views.analysis_new,name='analysis_new'), re_path(r'^user-analysis-select/user/(?P<userid>\d+)/$',views.analysis_new,name='analysis_new'),
re_path(r'^user-analysis-select/team/(?P<teamid>\d+)/$',views.analysis_new,name='analysis_new'),
re_path(r'^user-analysis-select/(?P<function>\w.*)/$',views.analysis_new,name='analysis_new'),
re_path(r'^user-analysis-select/$',views.analysis_new,name='analysis_new'), re_path(r'^user-analysis-select/$',views.analysis_new,name='analysis_new'),
# re_path(r'^user-multiflex-select/user/(?P<userid>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.user_multiflex_select,name='user_multiflex_select'), # re_path(r'^user-multiflex-select/user/(?P<userid>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.user_multiflex_select,name='user_multiflex_select'),
re_path(r'^user-multiflex-select/user/(?P<userid>\d+)/$',views.user_multiflex_select,name='user_multiflex_select'), re_path(r'^user-multiflex-select/user/(?P<userid>\d+)/$',views.user_multiflex_select,name='user_multiflex_select'),
+30 -10
View File
@@ -16,7 +16,7 @@ env.filters['floatformat'] = floatformat
from django.contrib.staticfiles import finders from django.contrib.staticfiles import finders
from rowers.forms import analysischoices
# generic Analysis view - # generic Analysis view -
@@ -32,11 +32,16 @@ defaultoptions = {
@user_passes_test(ispromember, login_url="/rowers/paidplans", @user_passes_test(ispromember, login_url="/rowers/paidplans",
message="This functionality requires a Pro plan or higher", message="This functionality requires a Pro plan or higher",
redirect_field_name=None) redirect_field_name=None)
def analysis_new(request,userid=0,function='boxplot'): def analysis_new(request,userid=0,function='boxplot',teamid=0):
r = getrequestrower(request, userid=userid) r = getrequestrower(request, userid=userid)
user = r.user user = r.user
userid = user.id userid = user.id
try:
theteam = Team.objects.get(id=teamid)
except Team.DoesNotExist:
theteam = None
if 'options' in request.session: if 'options' in request.session:
options = request.session['options'] options = request.session['options']
@@ -64,7 +69,8 @@ def analysis_new(request,userid=0,function='boxplot'):
else: else:
startdate=timezone.now()-datetime.timedelta(days=42) startdate=timezone.now()-datetime.timedelta(days=42)
if function not in [c[0] for c in analysischoices]:
function = 'boxplot'
if 'enddate' in request.session: if 'enddate' in request.session:
enddate = iso8601.parse_date(request.session['enddate']) enddate = iso8601.parse_date(request.session['enddate'])
@@ -162,14 +168,29 @@ def analysis_new(request,userid=0,function='boxplot'):
if b[0] not in waterboattype: if b[0] not in waterboattype:
negtypes.append(b[0]) negtypes.append(b[0])
if theteam is not None and (theteam.viewing == 'allmembers' or theteam.manager == request.user):
workouts = Workout.objects.filter(team=theteam,
startdatetime__gte=startdate,
startdatetime__lte=enddate,
workouttype__in=modalities,
)
elif theteam is not None and theteam.viewing == 'coachonly':
workouts = Workout.objects.filter(team=theteam,user=r,
startdatetime__gte=startdate,
startdatetime__lte=enddate,
workouttype__in=modalities,
)
else:
workouts = Workout.objects.filter(user=r,
startdatetime__gte=startdate,
startdatetime__lte=enddate,
workouttype__in=modalities,
)
workouts = Workout.objects.filter(user=r, workouts = workouts.order_by(
startdatetime__gte=startdate,
startdatetime__lte=enddate,
workouttype__in=modalities,
).order_by(
"-date", "-starttime" "-date", "-starttime"
).exclude(boattype__in=negtypes) ).exclude(boattype__in=negtypes)
if rankingonly: if rankingonly:
workouts = workouts.exclude(rankingpiece=False) workouts = workouts.exclude(rankingpiece=False)
@@ -188,14 +209,13 @@ def analysis_new(request,userid=0,function='boxplot'):
if request.method != 'POST': if request.method != 'POST':
form = WorkoutMultipleCompareForm() form = WorkoutMultipleCompareForm()
chartform = AnalysisChoiceForm() chartform = AnalysisChoiceForm(initial={'function':function})
selectedworkouts = Workout.objects.none() selectedworkouts = Workout.objects.none()
else: else:
selectedworkouts = Workout.objects.filter(id__in=ids) selectedworkouts = Workout.objects.filter(id__in=ids)
form.fields["workouts"].queryset = workouts | selectedworkouts form.fields["workouts"].queryset = workouts | selectedworkouts
optionsform = AnalysisOptionsForm(initial={ optionsform = AnalysisOptionsForm(initial={
'modality':modality, 'modality':modality,
'waterboattype':waterboattype, 'waterboattype':waterboattype,
+9 -10
View File
@@ -479,8 +479,9 @@ def workouts_join_select(request,
modalities = [m[0] for m in mytypes.workouttypes] modalities = [m[0] for m in mytypes.workouttypes]
modality = 'all' modality = 'all'
if request.method == 'POST' and 'daterange' in request.POST: if request.method == 'POST':
dateform = DateRangeForm(request.POST) dateform = DateRangeForm(request.POST)
modalityform = TrendFlexModalForm(request.POST)
if dateform.is_valid(): if dateform.is_valid():
startdate = dateform.cleaned_data['startdate'] startdate = dateform.cleaned_data['startdate']
enddate = dateform.cleaned_data['enddate'] enddate = dateform.cleaned_data['enddate']
@@ -488,15 +489,6 @@ def workouts_join_select(request,
enddatestring = enddate.strftime('%Y-%m-%d') enddatestring = enddate.strftime('%Y-%m-%d')
request.session['startdate'] = startdatestring request.session['startdate'] = startdatestring
request.session['enddate'] = enddatestring request.session['enddate'] = enddatestring
else:
dateform = DateRangeForm(initial={
'startdate':startdate,
'enddate':enddate,
})
if request.method == 'POST' and 'modality' in request.POST:
modalityform = TrendFlexModalForm(request.POST)
if modalityform.is_valid(): if modalityform.is_valid():
modality = modalityform.cleaned_data['modality'] modality = modalityform.cleaned_data['modality']
waterboattype = modalityform.cleaned_data['waterboattype'] waterboattype = modalityform.cleaned_data['waterboattype']
@@ -511,6 +503,13 @@ def workouts_join_select(request,
request.session['modalities'] = modalities request.session['modalities'] = modalities
request.session['waterboattype'] = waterboattype request.session['waterboattype'] = waterboattype
else:
dateform = DateRangeForm(initial={
'startdate':startdate,
'enddate':enddate,
})
negtypes = [] negtypes = []
for b in mytypes.boattypes: for b in mytypes.boattypes: