Private
Public Access
1
0

Merge branch 'release/v9.28'

This commit is contained in:
Sander Roosendaal
2019-02-21 18:10:19 +01:00
28 changed files with 216 additions and 113 deletions

View File

@@ -291,7 +291,10 @@ def get_workout(user,stravaid):
workoutsummary = requests.get(url,headers=headers).json()
workoutsummary['timezone'] = "Etc/UTC"
startdatetime = workoutsummary['start_date']
try:
startdatetime = workoutsummary['start_date']
except KeyError:
startdatetime = timezone.now()
spmjson = get_strava_stream(r,'cadence',stravaid)
hrjson = get_strava_stream(r,'heartrate',stravaid)

View File

@@ -172,7 +172,12 @@ def rower_get_coaches(rower):
def coach_getcoachees(coach):
return Rower.objects.filter(coachinggroups__in=[coach.mycoachgroup]).distinct()
if coach.mycoachgroup and coach.rowerplan == 'coach':
return Rower.objects.filter(
coachinggroups__in=[coach.mycoachgroup]
).distinct().order_by("user__last_name","user__first_name")
else:
return []
def coach_remove_athlete(coach,rower):
try:

View File

@@ -45,6 +45,6 @@
{% endblock %}
{% block sidebar %}
{% include 'menu_profile.html' %}
{% include 'menu_payments.html' %}
{% endblock %}

View File

@@ -57,6 +57,6 @@
{% endblock %}
{% block sidebar %}
{% include 'menu_profile.html' %}
{% include 'menu_payments.html' %}
{% endblock %}

View File

@@ -21,6 +21,6 @@
{% endblock %}
{% block sidebar %}
{% include 'menu_profile.html' %}
{% include 'menu_payments.html' %}
{% endblock %}

View File

@@ -98,6 +98,6 @@
{% endblock %}
{% block sidebar %}
{% include 'menu_profile.html' %}
{% include 'menu_payments.html' %}
{% endblock %}

View File

@@ -68,7 +68,7 @@
</li>
</ul><!-- cd-accordion-menu -->
{% if user.is_authenticated and user|is_manager %}
{% if user.is_authenticated and user|is_manager and rower %}
<p>&nbsp;</p>
{% if user|coach_rowers %}

View File

@@ -0,0 +1,51 @@
{% load staticfiles %}
{% load rowerfilters %}
<h1><a href="/rowers/list-workouts/">Workouts</a></h1>
<ul class="cd-accordion-menu animated">
<li id="workouts-list">
<a href="/rowers/list-workouts/"><i class="fas fa-clipboard-list fa-fw"></i>&nbsp;Workouts List</a>
</li>
<li id="charts">
<a href="/rowers/list-graphs/"><i class="fas fa-chart-pie fa-fw"></i>&nbsp;Charts</a>
</li>
<li id="compare">
{% if team %}
<a href="/rowers/team-compare-select/team/{{ team.id }}/"><i class="fas fa-balance-scale fa-fw"></i>&nbsp;Compare</a>
{% else %}
<a href="/rowers/team-compare-select/team/0/"><i class="fas fa-balance-scale fa-fw"></i>&nbsp;Compare</a>
{% endif %}
</li>
<li>
<a href="/rowers/workout/upload/"><i class="fas fa-file-upload fa-fw"></i>&nbsp;Upload</a>
</li>
<li>
<a href="/rowers/workout/addmanual/"><i class="fas fa-file-plus fa-fw"></i>&nbsp;Add manual entry</a>
</li>
<li>
{% if user|is_promember %}
<a href="/rowers/workouts-join-select/">
{% else %}
<a href="/rowers/paidplans/">
{% endif %}
<i class="fas fa-layer-plus fa-fw"></i>&nbsp;Glue Workouts
</a>
</li>
<li class="has-children" id="imports">
<input type="checkbox" name ="group-1" id="group-1">
<label for="group-1"><i class="fas fa-cloud-download fa-fw"></i>&nbsp;Import</label>
<ul>
<li id="concept2"><a href="/rowers/workout/c2list/">Concept2</a></li>
<li id="strava"><a href="/rowers/workout/stravaimport/">Strava</a></li>
<li id="runkeeper"><a href="/rowers/workout/runkeeperimport/">RunKeeper</a></li>
<li id="sporttracks"><a href="/rowers/workout/sporttracksimport/">SportTracks</a></li>
<li id="mapmyfitness"><a href="/rowers/workout/underarmourimport/">MapMyFitness</a></li>
<li id="polar"><a href="/rowers/workout/polarimport/">Polar</a></li>
</ul>
</li>
</ul> <!-- cd-accordion-menu -->
{% include 'menuscript.html' %}

View File

