Merge branch 'release/v9.92'
This commit is contained in:
+9
-13
@@ -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
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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 you’re 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. I‘ve been
|
|
||||||
using my NK empower oarlock for about a month now, and I‘m 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 I‘m 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 you’re 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. I‘ve been
|
||||||
|
using my NK empower oarlock for about a month now, and I‘m 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
|
||||||
@@ -273,11 +273,6 @@ using my NK empower oarlock for about a month now, and I‘m really
|
|||||||
|
|
||||||
<footer class="main-footer">
|
<footer class="main-footer">
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<a href="/rowers/help/">Help</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
<li>
|
||||||
<a href="https://analytics.rowsandall.com/">
|
<a href="https://analytics.rowsandall.com/">
|
||||||
Rowing Analytics Blog
|
Rowing Analytics Blog
|
||||||
@@ -287,37 +282,14 @@ using my NK empower oarlock for about a month now, and I‘m really
|
|||||||
<a href="https://www.facebook.com/rowsandall">
|
<a href="https://www.facebook.com/rowsandall">
|
||||||
Rowing Data Facebook Group</a>
|
Rowing Data Facebook Group</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<ul>
|
|
||||||
<li>
|
<li>
|
||||||
<a href="/rowers/email/">Contact</a>
|
<a href="/rowers/email/">Contact</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
|
||||||
<a href="/rowers/partners/">Partnering?</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="/rowers/developers/">Developers Info</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<ul>
|
|
||||||
<li>
|
<li>
|
||||||
<a href="/rowers/paidplans/">Paid Plans</a>
|
<a href="/rowers/paidplans/">Paid Plans</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
<li>
|
||||||
<ul>
|
<a href="/rowers/legal/">Legal</a>
|
||||||
<li>
|
|
||||||
<a href="/rowers/legal/">Terms and Conditions</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="/rowers/legal/">Privacy Policy</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</footer>
|
</footer>
|
||||||
|
|||||||
@@ -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> Compare
|
<i class="fas fa-balance-scale fa-fw"></i> 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> Compare
|
<i class="fas fa-balance-scale fa-fw"></i> 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> Box Chart
|
<i class="fas fa-box-open fa-fw"></i> 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> Trend Flex
|
<i class="far fa-chart-line fa-fw"></i> 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> Statistics
|
<i class="fal fa-table fa-fw"></i> 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> Histogram
|
<i class="fas fa-chart-bar"></i> 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> Cumulative Flex Chart
|
<i class="fas fa-chart-line fa-fw"></i> Cumulative Flex Chart
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
@@ -106,4 +106,29 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% if user|user_teams %}
|
||||||
|
<p> </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> 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 %}
|
||||||
|
•
|
||||||
|
{% else %}
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
{{ tteam.name }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% include 'menuscript.html' %}
|
{% include 'menuscript.html' %}
|
||||||
|
|||||||
@@ -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,47 +108,19 @@
|
|||||||
</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">
|
|
||||||
{% else %}
|
|
||||||
<form enctype="multipart/form-data" action="/rowers/workouts-join-select/" method="post">
|
|
||||||
{% endif %}
|
|
||||||
<table>
|
<table>
|
||||||
{{ dateform.as_table }}
|
{{ dateform.as_table }}
|
||||||
</table>
|
</table>
|
||||||
<p>
|
|
||||||
{% csrf_token %}
|
|
||||||
<input name='daterange' type="submit" value="Submit">
|
|
||||||
</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>
|
<table>
|
||||||
{{ modalityform.as_table }}
|
{{ modalityform.as_table }}
|
||||||
</table>
|
</table>
|
||||||
<p>
|
<p>
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<input name='modalityform' type="submit" value="Submit">
|
<input name='modalityform' type="submit" value="Filter Workouts">
|
||||||
</p>
|
</p>
|
||||||
</form>
|
</form>
|
||||||
</li>
|
</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>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
BIN
Binary file not shown.
+3
-1
@@ -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'),
|
||||||
|
|||||||
@@ -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,
|
workouts = Workout.objects.filter(user=r,
|
||||||
startdatetime__gte=startdate,
|
startdatetime__gte=startdate,
|
||||||
startdatetime__lte=enddate,
|
startdatetime__lte=enddate,
|
||||||
workouttype__in=modalities,
|
workouttype__in=modalities,
|
||||||
).order_by(
|
)
|
||||||
|
|
||||||
|
workouts = workouts.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,
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user