@@ -0,0 +1,41 @@
{% load staticfiles %}
{% load rowerfilters %}
<h1><a href="/rowers/me/edit/">Profile</a></h1>
<ul class="cd-accordion-menu animated">
<li id="manage-prefs">
<a href="/rowers/me/preferences/">
<i class="fas fa-cog fa-fw"></i>&nbsp;Zones
</a>
</li>
<li id="manage-impex">
<a href="/rowers/me/exportsettings/">
<i class="fas fa-cloud-download fa-fw"></i>&nbsp;Import/Export
</a>
</li>
<li id="manage-account">
<a href="/rowers/me/edit/">
<i class="fas fa-user fa-fw"></i>&nbsp;Account
</a>
</li>
<li id="manage-favs">
<a href="/rowers/me/favoritecharts/">
<i class="fas fa-chart-area fa-fw"></i>&nbsp;Favorite Charts
</a>
</li>
<li id="manage-workflow">
<a href="/rowers/me/workflowconfig2/">
<i class="fas fa-tachometer-alt-slow fa-fw"></i>&nbsp;Manage Workflow
</a>
</li>
{% if user.is_authenticated and user.is_staff %}
<li id="manage-transactions">
<a href="/rowers/me/transactions/">
<i class="fas fa-credit-card fa-fw"></i>&nbsp;Transactions
</a>
</li>
{% endif %}
</ul><!-- cd-accordion-menu -->
{% include 'menuscript.html' %}

View File

@@ -37,7 +37,7 @@
</ul><!-- cd-accordion-menu -->
{% if user.is_authenticated and user|is_manager %}
{% if user.is_authenticated and user|is_manager and rower %}
<p>&nbsp;</p>
{% if user|coach_rowers %}
<ul class="cd-accordion-menu animated">

View File

@@ -47,7 +47,7 @@
{% if user.is_authenticated and user|is_manager %}
{% if user.is_authenticated and user|is_manager and rower %}
<p>&nbsp;</p>
{% if user|coach_rowers %}
@@ -59,7 +59,7 @@
{% for member in user|coach_rowers %}
<a href={{ request.path|userurl:member.user }}?when={{ timeperiod }}>
<i class="fas fa-user fa-fw"></i>
{% if member == rower.user %}
{% if member == rower %}
&bull;
{% else %}
&nbsp;
@@ -73,7 +73,7 @@
{% endif %}
{% endif %}
{% if teams %}
{% if teams %}
<p>&nbsp;</p>
<ul class="cd-accordion-menu animated">
<li class="has-children" id="teams">

View File

@@ -36,6 +36,6 @@
{% endblock %}
{% block sidebar %}
{% include 'menu_profile.html' %}
{% include 'menu_payments.html' %}
{% endblock %}

View File

@@ -109,6 +109,6 @@
{% endblock %}
{% block sidebar %}
{% include 'menu_profile.html' %}
{% include 'menu_payments.html' %}
{% endblock %}

View File

@@ -69,6 +69,6 @@
{% endblock %}
{% block sidebar %}
{% include 'menu_profile.html' %}
{% include 'menu_payments.html' %}
{% endblock %}

View File

@@ -20,5 +20,5 @@
{% endblock %}
{% block sidebar %}
{% include 'menu_profile.html' %}
{% include 'menu_payments.html' %}
{% endblock %}

View File

@@ -57,6 +57,6 @@
{% endblock %}
{% block sidebar %}
{% include 'menu_profile.html' %}
{% include 'menu_payments.html' %}
{% endblock %}

View File

@@ -125,6 +125,6 @@
{% endblock %}
{% block sidebar %}
{% include 'menu_profile.html' %}
{% include 'menu_payments.html' %}
{% endblock %}

View File

@@ -380,7 +380,9 @@ from rowers.teams import coach_getcoachees
@register.filter
def coach_rowers(user):
return coach_getcoachees(user.rower)
thelist = [user.rower]+[c for c in coach_getcoachees(user.rower)]
return thelist
@register.filter
def verbosetimeperiod(timeperiod):

View File

@@ -61,10 +61,10 @@ class URLTests(TestCase):
'/rowers/404/',
'/rowers/500/',
'/rowers/502/',
'/rowers/1/list-workouts/',
'/rowers/1/list-workouts/2016-01-01/2016-12-31/',
'/rowers/1/ote-bests/',
'/rowers/1/ote-bests2/2016-01-01/2016-12-31/',
# '/rowers/1/list-workouts/',
# '/rowers/1/list-workouts/2016-01-01/2016-12-31/',
# '/rowers/1/ote-bests/',
# '/rowers/1/ote-bests2/2016-01-01/2016-12-31/',
'/rowers/about/',
'/rowers/workout/addmanual/',
'/rowers/agegroupcp/30/',
@@ -80,9 +80,9 @@ class URLTests(TestCase):
'/rowers/createplan/',
'/rowers/createplan/user/1/',
'/rowers/cumstats/',
'/rowers/cumstats/2016-01-01/2016-12-31/',
# '/rowers/cumstats/2016-01-01/2016-12-31/',
'/rowers/cumstats/user/1/',
'/rowers/cumstats/user/1/2016-01-01/2016-12-31/',
# '/rowers/cumstats/user/1/2016-01-01/2016-12-31/',
'/rowers/developers/',
'/rowers/email/',
'/rowers/email/thankyou/',
@@ -91,14 +91,14 @@ class URLTests(TestCase):
'/rowers/fitness-progress/user/1/rower/',
'/rowers/flexall/',
'/rowers/flexall/spm/hr/None/',
'/rowers/flexall/spm/hr/None/2016-01-01/2016-12-31/',
'/rowers/flexall/spm/hr/None/2016-01-01/2016-12-31/user/1/',
# '/rowers/flexall/spm/hr/None/2016-01-01/2016-12-31/',
# '/rowers/flexall/spm/hr/None/2016-01-01/2016-12-31/user/1/',
'/rowers/flexall/user/1/',
'/rowers/flexalldata/',
'/rowers/help/',
'/rowers/histo/',
'/rowers/histo/user/1/',
'/rowers/histo/user/1/2016-01-01/2016-12-31/',
# '/rowers/histo/user/1/2016-01-01/2016-12-31/',
'/rowers/histodata/',
# '/rowers/job-kill/1/',
# '/rowers/jobs-status/',
@@ -109,8 +109,8 @@ class URLTests(TestCase):
'/rowers/list-graphs/',
'/rowers/list-jobs/',
'/rowers/list-workouts/',
'/rowers/list-workouts/2016-01-01/2016-12-31/',
'/rowers/list-workouts/2016-01-01/2016-12-31/user/1/',
# '/rowers/list-workouts/2016-01-01/2016-12-31/',
# '/rowers/list-workouts/2016-01-01/2016-12-31/user/1/',
'/rowers/list-workouts/ranking/',
'/rowers/list-workouts/user/1/',
'/rowers/me/calcdps/',
@@ -130,19 +130,19 @@ class URLTests(TestCase):
'/rowers/me/workflowdefault/',
# '/rowers/multi-compare/',
'/rowers/ote-bests/',
'/rowers/ote-bests/2016-01-01/2016-12-31/',
# '/rowers/ote-bests/2016-01-01/2016-12-31/',
'/rowers/ote-bests/user/1/',
'/rowers/ote-bests/user/1/2016-01-01/2016-12-31/',
# '/rowers/ote-bests/user/1/2016-01-01/2016-12-31/',
'/rowers/ote-bests2/',
'/rowers/ote-bests2/2016-01-01/2016-12-31/',
# '/rowers/ote-bests2/2016-01-01/2016-12-31/',
'/rowers/ote-bests2/user/1/',
'/rowers/ote-ranking/',
'/rowers/ote-ranking/2016-01-01/2016-12-31/',
# '/rowers/ote-ranking/2016-01-01/2016-12-31/',
'/rowers/ote-ranking/user/1/',
'/rowers/ote-ranking/user/1/2016-01-01/2016-12-31/',
# '/rowers/ote-ranking/user/1/2016-01-01/2016-12-31/',
'/rowers/otw-bests/',
'/rowers/otw-bests/2016-01-01/2016-12-31/',
'/rowers/otw-bests/user/1/2016-01-01/2016-12-31/',
# '/rowers/otw-bests/2016-01-01/2016-12-31/',
# '/rowers/otw-bests/user/1/2016-01-01/2016-12-31/',
'/rowers/partners/',
'/rowers/physics/',
'/rowers/planrequired/',
@@ -150,8 +150,8 @@ class URLTests(TestCase):
'/rowers/register/',
'/rowers/register/thankyou/',
'/rowers/sessions/',
'/rowers/sessions/2016-01-01/2016-12-31/',
'/rowers/sessions/2016-01-01/2016-12-31/user/1/',
# '/rowers/sessions/2016-01-01/2016-12-31/',
# '/rowers/sessions/2016-01-01/2016-12-31/user/1/',
'/rowers/sessions/coach/',
# '/rowers/sessions/coach/user/1/',
'/rowers/sessions/create/',
@@ -168,7 +168,7 @@ class URLTests(TestCase):
# '/rowers/sessions/user/1/',
'/rowers/team-compare-select/',
'/rowers/team-compare-select/workout/'+encoded1+'/',
'/rowers/team-compare-select/2016-01-01/2016-12-31/',
# '/rowers/team-compare-select/2016-01-01/2016-12-31/',
# '/rowers/test-job/2/',
# '/rowers/test-job2/2/',
# '/rowers/test_callback/',
@@ -228,12 +228,12 @@ class URLTests(TestCase):
'/rowers/workout/'+encoded1+'/wind/',
'/rowers/workout/'+encoded1+'/workflow/',
'/rowers/workout/fusion/'+encoded1+'/',
'/rowers/workout/fusion/'+encoded1+'/2016-01-01/2016-12-31/',
# '/rowers/workout/fusion/'+encoded1+'/2016-01-01/2016-12-31/',
'/rowers/workout/upload/',
'/rowers/workout/upload/team/',
'/rowers/workouts-join/',
'/rowers/workouts-join-select/',
'/rowers/workouts-join-select/2016-01-01/2016-12-31/',
# '/rowers/workouts-join-select/2016-01-01/2016-12-31/',
]
# urlstotest = ['/rowers/createplan/user/1/']
@@ -283,7 +283,7 @@ class URLTests(TestCase):
print(response.templates[0].name)
print(url)
print(u)
print(response.status_code)
print(response2.status_code)
tested.append(u)
self.assertIn(response2.status_code,
[200,302])

Binary file not shown.

View File

@@ -135,20 +135,20 @@ urlpatterns = [
views.agegrouprecordview,name='agegrouprecordview'),
url(r'^list-workouts/ranking/$',views.workouts_view,{'rankingonly':True},
name='workouts_view'),
url(r'^list-workouts/team/(?P<teamid>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.workouts_view,
name='workouts_view'),
# url(r'^list-workouts/team/(?P<teamid>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.workouts_view,
# name='workouts_view'),
url(r'^list-workouts/team/(?P<teamid>\d+)/$',views.workouts_view,
name='workouts_view'),
url(r'^(?P<rowerid>\d+)/list-workouts/$',views.workouts_view,
name='workouts_view'),
url(r'^(?P<rowerid>\d+)/list-workouts/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.workouts_view,
name='workouts_view'),
# url(r'^(?P<rowerid>\d+)/list-workouts/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.workouts_view,
# name='workouts_view'),
url(r'^list-workouts/user/(?P<userid>\d+)/$',views.workouts_view,
name='workouts_view'),
url(r'^list-workouts/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/user/(?P<userid>\d+)/$',views.workouts_view,
name='workouts_view'),
url(r'^list-workouts/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.workouts_view,
name='workouts_view'),
# url(r'^list-workouts/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/user/(?P<userid>\d+)/$',views.workouts_view,
# name='workouts_view'),
# url(r'^list-workouts/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.workouts_view,
# name='workouts_view'),
url(r'^virtualevents/$',views.virtualevents_view,name='virtualevents_view'),
url(r'^virtualevent/create/$',views.virtualevent_create_view,name='virtualevent_create_view'),
url(r'^virtualevent/createindoor/$',views.indoorvirtualevent_create_view,name='indoorvirtualevent_create_view'),
@@ -176,16 +176,16 @@ urlpatterns = [
url(r'^courses/upload/$',views.course_upload_view,name='course_upload_view'),
url(r'^workout/addmanual/$',views.addmanual_view,name='addmanual_view'),
url(r'^team-compare-select/workout/(?P<id>\d+)/team/(?P<teamid>\d+)/user/(?P<userid>\d+)/$',views.team_comparison_select,name='team_comparison_select'),
url(r'^team-compare-select/team/(?P<teamid>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/user/(?P<userid>\d+)/$',views.team_comparison_select,name='team_comparison_select'),
url(r'^team-compare-select/team/(?P<teamid>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.team_comparison_select,name='team_comparison_select'),
# url(r'^team-compare-select/team/(?P<teamid>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/user/(?P<userid>\d+)/$',views.team_comparison_select,name='team_comparison_select'),
# url(r'^team-compare-select/team/(?P<teamid>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.team_comparison_select,name='team_comparison_select'),
url(r'^team-compare-select/workout/(?P<id>\b[0-9A-Fa-f]+\b)/team/(?P<teamid>\d+)/$',views.team_comparison_select,name='team_comparison_select'),
url(r'^team-compare-select/team/(?P<teamid>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.team_comparison_select,name='team_comparison_select'),
url(r'^team-compare-select/team/(?P<teamid>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/user/(?P<userid>\d+)/$',views.team_comparison_select,name='team_comparison_select'),
# url(r'^team-compare-select/team/(?P<teamid>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.team_comparison_select,name='team_comparison_select'),
# url(r'^team-compare-select/team/(?P<teamid>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/user/(?P<userid>\d+)/$',views.team_comparison_select,name='team_comparison_select'),
url(r'^team-compare-select/workout/(?P<id>\b[0-9A-Fa-f]+\b)/team/(?P<teamid>\d+)/$',views.team_comparison_select,name='team_comparison_select'),
url(r'^team-compare-select/workout/(?P<id>\b[0-9A-Fa-f]+\b)/team/(?P<teamid>\d+)/user/(?P<userid>\d+)/$',views.team_comparison_select,name='team_comparison_select'),
url(r'^team-compare-select/workout/(?P<id>\b[0-9A-Fa-f]+\b)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.team_comparison_select,name='team_comparison_select'),
url(r'^team-compare-select/workout/(?P<id>\b[0-9A-Fa-f]+\b)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/user/(?P<userid>\d+)/$',views.team_comparison_select,name='team_comparison_select'),
url(r'^team-compare-select/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/user/(?P<userid>\d+)/$',views.team_comparison_select,name='team_comparison_select'),
# url(r'^team-compare-select/workout/(?P<id>\b[0-9A-Fa-f]+\b)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.team_comparison_select,name='team_comparison_select'),
# url(r'^team-compare-select/workout/(?P<id>\b[0-9A-Fa-f]+\b)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/user/(?P<userid>\d+)/$',views.team_comparison_select,name='team_comparison_select'),
# url(r'^team-compare-select/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/user/(?P<userid>\d+)/$',views.team_comparison_select,name='team_comparison_select'),
url(r'^team-compare-select/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.team_comparison_select,name='team_comparison_select'),
url(r'^team-compare-select/workout/(?P<id>\b[0-9A-Fa-f]+\b)/user/(?P<userid>\d+)/$',views.team_comparison_select,name='team_comparison_select'),
url(r'^team-compare-select/team/(?P<teamid>\d+)/user/(?P<userid>\d+)/$',views.team_comparison_select,name='team_comparison_select'),
@@ -193,17 +193,18 @@ urlpatterns = [
url(r'^team-compare-select/team/(?P<teamid>\d+)/$',views.team_comparison_select,name='team_comparison_select'),
url(r'^team-compare-select/user/(?P<userid>\d+)/$',views.team_comparison_select,name='team_comparison_select'),
url(r'^team-compare-select/$',views.team_comparison_select,name='team_comparison_select'),
url(r'^workouts-join-select/team/(?P<teamid>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.workouts_join_select,
name='workouts_join_select'),
# url(r'^workouts-join-select/team/(?P<teamid>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.workouts_join_select,
# name='workouts_join_select'),
url(r'^workouts-join/$',views.workouts_join_view,name='workouts_join_view'),
url(r'^workouts-join-select/team/(?P<teamid>\d+)/$',views.workouts_join_select,name='workouts_join_select'),
url(r'^workouts-join-select/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.workouts_join_select,name='workouts_join_select'),
# url(r'^workouts-join-select/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.workouts_join_select,name='workouts_join_select'),
url(r'^workouts-join-select/$',views.workouts_join_select,name='workouts_join_select'),
url(r'^workouts-join-select/user/(?P<userid>\d+)/$',views.workouts_join_select,name='workouts_join_select'),
url(r'^user-boxplot-select/user/(?P<userid>\d+)/$',views.user_boxplot_select,name='user_boxplot_select'),
url(r'^user-boxplot-select/$',views.user_boxplot_select,name='user_boxplot_select'),
url(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'),
# url(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'),
url(r'^user-multiflex-select/user/(?P<userid>\d+)/$',views.user_multiflex_select,name='user_multiflex_select'),
url(r'^user-multiflex-select/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.user_multiflex_select,name='user_multiflex_select'),
# url(r'^user-multiflex-select/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.user_multiflex_select,name='user_multiflex_select'),
url(r'^user-multiflex-select/$',views.user_multiflex_select,name='user_multiflex_select'),
url(r'^list-jobs/$',views.session_jobs_view,name='session_jobs_view'),
url(r'^jobs-status/$',views.session_jobs_status,name='session_jobs_status'),
@@ -217,37 +218,37 @@ urlpatterns = [
url(r'^fitness-progress/$',views.fitnessmetric_view,name='fitnessmetric_view'),
url(r'^fitness-progress/user/(?P<id>\d+)/$',views.fitnessmetric_view,name='fitnessmetric_view'),
url(r'^fitness-progress/user/(?P<id>\d+)/(?P<mode>\w+.*)/$',views.fitnessmetric_view,name='fitnessmetric_view'),
url(r'^ote-bests/user/(?P<theuser>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.rankings_view,name='rankings_view'),
# url(r'^ote-bests/user/(?P<theuser>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.rankings_view,name='rankings_view'),
url(r'^ote-bests/user/(?P<theuser>\d+)/$',views.rankings_view,name='rankings_view'),
url(r'^ote-bests/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.rankings_view,name='rankings_view'),
# url(r'^ote-bests/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.rankings_view,name='rankings_view'),
url(r'^ote-bests/$',views.rankings_view,name='rankings_view'),
url(r'^(?P<theuser>\d+)/ote-bests/$',views.rankings_view,name='rankings_view'),
url(r'^(?P<theuser>\d+)/ote-bests2/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.rankings_view2,name='rankings_view2'),
# url(r'^(?P<theuser>\d+)/ote-bests2/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.rankings_view2,name='rankings_view2'),
url(r'^ote-bests2/user/(?P<theuser>\d+)/$',views.rankings_view2,name='rankings_view2'),
url(r'^ote-bests2/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.rankings_view2,name='rankings_view2'),
# url(r'^ote-bests2/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.rankings_view2,name='rankings_view2'),
url(r'^ote-bests2/$',views.rankings_view2,name='rankings_view2'),
url(r'^otw-bests/user/(?P<theuser>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.otwrankings_view,name='otwrankings_view'),
url(r'^otw-bests/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.otwrankings_view,name='otwrankings_view'),
# url(r'^otw-bests/user/(?P<theuser>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.otwrankings_view,name='otwrankings_view'),
# url(r'^otw-bests/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.otwrankings_view,name='otwrankings_view'),
url(r'^otw-bests/user/(?P<theuser>\d+)/$',views.otwrankings_view,name='otwrankings_view'),
url(r'^otw-bests/$',views.otwrankings_view,name='otwrankings_view'),
url(r'^ote-ranking/user/(?P<theuser>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.oterankings_view,name='oterankings_view'),
url(r'^ote-ranking/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.oterankings_view,name='oterankings_view'),
# url(r'^ote-ranking/user/(?P<theuser>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.oterankings_view,name='oterankings_view'),
# url(r'^ote-ranking/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.oterankings_view,name='oterankings_view'),
url(r'^ote-ranking/$',views.oterankings_view,name='oterankings_view'),
url(r'^ote-ranking/user/(?P<theuser>\d+)/$',views.oterankings_view,name='oterankings_view'),
url(r'^flexall/(?P<xparam>\w+.*)/(?P<yparam1>\w+.*)/(?P<yparam2>\w+.*)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/user/(?P<theuser>\d+)/$',views.cum_flex,name='cum_flex'),
url(r'^flexall/(?P<xparam>\w+.*)/(?P<yparam1>\w+.*)/(?P<yparam2>\w+.*)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.cum_flex,name='cum_flex'),
# url(r'^flexall/(?P<xparam>\w+.*)/(?P<yparam1>\w+.*)/(?P<yparam2>\w+.*)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/user/(?P<theuser>\d+)/$',views.cum_flex,name='cum_flex'),
# url(r'^flexall/(?P<xparam>\w+.*)/(?P<yparam1>\w+.*)/(?P<yparam2>\w+.*)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.cum_flex,name='cum_flex'),
url(r'^flexall/(?P<xparam>\w+.*)/(?P<yparam1>\w+.*)/(?P<yparam2>\w+.*)/$',views.cum_flex,name='cum_flex'),
url(r'^flexall/user/(?P<theuser>\d+)/$',views.cum_flex,name='cum_flex'),
url(r'^flexall/$',views.cum_flex,name='cum_flex'),
url(r'^flexalldata/$',views.cum_flex_data,name='cum_flex_data'),
url(r'^histo/user/(?P<theuser>\d+)/$',views.histo,name='histo'),
url(r'^histodata/$',views.histo_data,name='histo_data'),
url(r'^histo/user/(?P<theuser>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.histo,name='histo'),
# url(r'^histo/user/(?P<theuser>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.histo,name='histo'),
url(r'^histo/$',views.histo,name='histo'),
url(r'^cumstats/user/(?P<theuser>\d+)/$',views.cumstats,name='cumstats'),
url(r'^cumstats/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.cumstats,name='cumstats'),
url(r'^cumstats/user/(?P<theuser>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.cumstats,name='cumstats'),
url(r'^cumstats/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.cumstats,name='cumstats'),
# url(r'^cumstats/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.cumstats,name='cumstats'),
# url(r'^cumstats/user/(?P<theuser>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.cumstats,name='cumstats'),
# url(r'^cumstats/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.cumstats,name='cumstats'),
url(r'^cumstats/$',views.cumstats,name='cumstats'),
url(r'^graph/(?P<id>\d+)/$',views.graph_show_view,name='graph_show_view'),
url(r'^graph/(?P<pk>\d+)/delete/$',views.GraphDelete.as_view(),name='graph_delete'),
@@ -277,8 +278,8 @@ urlpatterns = [
name='workout_csvemail_view'),
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/csvtoadmin/$',views.workout_csvtoadmin_view,
name='workout_csvtoadmin_view'),
url(r'^ergcpdatatoadmin/(?P<theuser>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.otecp_toadmin_view,name='otecp_toadmin_view'),
url(r'^otwcpdatatoadmin/(?P<theuser>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.otwcp_toadmin_view,name='otwcp_toadmin_view'),
# url(r'^ergcpdatatoadmin/(?P<theuser>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.otecp_toadmin_view,name='otecp_toadmin_view'),
# url(r'^otwcpdatatoadmin/(?P<theuser>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.otwcp_toadmin_view,name='otwcp_toadmin_view'),
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/edit/$',views.workout_edit_view,
name='workout_edit_view'),
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/map/$',views.workout_map_view,name='workout_map_view'),
@@ -316,7 +317,7 @@ urlpatterns = [
url(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/$',views.workout_view,name='workout_view'),
url(r'^workout/fusion/(?P<id1>\b[0-9A-Fa-f]+\b)/(?P<id2>\b[0-9A-Fa-f]+\b)/$',views.workout_fusion_view,name='workout_fusion_view'),
url(r'^workout/fusion/(?P<id>\b[0-9A-Fa-f]+\b)/$',views.workout_fusion_list,name='workout_fusion_list'),
url(r'^workout/fusion/(?P<id>\b[0-9A-Fa-f]+\b)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.workout_fusion_list,name='workout_fusion_list'),
# url(r'^workout/fusion/(?P<id>\b[0-9A-Fa-f]+\b)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',views.workout_fusion_list,name='workout_fusion_list'),
url(r'^help/$',TemplateView.as_view(
template_name='help.html'),name='help'
),
@@ -585,12 +586,12 @@ urlpatterns = [
url(r'^sessions/create/user/(?P<userid>\d+)/$',
views.plannedsession_create_view,
name='plannedsession_create_view'),
url(r'^sessions/create/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',
views.plannedsession_create_view,
name='plannedsession_create_view'),
url(r'^sessions/create/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/user/(?P<userid>\d+)/$',
views.plannedsession_create_view,
name='plannedsession_create_view'),
# url(r'^sessions/create/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',
# views.plannedsession_create_view,
# name='plannedsession_create_view'),
# url(r'^sessions/create/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/user/(?P<userid>\d+)/$',
# views.plannedsession_create_view,
# name='plannedsession_create_view'),
url(r'^sessions/multiclone/$',views.plannedsession_multiclone_view),
url(r'^sessions/multiclone/user/(?P<userid>\d+)/$',
views.plannedsession_multiclone_view,
@@ -656,12 +657,12 @@ urlpatterns = [
name='plannedsessions_view'),
url(r'^sessions/user/(?P<userid>\d+)/$',views.plannedsessions_view,
name='plannedsessions_view'),
url(r'^sessions/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',
views.plannedsessions_view,
name='plannedsessions_view'),
url(r'^sessions/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/user/(?P<userid>\d+)/$',
views.plannedsessions_view,
name='plannedsessions_view'),
# url(r'^sessions/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/$',
# views.plannedsessions_view,
# name='plannedsessions_view'),
# url(r'^sessions/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\d+-\d+-\d+)/user/(?P<userid>\d+)/$',
# views.plannedsessions_view,
# name='plannedsessions_view'),
url(r'^courses/(?P<id>\d+)/edit/$',views.course_edit_view,
name='course_edit_view'),
url(r'^courses/(?P<id>\d+)/delete/$',views.course_delete_view),

View File

@@ -3,7 +3,7 @@ from statements import *
def paidplans_view(request):
if not request.user.is_anonymous():
r = getrequestrower(request)
r = request.user.rower
if r.paymentprocessor != 'braintree' and r.paymenttype == 'recurring':
messages.error(request,'Automated payment processing is currently only available through BrainTree (by PayPal). You are currently on a recurring payment plan with PayPal. Contact the site administrator at support@rowsandall.com before you proceed')
else:
@@ -21,7 +21,7 @@ def billing_view(request):
url = reverse('promembership')
return HttpResponseRedirect(url)
r = getrequestrower(request)
r = request.user.rower
if r.paymentprocessor != 'braintree' and r.paymenttype == 'recurring':
messages.error(request,'Automated payment processing is currently only available through BrainTree (by PayPal). You are currently on a recurring payment plan with PayPal. Contact the site administrator at support@rowsandall.com before you proceed')
@@ -72,7 +72,7 @@ def upgrade_view(request):
url = reverse('promembership')
return HttpResponseRedirect(url)
r = getrequestrower(request)
r = request.user.rower
if r.paymentprocessor != 'braintree' and r.paymenttype == 'recurring':
messages.error(request,'Automated payment processing is currently only available through BrainTree (by PayPal). You are currently on a recurring payment plan with PayPal. Contact the site administrator at support@rowsandall.com before you proceed')
@@ -117,7 +117,7 @@ def downgrade_view(request):
url = reverse('promembership')
return HttpResponseRedirect(url)
r = getrequestrower(request)
r = request.user.rower
if r.paymentprocessor != 'braintree' and r.paymenttype == 'recurring':
messages.error(request,'Automated payment processing is currently only available through BrainTree (by PayPal). You are currently on a recurring payment plan with PayPal. Contact the site administrator at support@rowsandall.com before you proceed')
@@ -172,7 +172,7 @@ def plan_stop_view(request):
url = reverse('promembership')
return HttpResponseRedirect(url)
r = getrequestrower(request)
r = request.user.rower
subscriptions = []
@@ -200,7 +200,7 @@ def plan_tobasic_view(request,id=0):
url = reverse('promembership')
return HttpResponseRedirect(url)
r = getrequestrower(request)
r = request.user.rower
if r.paidplan.paymentprocessor == 'braintree':
success, themessages,errormessages = braintreestuff.cancel_subscription(r,id)
@@ -229,7 +229,7 @@ def upgrade_confirm_view(request,planid = 0):
url = reverse(billing_view)
return HttpResponseRedirect(url)
r = getrequestrower(request)
r = request.user.rower
if r.paymentprocessor != 'braintree' and r.paymenttype == 'recurring':
messages.error(request,'Automated payment processing is currently only available through BrainTree (by PayPal). You are currently on a recurring payment plan with PayPal. Contact the site administrator at support@rowsandall.com before you proceed')
@@ -257,7 +257,7 @@ def downgrade_confirm_view(request,planid = 0):
url = reverse(billing_view)
return HttpResponseRedirect(url)
r = getrequestrower(request)
r = request.user.rower
client_token = braintreestuff.get_client_token(r)
@@ -283,7 +283,7 @@ def payment_confirm_view(request,planid = 0):
url = reverse(billing_view)
return HttpResponseRedirect(url)
r = getrequestrower(request)
r = request.user.rower
if r.paymentprocessor != 'braintree' and r.paymenttype == 'recurring':
messages.error(request,'Automated payment processing is currently only available through BrainTree (by PayPal). You are currently on a recurring payment plan with PayPal. Contact the site administrator at support@rowsandall.com before you proceed')
@@ -306,7 +306,7 @@ def checkouts_view(request):
return HttpResponseRedirect(url)
r = getrequestrower(request)
r = request.user.rower
if r.paymentprocessor != 'braintree' and r.paymenttype == 'recurring':
messages.error(request,'Automated payment processing is currently only available through BrainTree (by PayPal). You are currently on a recurring payment plan with PayPal. Contact the site administrator at support@rowsandall.com before you proceed')
@@ -354,7 +354,7 @@ def upgrade_checkouts_view(request):
return HttpResponseRedirect(url)
r = getrequestrower(request)
r = request.user.rower
if request.method != 'POST':
url = reverse(paidplans_view)
@@ -400,7 +400,7 @@ def downgrade_checkouts_view(request):
return HttpResponseRedirect(url)
r = getrequestrower(request)
r = request.user.rower
if request.method != 'POST':
url = reverse(paidplans_view)
@@ -447,7 +447,7 @@ def payment_completed_view(request):
amount = request.GET.get('amount',0)
r = getrequestrower(request)
r = request.user.rower
return render(request,
"payment_completed.html",
@@ -461,8 +461,8 @@ def downgrade_completed_view(request):
if not PAYMENT_PROCESSING_ON:
url = reverse('promembership')
return HttpResponseRedirect(url)
r = getrequestrower(request)
r = request.user.rower
return render(request,
"downgrade_completed.html",

View File

@@ -4363,11 +4363,11 @@ def team_workout_upload_view(request,message="",
rowerform.fields['user'].queryset = User.objects.filter(rower__isnull=False,rower__team__in=myteams).distinct()
return render(request, 'team_document_form.html',
{'form':form,
'teams':get_my_teams(request.user),
# 'teams':get_my_teams(request.user),
'optionsform': optionsform,
'active': 'nav-workouts',
'breadcrumbs':breadcrumbs,
'rower':r,
# 'rower':r,
'rowerform':rowerform,
})

View File

@@ -15,5 +15,5 @@ HTTP Error 400 Bad Request.
{% endblock %}
{% block sidebar %}
{% include 'menu_workouts.html' %}
{% include 'menu_other.html' %}
{% endblock %}

View File

@@ -16,5 +16,5 @@
{% endblock %}
{% block sidebar %}
{% include 'menu_workouts.html' %}
{% include 'menu_other.html' %}
{% endblock %}

View File

@@ -18,5 +18,5 @@
{% endblock %}
{% block sidebar %}
{% include 'menu_workouts.html' %}
{% include 'menu_other.html' %}
{% endblock %}

View File

@@ -26,5 +26,5 @@
{% endblock %}
{% block sidebar %}
{% include 'menu_workouts.html' %}
{% include 'menu_other.html' %}
{% endblock %}

View File

@@ -26,5 +26,5 @@
{% endblock %}
{% block sidebar %}
{% include 'menu_workouts.html' %}
{% include 'menu_other.html' %}
{% endblock %}