Private
Public Access
1
0

changed links to paidplans

was promembership
This commit is contained in:
Sander Roosendaal
2019-01-04 09:14:14 +01:00
parent 121abe623c
commit 50928cba32
13 changed files with 106 additions and 106 deletions

View File

@@ -93,7 +93,7 @@ and inspired by the RowPro Dan Burpee spreadsheet
<p>We offer three plans. Click on the name of the plan to find out more: <p>We offer three plans. Click on the name of the plan to find out more:
<ul> <ul>
<li><a href="/rowers/promembership">Pro Membership</a>, <li><a href="/rowers/paidplans">Pro Membership</a>,
offering additional rowing metrics and analysis offering additional rowing metrics and analysis
tools for individual rowers.</li> tools for individual rowers.</li>
<li><a href="/rowers/planmembership">Self-Coach Membership</a>, <li><a href="/rowers/planmembership">Self-Coach Membership</a>,

View File

@@ -16,7 +16,7 @@
<h1>{{ workout.name }} - Advanced</h1> <h1>{{ workout.name }} - Advanced</h1>
{% if user.rower.rowerplan == 'basic' %} {% if user.rower.rowerplan == 'basic' %}
<p>Functionality marked with an asterisk (*) is limited to the paid plans. See <p>Functionality marked with an asterisk (*) is limited to the paid plans. See
<a href="/rowers/promembership">the page about Pro membership</a> <a href="/rowers/paidplans">the page about Pro membership</a>
for more information and to sign up for Pro Membership</a></p> for more information and to sign up for Pro Membership</a></p>
{% endif %} {% endif %}
</div> </div>
@@ -62,7 +62,7 @@
{% if user|is_promember %} {% if user|is_promember %}
<a class="button blue small" href="/rowers/workout/compare/{{ workout.id }}">Compare Workouts</a> <a class="button blue small" href="/rowers/workout/compare/{{ workout.id }}">Compare Workouts</a>
{% else %} {% else %}
<a class="button blue small" href="/rowers/promembership/">Compare Workouts*</a> <a class="button blue small" href="/rowers/paidplans/">Compare Workouts*</a>
{% endif %} {% endif %}
<p> <p>
Compare this workout to other workouts. Plot HR, SPM, or pace vs time or distance for the two workouts. Compare this workout to other workouts. Plot HR, SPM, or pace vs time or distance for the two workouts.
@@ -82,7 +82,7 @@
{% if user|is_promember %} {% if user|is_promember %}
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/editintervals">Edit Intervals</a> <a class="button blue small" href="/rowers/workout/{{ workout.id }}/editintervals">Edit Intervals</a>
{% else %} {% else %}
<a class="button blue small" href="/rowers/promembership">Edit Intervals*</a> <a class="button blue small" href="/rowers/paidplans">Edit Intervals*</a>
{% endif %} {% endif %}
</p> </p>
<span class="tooltiptext">Enter or change the interval and summary data for your workout</span> <span class="tooltiptext">Enter or change the interval and summary data for your workout</span>
@@ -98,7 +98,7 @@
{% if user|is_promember %} {% if user|is_promember %}
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/adddistanceplot2">Dist Metrics Plot</a> <a class="button blue small" href="/rowers/workout/{{ workout.id }}/adddistanceplot2">Dist Metrics Plot</a>
{% else %} {% else %}
<a class="button blue small" href="/rowers/promembership">Dist Metrics Plot*</a> <a class="button blue small" href="/rowers/paidplans">Dist Metrics Plot*</a>
{% endif %} {% endif %}
</p> </p>
<p> <p>
@@ -110,7 +110,7 @@
{% if user|is_promember %} {% if user|is_promember %}
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/addtimeplot2">Time Metrics Plot</a> <a class="button blue small" href="/rowers/workout/{{ workout.id }}/addtimeplot2">Time Metrics Plot</a>
{% else %} {% else %}
<a class="button blue small" href="/rowers/promembership">Time Metrics Plot*</a> <a class="button blue small" href="/rowers/paidplans">Time Metrics Plot*</a>
{% endif %} {% endif %}
</p> </p>
<p> <p>
@@ -122,7 +122,7 @@
{% if user|is_promember %} {% if user|is_promember %}
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/histo">Power Histogram</a> <a class="button blue small" href="/rowers/workout/{{ workout.id }}/histo">Power Histogram</a>
{% else %} {% else %}
<a class="button blue small" href="/rowers/promembership">Power Histogram*</a> <a class="button blue small" href="/rowers/paidplans">Power Histogram*</a>
{% endif %} {% endif %}
</p> </p>
<p> <p>
@@ -136,7 +136,7 @@
{% if user|is_promember %} {% if user|is_promember %}
<a class="button blue small" href="/rowers/workouts-join-select">Glue</a> <a class="button blue small" href="/rowers/workouts-join-select">Glue</a>
{% else %} {% else %}
<a class="button blue small" href="/rowers/promembership">Glue*</a> <a class="button blue small" href="/rowers/paidplans">Glue*</a>
{% endif %} {% endif %}
</p> </p>
<p> <p>
@@ -149,7 +149,7 @@
{% if user|is_promember %} {% if user|is_promember %}
<a class="button blue small" href="/rowers/workout/fusion/{{ workout.id }}/">Sensor Fusion</a> <a class="button blue small" href="/rowers/workout/fusion/{{ workout.id }}/">Sensor Fusion</a>
{% else %} {% else %}
<a class="button blue small" href="/rowers/promembership">Sensor Fusion*</a> <a class="button blue small" href="/rowers/paidplans">Sensor Fusion*</a>
{% endif %} {% endif %}
</p> </p>
<p> <p>
@@ -161,7 +161,7 @@
{% if user|is_promember %} {% if user|is_promember %}
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/split">Split Workout</a> <a class="button blue small" href="/rowers/workout/{{ workout.id }}/split">Split Workout</a>
{% else %} {% else %}
<a class="button blue small" href="/rowers/promembership">Split Workout*</a> <a class="button blue small" href="/rowers/paidplans">Split Workout*</a>
{% endif %} {% endif %}
</p> </p>
<p> <p>

View File

@@ -16,7 +16,7 @@
<h1>{{ workout.name }} - Advanced OTW</h1> <h1>{{ workout.name }} - Advanced OTW</h1>
{% if user.rower.rowerplan == 'basic' %} {% if user.rower.rowerplan == 'basic' %}
<p>Functionality marked with an asterisk (*) is limited to the paid plans. See <p>Functionality marked with an asterisk (*) is limited to the paid plans. See
<a href="/rowers/promembership">the page about Pro membership</a> <a href="/rowers/paidplans">the page about Pro membership</a>
for more information and to sign up for Pro Membership</a></p> for more information and to sign up for Pro Membership</a></p>
{% endif %} {% endif %}
<div class="grid_2 alpha"> <div class="grid_2 alpha">
@@ -60,7 +60,7 @@
{% if user|is_promember %} {% if user|is_promember %}
<a class="button blue small" href="/rowers/workout/compare/{{ workout.id }}">Compare Workouts</a> <a class="button blue small" href="/rowers/workout/compare/{{ workout.id }}">Compare Workouts</a>
{% else %} {% else %}
<a class="button blue small" href="/rowers/promembership">Compare Workouts*</a> <a class="button blue small" href="/rowers/paidplans">Compare Workouts*</a>
{% endif %} {% endif %}
</p> </p>
<p> <p>
@@ -82,7 +82,7 @@
{% if user|is_promember %} {% if user|is_promember %}
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/editintervals">Edit Intervals</a> <a class="button blue small" href="/rowers/workout/{{ workout.id }}/editintervals">Edit Intervals</a>
{% else %} {% else %}
<a class="button blue small" href="/rowers/promembership">Edit Intervals*</a> <a class="button blue small" href="/rowers/paidplans">Edit Intervals*</a>
{% endif %} {% endif %}
</p> </p>
<span class="tooltiptext">Enter or change the interval and summary data for your workout</span> <span class="tooltiptext">Enter or change the interval and summary data for your workout</span>
@@ -99,7 +99,7 @@
{% if user|is_promember %} {% if user|is_promember %}
<a class="button blue small"href="/rowers/workout/{{ workout.id }}/crewnerdsummary">CrewNerd Summary</a> <a class="button blue small"href="/rowers/workout/{{ workout.id }}/crewnerdsummary">CrewNerd Summary</a>
{% else %} {% else %}
<a class="button blue small" href="/rowers/promembership">CrewNerd Summary*</a> <a class="button blue small" href="/rowers/paidplans">CrewNerd Summary*</a>
{% endif %} {% endif %}
</p> </p>
@@ -113,7 +113,7 @@
{% if user|is_promember %} {% if user|is_promember %}
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/forcecurve">Stroke Profile (Empower)</a> <a class="button blue small" href="/rowers/workout/{{ workout.id }}/forcecurve">Stroke Profile (Empower)</a>
{% else %} {% else %}
<a class="button blue small" href="/rowers/promembership">Stroke Profile (Empower)*</a> <a class="button blue small" href="/rowers/paidplans">Stroke Profile (Empower)*</a>
{% endif %} {% endif %}
</p> </p>
<span class="tooltiptext">Analyze your stroke force profile (need Empower Oarlock data)</span> <p> <span class="tooltiptext">Analyze your stroke force profile (need Empower Oarlock data)</span> <p>
@@ -126,7 +126,7 @@
{% if user|is_promember %} {% if user|is_promember %}
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/addotwpowerplot">OTW Power Plot</a> <a class="button blue small" href="/rowers/workout/{{ workout.id }}/addotwpowerplot">OTW Power Plot</a>
{% else %} {% else %}
<a class="button blue small" href="/rowers/promembership">OTW Power Plot*</a> <a class="button blue small" href="/rowers/paidplans">OTW Power Plot*</a>
{% endif %} {% endif %}
</p> </p>
<span class="tooltiptext">Note: You must run the OTW calculations under Geeky Stuff first. Otherwise the plot will be empty</span> <span class="tooltiptext">Note: You must run the OTW calculations under Geeky Stuff first. Otherwise the plot will be empty</span>
@@ -146,7 +146,7 @@
{% if user|is_promember %} {% if user|is_promember %}
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/geeky">Geeky Stuff</a> <a class="button blue small" href="/rowers/workout/{{ workout.id }}/geeky">Geeky Stuff</a>
{% else %} {% else %}
<a class="button blue small" href="/rowers/promembership">Geeky Stuff*</a> <a class="button blue small" href="/rowers/paidplans">Geeky Stuff*</a>
{% endif %} {% endif %}
</p> </p>
@@ -161,7 +161,7 @@
{% if user|is_promember %} {% if user|is_promember %}
<a class="button blue small"href="/rowers/workout/{{ workout.id }}/smoothenpace">Smooth out Pace Data</a> <a class="button blue small"href="/rowers/workout/{{ workout.id }}/smoothenpace">Smooth out Pace Data</a>
{% else %} {% else %}
<a class="button blue small" href="/rowers/promembership">Smooth out Pace Data*</a> <a class="button blue small" href="/rowers/paidplans">Smooth out Pace Data*</a>
{% endif %} {% endif %}
</p> </p>
@@ -178,7 +178,7 @@
{% if user|is_promember %} {% if user|is_promember %}
<a class="button blue small"href="/rowers/workout/{{ workout.id }}/undosmoothenpace">Raw Data</a> <a class="button blue small"href="/rowers/workout/{{ workout.id }}/undosmoothenpace">Raw Data</a>
{% else %} {% else %}
<a class="button blue small" href="/rowers/promembership">Reset Smoothing*</a> <a class="button blue small" href="/rowers/paidplans">Reset Smoothing*</a>
{% endif %} {% endif %}
</p> </p>
<p> <p>
@@ -193,7 +193,7 @@
{% if user|is_promember %} {% if user|is_promember %}
<a class="button blue small" href="/rowers/workouts-join-select">Glue</a> <a class="button blue small" href="/rowers/workouts-join-select">Glue</a>
{% else %} {% else %}
<a class="button blue small" href="/rowers/promembership">Glue*</a> <a class="button blue small" href="/rowers/paidplans">Glue*</a>
{% endif %} {% endif %}
</p> </p>
<p> <p>
@@ -205,7 +205,7 @@
{% if user|is_promember %} {% if user|is_promember %}
<a class="button blue small" href="/rowers/workout/fusion/{{ workout.id }}/">Sensor Fusion</a> <a class="button blue small" href="/rowers/workout/fusion/{{ workout.id }}/">Sensor Fusion</a>
{% else %} {% else %}
<a class="button blue small" href="/rowers/promembership">Sensor Fusion*</a> <a class="button blue small" href="/rowers/paidplans">Sensor Fusion*</a>
{% endif %} {% endif %}
</p> </p>
<p> <p>
@@ -217,7 +217,7 @@
{% if user|is_promember %} {% if user|is_promember %}
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/split">Split Workout</a> <a class="button blue small" href="/rowers/workout/{{ workout.id }}/split">Split Workout</a>
{% else %} {% else %}
<a class="button blue small" href="/rowers/promembership">Split Workout*</a> <a class="button blue small" href="/rowers/paidplans">Split Workout*</a>
{% endif %} {% endif %}
</p> </p>
<p> <p>

View File

@@ -98,7 +98,7 @@
{% if user.rower.rowerplan == 'pro' or user.rower.rowerplan == 'coach' %} {% if user.rower.rowerplan == 'pro' or user.rower.rowerplan == 'coach' %}
<h6 class="graytext">Pro Member</h6> <h6 class="graytext">Pro Member</h6>
{% else %} {% else %}
<div class="grid_1"><a class="button green small" href="/rowers/promembership">Upgrade to Pro</a></div> <div class="grid_1"><a class="button green small" href="/rowers/paidplans">Upgrade to Pro</a></div>
{% endif %} {% endif %}
</div> </div>
</div> </div>

View File

@@ -74,7 +74,7 @@
{% endfor %} {% endfor %}
{% else %} {% else %}
{% for key, value in axchoicespro.items %} {% for key, value in axchoicespro.items %}
<a class="button rosy small" href="/rowers/promembership">{{ value }}</a> <a class="button rosy small" href="/rowers/paidplans">{{ value }}</a>
{% endfor %} {% endfor %}
{% endif %} {% endif %}
</div> </div>
@@ -98,7 +98,7 @@
{% else %} {% else %}
{% for key, value in axchoicespro.items %} {% for key, value in axchoicespro.items %}
{% if key not in noylist %} {% if key not in noylist %}
<a class="button rosy small" href="/rowers/promembership">{{ value }} (Pro)</a> <a class="button rosy small" href="/rowers/paidplans">{{ value }} (Pro)</a>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% endif %} {% endif %}

View File

@@ -76,14 +76,14 @@
<a class="button blue small alpha" href="/rowers/workout/{{ id }}/flexchart/driveenergy/{{ yparam1 }}/{{ yparam2 }}/scatter">Work per Stroke</a> <a class="button blue small alpha" href="/rowers/workout/{{ id }}/flexchart/driveenergy/{{ yparam1 }}/{{ yparam2 }}/scatter">Work per Stroke</a>
<a class="button blue small alpha" href="/rowers/workout/{{ id }}/flexchart/drivespeed/{{ yparam1 }}/{{ yparam2 }}/scatter">Drive Speed</a> <a class="button blue small alpha" href="/rowers/workout/{{ id }}/flexchart/drivespeed/{{ yparam1 }}/{{ yparam2 }}/scatter">Drive Speed</a>
{% else %} {% else %}
<a class="button rosy small" href="/rowers/promembership">Power (Pro)</a> <a class="button rosy small" href="/rowers/paidplans">Power (Pro)</a>
<a class="button rosy small" href="/rowers/promembership">HR (Pro)</a> <a class="button rosy small" href="/rowers/paidplans">HR (Pro)</a>
<a class="button rosy small" href="/rowers/promembership">SPM (Pro)</a> <a class="button rosy small" href="/rowers/paidplans">SPM (Pro)</a>
<a class="button rosy small" href="/rowers/promembership">Peak Force (Pro)</a> <a class="button rosy small" href="/rowers/paidplans">Peak Force (Pro)</a>
<a class="button rosy small" href="/rowers/promembership">Average Force (Pro)</a> <a class="button rosy small" href="/rowers/paidplans">Average Force (Pro)</a>
<a class="button rosy small" href="/rowers/promembership">Drive Length (Pro)</a> <a class="button rosy small" href="/rowers/paidplans">Drive Length (Pro)</a>
<a class="button rosy small" href="/rowers/promembership">Work per Stroke (Pro)</a> <a class="button rosy small" href="/rowers/paidplans">Work per Stroke (Pro)</a>
<a class="button rosy small" href="/rowers/promembership">Drive Speed (Pro)</a> <a class="button rosy small" href="/rowers/paidplans">Drive Speed (Pro)</a>
{% endif %} {% endif %}
</div> </div>
@@ -103,11 +103,11 @@
<a class="button blue small" href="/rowers/workout/{{ id }}/flexchart/{{ xparam }}/driveenergy/{{ yparam2 }}/{{ plottype }}">Work per Stroke</a> <a class="button blue small" href="/rowers/workout/{{ id }}/flexchart/{{ xparam }}/driveenergy/{{ yparam2 }}/{{ plottype }}">Work per Stroke</a>
<a class="button blue small" href="/rowers/workout/{{ id }}/flexchart/{{ xparam }}/drivespeed/{{ yparam2 }}/{{ plottype }}">Drive Speed</a> <a class="button blue small" href="/rowers/workout/{{ id }}/flexchart/{{ xparam }}/drivespeed/{{ yparam2 }}/{{ plottype }}">Drive Speed</a>
{% else %} {% else %}
<a class="button rosy small" href="/rowers/promembership">Peak Force (Pro)</a> <a class="button rosy small" href="/rowers/paidplans">Peak Force (Pro)</a>
<a class="button rosy small" href="/rowers/promembership">Average Force (Pro)</a> <a class="button rosy small" href="/rowers/paidplans">Average Force (Pro)</a>
<a class="button rosy small" href="/rowers/promembership">Drive Length (Pro)</a> <a class="button rosy small" href="/rowers/paidplans">Drive Length (Pro)</a>
<a class="button rosy small" href="/rowers/promembership">Work per Stroke (Pro)</a> <a class="button rosy small" href="/rowers/paidplans">Work per Stroke (Pro)</a>
<a class="button rosy small" href="/rowers/promembership">Drive Speed (Pro)</a> <a class="button rosy small" href="/rowers/paidplans">Drive Speed (Pro)</a>
{% endif %} {% endif %}
</div> </div>
@@ -126,11 +126,11 @@
<a class="button blue small" href="/rowers/workout/{{ id }}/flexchart/{{ xparam }}/{{ yparam1 }}/driveenergy/{{ plottype }}">Work per Stroke</a> <a class="button blue small" href="/rowers/workout/{{ id }}/flexchart/{{ xparam }}/{{ yparam1 }}/driveenergy/{{ plottype }}">Work per Stroke</a>
<a class="button blue small" href="/rowers/workout/{{ id }}/flexchart/{{ xparam }}/{{ yparam1 }}/drivespeed/{{ plottype }}">Drive Speed</a> <a class="button blue small" href="/rowers/workout/{{ id }}/flexchart/{{ xparam }}/{{ yparam1 }}/drivespeed/{{ plottype }}">Drive Speed</a>
{% else %} {% else %}
<a class="button rosy small" href="/rowers/promembership">Peak Force (Pro)</a> <a class="button rosy small" href="/rowers/paidplans">Peak Force (Pro)</a>
<a class="button rosy small" href="/rowers/promembership">Average Force (Pro)</a> <a class="button rosy small" href="/rowers/paidplans">Average Force (Pro)</a>
<a class="button rosy small" href="/rowers/promembership">Drive Length (Pro)</a> <a class="button rosy small" href="/rowers/paidplans">Drive Length (Pro)</a>
<a class="button rosy small" href="/rowers/promembership">Work per Stroke (Pro)</a> <a class="button rosy small" href="/rowers/paidplans">Work per Stroke (Pro)</a>
<a class="button rosy small" href="/rowers/promembership">Drive Speed (Pro)</a> <a class="button rosy small" href="/rowers/paidplans">Drive Speed (Pro)</a>
{% endif %} {% endif %}
<a class="button blue small" href="/rowers/workout/{{ id }}/flexchart/{{ xparam }}/{{ yparam1 }}/None/{{ plottype }}">None</a> <a class="button blue small" href="/rowers/workout/{{ id }}/flexchart/{{ xparam }}/{{ yparam1 }}/None/{{ plottype }}">None</a>

View File

@@ -115,7 +115,7 @@
to the partner site</p> to the partner site</p>
<p>These settings only have effect if you are a user on one <p>These settings only have effect if you are a user on one
of the <a href="/rowers/promembership">paid plans</a></p> of the <a href="/rowers/paidplans">paid plans</a></p>
<div class="grid_6 alpha"> <div class="grid_6 alpha">
<form id="importexportform" method="post"> <form id="importexportform" method="post">

View File

@@ -25,7 +25,7 @@
{% if user|is_promember %} {% if user|is_promember %}
<a href="/rowers/workouts-join-select"> <a href="/rowers/workouts-join-select">
{% else %} {% else %}
<a href="/rowers/promembership"> <a href="/rowers/paidplans">
{% endif %} {% endif %}
<i class="fas fa-layer-plus fa-fw"></i>&nbsp;Glue Workouts <i class="fas fa-layer-plus fa-fw"></i>&nbsp;Glue Workouts
</a> </a>

View File

@@ -90,7 +90,7 @@
<p>Missing your best pieces? Upload stroke data of any Concept2 <p>Missing your best pieces? Upload stroke data of any Concept2
ranking piece and they will be automatically added to this page.</p> ranking piece and they will be automatically added to this page.</p>
<p> Don't have stroke data for official Concept2 ranking pieces? <p> Don't have stroke data for official Concept2 ranking pieces?
The <a href="/rowers/promembership">PRO membership</a> ranking piece functionality The <a href="/rowers/paidplans">PRO membership</a> ranking piece functionality
allows you to include your best non ranking pieces and even use allows you to include your best non ranking pieces and even use
parts of workouts for improved calculation accuracy. parts of workouts for improved calculation accuracy.
</p> </p>

View File

@@ -39,7 +39,7 @@
If you find it to be useful, please help us cover If you find it to be useful, please help us cover
our hosting costs and gain access to additional functionality our hosting costs and gain access to additional functionality
by signing on as a Pro member: by signing on as a Pro member:
<a href="https://rowsandall.com/rowers/promembership">https://rowsandall.com/rowers/promembership</a> <a href="https://rowsandall.com/rowers/paidplans">https://rowsandall.com/rowers/paidplans</a>
</p> </p>
<p> <p>

View File

@@ -1647,7 +1647,7 @@ def start_trial_view(request):
if r.protrialexpires is not None: if r.protrialexpires is not None:
messages.error(request,'You do not qualify for a trial') messages.error(request,'You do not qualify for a trial')
url = '/rowers/promembership' url = '/rowers/paidplans'
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
r.protrialexpires = datetime.date.today()+datetime.timedelta(13) r.protrialexpires = datetime.date.today()+datetime.timedelta(13)
@@ -1674,7 +1674,7 @@ def start_plantrial_view(request):
if r.plantrialexpires is not None: if r.plantrialexpires is not None:
messages.error(request,'You do not qualify for a trial') messages.error(request,'You do not qualify for a trial')
url = '/rowers/promembership' url = '/rowers/paidplans'
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
r.plantrialexpires = datetime.date.today()+datetime.timedelta(13) r.plantrialexpires = datetime.date.today()+datetime.timedelta(13)
@@ -3512,7 +3512,7 @@ def planrequired_view(request):
return render(request,'promembership.html') return render(request,'promembership.html')
@user_passes_test(hasplannedsessions,login_url="/rowers/promembership", @user_passes_test(hasplannedsessions,login_url="/rowers/paidplans",
message="This functionality requires a Coach or Self-Coach plan", message="This functionality requires a Coach or Self-Coach plan",
redirect_field_name=None) redirect_field_name=None)
def fitnessmetric_view(request,id=0,mode='rower', def fitnessmetric_view(request,id=0,mode='rower',
@@ -3555,7 +3555,7 @@ def fitnessmetric_view(request,id=0,mode='rower',
# Show the EMpower Oarlock generated Stroke Profile # Show the EMpower Oarlock generated Stroke Profile
@user_passes_test(ispromember,login_url="/rowers/promembership/", @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 workout_forcecurve_view(request,id=0,workstrokesonly=False): def workout_forcecurve_view(request,id=0,workstrokesonly=False):
@@ -3687,7 +3687,7 @@ def workout_histo_view(request,id=0):
# Histogram for a date/time range # Histogram for a date/time range
@user_passes_test(ispromember,login_url="/rowers/promembership", @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 histo(request,theuser=0, def histo(request,theuser=0,
@@ -4802,7 +4802,7 @@ def rankings_view2(request,theuser=0,
'teams':get_my_teams(request.user), 'teams':get_my_teams(request.user),
}) })
@user_passes_test(ispromember,login_url="/rowers/promembership", @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 workout_update_cp_view(request,id=0): def workout_update_cp_view(request,id=0):
@@ -4830,7 +4830,7 @@ def workout_update_cp_view(request,id=0):
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
# Show ranking distances including predicted paces # Show ranking distances including predicted paces
@user_passes_test(ispromember,login_url="/rowers/promembership", @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 otwrankings_view(request,theuser=0, def otwrankings_view(request,theuser=0,
@@ -5235,7 +5235,7 @@ def otwcp_toadmin_view(request,theuser=0,
return response return response
# Show ranking distances including predicted paces # Show ranking distances including predicted paces
@user_passes_test(ispromember,login_url="/rowers/promembership", @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 oterankings_view(request,theuser=0, def oterankings_view(request,theuser=0,
@@ -5677,7 +5677,7 @@ def workout_setprivate_view(request,id,
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
# Joining workout # Joining workout
@user_passes_test(ispromember,login_url="/rowers/promembership", @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 workouts_join_view(request): def workouts_join_view(request):
@@ -5723,7 +5723,7 @@ def workouts_join_view(request):
url = reverse(workouts_join_select) url = reverse(workouts_join_select)
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@user_passes_test(ispromember,login_url="/rowers/promembership", @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 workouts_join_select(request, def workouts_join_select(request,
@@ -6431,7 +6431,7 @@ def multi_compare_view(request,id=0,userid=0):
# Multi Flex Chart with Grouping # Multi Flex Chart with Grouping
@user_passes_test(ispromember,login_url="/rowers/promembership", @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 user_multiflex_select(request, def user_multiflex_select(request,
@@ -6637,7 +6637,7 @@ def user_multiflex_select(request,
'teams':get_my_teams(request.user), 'teams':get_my_teams(request.user),
}) })
@user_passes_test(ispromember,login_url="/rowers/promembership", @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 multiflex_data(request,userid=0, def multiflex_data(request,userid=0,
@@ -6883,7 +6883,7 @@ def multiflex_data(request,userid=0,
}) })
@user_passes_test(ispromember,login_url="/rowers/promembership", @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 multiflex_view(request,userid=0, def multiflex_view(request,userid=0,
@@ -7050,7 +7050,7 @@ def multiflex_view(request,userid=0,
# Box plots # Box plots
@user_passes_test(ispromember,login_url="/rowers/promembership", @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 user_boxplot_select(request, def user_boxplot_select(request,
@@ -7258,7 +7258,7 @@ def user_boxplot_select(request,
'teams':get_my_teams(request.user), 'teams':get_my_teams(request.user),
}) })
@user_passes_test(ispromember,login_url="/rowers/promembership", @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 boxplot_view_data(request,userid=0, def boxplot_view_data(request,userid=0,
@@ -7365,7 +7365,7 @@ def boxplot_view_data(request,userid=0,
"div":div, "div":div,
}) })
@user_passes_test(ispromember,login_url="/rowers/promembership", @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 boxplot_view(request,userid=0, def boxplot_view(request,userid=0,
@@ -7722,7 +7722,7 @@ def workouts_view(request,message='',successmessage='',
# List of workouts to compare a selected workout to # List of workouts to compare a selected workout to
@user_passes_test(ispromember,login_url="/rowers/promembership", @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 workout_comparison_list(request,id=0,message='',successmessage='', def workout_comparison_list(request,id=0,message='',successmessage='',
@@ -7808,7 +7808,7 @@ def workout_comparison_list(request,id=0,message='',successmessage='',
# List of workouts to compare a selected workout to # List of workouts to compare a selected workout to
@user_passes_test(ispromember,login_url="/rowers/promembership", @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 workout_fusion_list(request,id=0,message='',successmessage='', def workout_fusion_list(request,id=0,message='',successmessage='',
@@ -8011,7 +8011,7 @@ def workout_view(request,id=0):
# Resets stroke data to raw data (pace) # Resets stroke data to raw data (pace)
@user_passes_test(ispromember,login_url="/rowers/promembership", @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 workout_undo_smoothenpace_view( def workout_undo_smoothenpace_view(
@@ -8050,7 +8050,7 @@ def workout_undo_smoothenpace_view(
# Data smoothing of pace data # Data smoothing of pace data
@user_passes_test(ispromember,login_url="/rowers/promembership", @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 workout_smoothenpace_view(request,id=0,message="",successmessage=""): def workout_smoothenpace_view(request,id=0,message="",successmessage=""):
@@ -8103,7 +8103,7 @@ def workout_smoothenpace_view(request,id=0,message="",successmessage=""):
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
# Process CrewNerd Summary CSV and update summary # Process CrewNerd Summary CSV and update summary
@user_passes_test(ispromember,login_url="/rowers/promembership", @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 workout_crewnerd_summary_view(request,id=0,message="",successmessage=""): def workout_crewnerd_summary_view(request,id=0,message="",successmessage=""):
@@ -8180,7 +8180,7 @@ def workout_crewnerd_summary_view(request,id=0,message="",successmessage=""):
'id':row.id}) 'id':row.id})
# Get weather for given location and date/time # Get weather for given location and date/time
@user_passes_test(ispromember,login_url="/rowers/promembership", @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 workout_downloadwind_view(request,id=0, def workout_downloadwind_view(request,id=0,
@@ -8248,7 +8248,7 @@ def workout_downloadwind_view(request,id=0,
return response return response
# Get weather for given location and date/time # Get weather for given location and date/time
@user_passes_test(ispromember,login_url="/rowers/promembership",message="This functionality requires a Pro plan or higher",redirect_field_name=None) @user_passes_test(ispromember,login_url="/rowers/paidplans",message="This functionality requires a Pro plan or higher",redirect_field_name=None)
def workout_downloadmetar_view(request,id=0, def workout_downloadmetar_view(request,id=0,
airportcode=None, airportcode=None,
message="",successmessage=""): message="",successmessage=""):
@@ -8315,7 +8315,7 @@ def workout_downloadmetar_view(request,id=0,
# Show form to update wind data # Show form to update wind data
@user_passes_test(ispromember,login_url="/rowers/promembership",message="This functionality requires a Pro plan or higher",redirect_field_name=None) @user_passes_test(ispromember,login_url="/rowers/paidplans",message="This functionality requires a Pro plan or higher",redirect_field_name=None)
def workout_wind_view(request,id=0,message="",successmessage=""): def workout_wind_view(request,id=0,message="",successmessage=""):
row = get_workout(id) row = get_workout(id)
r = getrower(request.user) r = getrower(request.user)
@@ -8451,7 +8451,7 @@ def workout_wind_view(request,id=0,message="",successmessage=""):
# Show form to update River stream data (for river dwellers) # Show form to update River stream data (for river dwellers)
@user_passes_test(ispromember,login_url="/rowers/promembership",message="This functionality requires a Pro plan or higher",redirect_field_name=None) @user_passes_test(ispromember,login_url="/rowers/paidplans",message="This functionality requires a Pro plan or higher",redirect_field_name=None)
def workout_stream_view(request,id=0,message="",successmessage=""): def workout_stream_view(request,id=0,message="",successmessage=""):
row = get_workout(id) row = get_workout(id)
r = getrower(request.user) r = getrower(request.user)
@@ -8537,7 +8537,7 @@ def workout_stream_view(request,id=0,message="",successmessage=""):
'the_div':div}) 'the_div':div})
# Form to set average crew weight and boat type, then run power calcs # Form to set average crew weight and boat type, then run power calcs
@user_passes_test(ispromember, login_url="/rowers/promembership",redirect_field_name=None) @user_passes_test(ispromember, login_url="/rowers/paidplans",redirect_field_name=None)
def workout_otwsetpower_view(request,id=0,message="",successmessage=""): def workout_otwsetpower_view(request,id=0,message="",successmessage=""):
w = get_workout(id) w = get_workout(id)
r = getrower(request.user) r = getrower(request.user)
@@ -8846,7 +8846,7 @@ def instroke_chart(request,id=0,metric=''):
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
# Cumulative stats page # Cumulative stats page
@user_passes_test(ispromember,login_url="/rowers/promembership",message="This functionality requires a Pro plan or higher",redirect_field_name=None) @user_passes_test(ispromember,login_url="/rowers/paidplans",message="This functionality requires a Pro plan or higher",redirect_field_name=None)
def cumstats(request,theuser=0, def cumstats(request,theuser=0,
startdate=timezone.now()-datetime.timedelta(days=30), startdate=timezone.now()-datetime.timedelta(days=30),
enddate=timezone.now(), enddate=timezone.now(),
@@ -12484,7 +12484,7 @@ def workout_upload_view(request,
# This is the main view for processing uploaded files # This is the main view for processing uploaded files
@user_passes_test(iscoachmember,login_url="/rowers/promembership",redirect_field_name=None) @user_passes_test(iscoachmember,login_url="/rowers/paidplans",redirect_field_name=None)
def team_workout_upload_view(request,message="", def team_workout_upload_view(request,message="",
successmessage="", successmessage="",
uploadoptions={ uploadoptions={
@@ -12891,7 +12891,7 @@ def workout_summary_restore_view(request,id,message="",successmessage=""):
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
# Split a workout # Split a workout
@user_passes_test(ispromember,login_url="/rowers/promembership",message="This functionality requires a Pro plan or higher",redirect_field_name=None) @user_passes_test(ispromember,login_url="/rowers/paidplans",message="This functionality requires a Pro plan or higher",redirect_field_name=None)
def workout_split_view(request,id=id): def workout_split_view(request,id=id):
row = get_workout_permitted(request.user,id) row = get_workout_permitted(request.user,id)
@@ -12982,7 +12982,7 @@ def workout_split_view(request,id=id):
# Fuse two workouts # Fuse two workouts
@user_passes_test(ispromember,login_url="/rowers/promembership",message="This functionality requires a Pro plan or higher",redirect_field_name=None) @user_passes_test(ispromember,login_url="/rowers/paidplans",message="This functionality requires a Pro plan or higher",redirect_field_name=None)
def workout_fusion_view(request,id1=0,id2=1): def workout_fusion_view(request,id1=0,id2=1):
r = getrower(request.user) r = getrower(request.user)
@@ -14727,7 +14727,7 @@ def rower_teams_view(request,message='',successmessage=''):
'myinvites':myinvites, 'myinvites':myinvites,
}) })
@user_passes_test(iscoachmember,login_url="/rowers/promembership",redirect_field_name=None) @user_passes_test(iscoachmember,login_url="/rowers/paidplans",redirect_field_name=None)
def invitation_revoke_view(request,id): def invitation_revoke_view(request,id):
res,text = teams.revoke_invite(request.user,id) res,text = teams.revoke_invite(request.user,id)
if res: if res:
@@ -14741,7 +14741,7 @@ def invitation_revoke_view(request,id):
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@user_passes_test(iscoachmember,login_url="/rowers/promembership",redirect_field_name=None) @user_passes_test(iscoachmember,login_url="/rowers/paidplans",redirect_field_name=None)
def manager_member_drop_view(request,teamid,userid, def manager_member_drop_view(request,teamid,userid,
message='',successmessage=''): message='',successmessage=''):
rower = Rower.objects.get(user__id=userid) rower = Rower.objects.get(user__id=userid)
@@ -14755,7 +14755,7 @@ def manager_member_drop_view(request,teamid,userid,
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@user_passes_test(iscoachmember,login_url="/rowers/promembership",redirect_field_name=None) @user_passes_test(iscoachmember,login_url="/rowers/paidplans",redirect_field_name=None)
def manager_requests_view(request,code=None,message='',successmessage=''): def manager_requests_view(request,code=None,message='',successmessage=''):
if code: if code:
res,text = teams.process_request_code(request.user,code) res,text = teams.process_request_code(request.user,code)
@@ -14807,7 +14807,7 @@ def request_revoke_view(request,id=0):
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@user_passes_test(iscoachmember,login_url="/rowers/promembership",redirect_field_name=None) @user_passes_test(iscoachmember,login_url="/rowers/paidplans",redirect_field_name=None)
def request_reject_view(request,id=0): def request_reject_view(request,id=0):
res,text = teams.reject_request(request.user,id) res,text = teams.reject_request(request.user,id)
@@ -14820,7 +14820,7 @@ def request_reject_view(request,id=0):
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@user_passes_test(iscoachmember,login_url="/rowers/promembership",redirect_field_name=None) @user_passes_test(iscoachmember,login_url="/rowers/paidplans",redirect_field_name=None)
def invitation_reject_view(request,id=0): def invitation_reject_view(request,id=0):
res,text = teams.reject_invitation(request.user,id) res,text = teams.reject_invitation(request.user,id)
@@ -14856,7 +14856,7 @@ def rower_invitations_view(request,code=None,message='',successmessage=''):
}) })
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@user_passes_test(iscoachmember,login_url="/rowers/promembership",redirect_field_name=None) @user_passes_test(iscoachmember,login_url="/rowers/paidplans",redirect_field_name=None)
def team_edit_view(request,id=0): def team_edit_view(request,id=0):
try: try:
t = Team.objects.get(id=id) t = Team.objects.get(id=id)
@@ -14920,7 +14920,7 @@ def team_edit_view(request,id=0):
'team':t, 'team':t,
}) })
@user_passes_test(iscoachmember,login_url="/rowers/promembership",redirect_field_name=None) @user_passes_test(iscoachmember,login_url="/rowers/paidplans",redirect_field_name=None)
def team_create_view(request): def team_create_view(request):
if request.method == 'POST': if request.method == 'POST':
teamcreateform = TeamForm(request.POST) teamcreateform = TeamForm(request.POST)
@@ -14963,7 +14963,7 @@ def team_create_view(request):
'breadcrumbs':breadcrumbs, 'breadcrumbs':breadcrumbs,
}) })
@user_passes_test(iscoachmember,login_url="/rowers/promembership",redirect_field_name=None) @user_passes_test(iscoachmember,login_url="/rowers/paidplans",redirect_field_name=None)
def team_deleteconfirm_view(request,id): def team_deleteconfirm_view(request,id):
r = getrower(request.user) r = getrower(request.user)
try: try:
@@ -14999,7 +14999,7 @@ def team_deleteconfirm_view(request,id):
'active':'nav-teams', 'active':'nav-teams',
}) })
@user_passes_test(iscoachmember,login_url="/rowers/promembership",redirect_field_name=None) @user_passes_test(iscoachmember,login_url="/rowers/paidplans",redirect_field_name=None)
def team_delete_view(request,id): def team_delete_view(request,id):
r = getrower(request.user) r = getrower(request.user)
try: try:
@@ -15015,7 +15015,7 @@ def team_delete_view(request,id):
response = HttpResponseRedirect(url) response = HttpResponseRedirect(url)
return response return response
@user_passes_test(iscoachmember,login_url="/rowers/promembership",redirect_field_name=None) @user_passes_test(iscoachmember,login_url="/rowers/paidplans",redirect_field_name=None)
def team_members_stats_view(request,id): def team_members_stats_view(request,id):
r = getrower(request.user) r = getrower(request.user)
try: try:
@@ -15112,7 +15112,7 @@ def agegrouprecordview(request,sex='male',weightcategory='hwt',
}) })
# Cloning sessions # Cloning sessions
@user_passes_test(hasplannedsessions,login_url="/rowers/promembership/", @user_passes_test(hasplannedsessions,login_url="/rowers/paidplans/",
message="This functionality requires a Coach or Self-Coach plan", message="This functionality requires a Coach or Self-Coach plan",
redirect_field_name=None) redirect_field_name=None)
def plannedsession_multiclone_view( def plannedsession_multiclone_view(
@@ -15242,7 +15242,7 @@ def plannedsession_multiclone_view(
) )
# Individual user creates training for himself # Individual user creates training for himself
@user_passes_test(hasplannedsessions,login_url="/rowers/promembership/", @user_passes_test(hasplannedsessions,login_url="/rowers/paidplans/",
message="This functionality requires a Coach or Self-Coach plan", message="This functionality requires a Coach or Self-Coach plan",
redirect_field_name=None) redirect_field_name=None)
def plannedsession_create_view(request, def plannedsession_create_view(request,
@@ -15379,7 +15379,7 @@ def plannedsession_create_view(request,
'timeperiod':timeperiod, 'timeperiod':timeperiod,
}) })
@user_passes_test(hasplannedsessions,login_url="/rowers/promembership/", @user_passes_test(hasplannedsessions,login_url="/rowers/paidplans/",
message="This functionality requires a Coach or Self-Coach plan", message="This functionality requires a Coach or Self-Coach plan",
redirect_field_name=None) redirect_field_name=None)
def plannedsession_multicreate_view(request, def plannedsession_multicreate_view(request,
@@ -15492,7 +15492,7 @@ def plannedsession_multicreate_view(request,
return render(request,'plannedsession_multicreate.html',context) return render(request,'plannedsession_multicreate.html',context)
# Manager creates sessions for entire team # Manager creates sessions for entire team
@user_passes_test(iscoachmember,login_url="/rowers/promembership/", @user_passes_test(iscoachmember,login_url="/rowers/paidplans/",
redirect_field_name=None) redirect_field_name=None)
def plannedsession_teamcreate_view(request, def plannedsession_teamcreate_view(request,
teamid=0,userid=0): teamid=0,userid=0):
@@ -15659,7 +15659,7 @@ def plannedsession_teamcreate_view(request,
}) })
# Manager edits sessions for entire team # Manager edits sessions for entire team
@user_passes_test(iscoachmember,login_url="/rowers/promembership/", @user_passes_test(iscoachmember,login_url="/rowers/paidplans/",
redirect_field_name=None) redirect_field_name=None)
def plannedsession_teamedit_view(request, def plannedsession_teamedit_view(request,
sessionid=0,userid=0): sessionid=0,userid=0):
@@ -15815,7 +15815,7 @@ def plannedsession_teamedit_view(request,
'plannedsessions':sps, 'plannedsessions':sps,
}) })
#@user_passes_test(iscoachmember,login_url="/rowers/promembership/", #@user_passes_test(iscoachmember,login_url="/rowers/paidplans/",
# redirect_field_name=None) # redirect_field_name=None)
@login_required() @login_required()
def plannedsessions_coach_view(request, def plannedsessions_coach_view(request,
@@ -16264,7 +16264,7 @@ def plannedsessions_manage_view(request,userid=0,
# Clone an existing planned session # Clone an existing planned session
# need clarity on cloning behavior time shift # need clarity on cloning behavior time shift
@user_passes_test(hasplannedsessions,login_url="/rowers/promembership/", @user_passes_test(hasplannedsessions,login_url="/rowers/paidplans/",
message="This functionality requires a Coach or Self-Coach plan", message="This functionality requires a Coach or Self-Coach plan",
redirect_field_name=None) redirect_field_name=None)
def plannedsession_clone_view(request,id=0,userid=0): def plannedsession_clone_view(request,id=0,userid=0):
@@ -16325,7 +16325,7 @@ def plannedsession_clone_view(request,id=0,userid=0):
# Edit an existing planned session # Edit an existing planned session
@user_passes_test(hasplannedsessions,login_url="/rowers/promembership/", @user_passes_test(hasplannedsessions,login_url="/rowers/paidplans/",
message="This functionality requires a Coach or Self-Coach plan", message="This functionality requires a Coach or Self-Coach plan",
redirect_field_name=None) redirect_field_name=None)
def plannedsession_edit_view(request,id=0,userid=0): def plannedsession_edit_view(request,id=0,userid=0):
@@ -18364,7 +18364,7 @@ def virtualevent_submit_result_view(request,id=0,workoutid=0):
'w_form':w_form, 'w_form':w_form,
}) })
@user_passes_test(hasplannedsessions,login_url="/rowers/promembership", @user_passes_test(hasplannedsessions,login_url="/rowers/paidplans",
message="This functionality requires a Coach or Self-Coach plan", message="This functionality requires a Coach or Self-Coach plan",
redirect_field_name=None) redirect_field_name=None)
def rower_create_trainingplan(request,userid=0): def rower_create_trainingplan(request,userid=0):
@@ -18468,7 +18468,7 @@ def rower_create_trainingplan(request,userid=0):
'targetform':targetform, 'targetform':targetform,
}) })
@user_passes_test(hasplannedsessions,login_url="/rowers/promembership", @user_passes_test(hasplannedsessions,login_url="/rowers/paidplans",
message="This functionality requires a Coach or Self-Coach plan", message="This functionality requires a Coach or Self-Coach plan",
redirect_field_name=None) redirect_field_name=None)
def rower_delete_trainingtarget(request,id=0): def rower_delete_trainingtarget(request,id=0):
@@ -18488,7 +18488,7 @@ def rower_delete_trainingtarget(request,id=0):
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@user_passes_test(hasplannedsessions,login_url="/rowers/promembership", @user_passes_test(hasplannedsessions,login_url="/rowers/paidplans",
message="This functionality requires a Coach or Self-Coach plan", message="This functionality requires a Coach or Self-Coach plan",
redirect_field_name=None) redirect_field_name=None)
def rower_delete_trainingplan(request,id=0): def rower_delete_trainingplan(request,id=0):
@@ -18801,7 +18801,7 @@ class MacroCycleDelete(DeleteView):
return obj return obj
@user_passes_test(hasplannedsessions,login_url="/rowers/promembership", @user_passes_test(hasplannedsessions,login_url="/rowers/paidplans",
message="This functionality requires a Coach or Self-Coach plan", message="This functionality requires a Coach or Self-Coach plan",
redirect_field_name=None) redirect_field_name=None)
def rower_trainingplan_view(request, def rower_trainingplan_view(request,
@@ -19320,7 +19320,7 @@ def allsundays(startdate,enddate):
yield d yield d
d += timedelta(days=7) d += timedelta(days=7)
@user_passes_test(hasplannedsessions,login_url="/rowers/promembership", @user_passes_test(hasplannedsessions,login_url="/rowers/paidplans",
message="This functionality requires a Coach or Self-Coach plan", message="This functionality requires a Coach or Self-Coach plan",
redirect_field_name=None) redirect_field_name=None)
def planmesocyclebyweek(request,id=0,userid=0): def planmesocyclebyweek(request,id=0,userid=0):
@@ -19381,7 +19381,7 @@ def allmonths(startdate,enddate):
yield d yield d
d = datetime.date(d.year+(d.month / 12),((d.month % 12) + 1),1) d = datetime.date(d.year+(d.month / 12),((d.month % 12) + 1),1)
@user_passes_test(hasplannedsessions,login_url="/rowers/promembership", @user_passes_test(hasplannedsessions,login_url="/rowers/paidplans",
message="This functionality requires a Coach or Self-Coach plan", message="This functionality requires a Coach or Self-Coach plan",
redirect_field_name=None) redirect_field_name=None)
def planmacrocyclebymonth(request,id=0,userid=0): def planmacrocyclebymonth(request,id=0,userid=0):

View File

@@ -236,7 +236,7 @@
{% if user.rower.planexpires|date_dif|ddays < 4 %} {% if user.rower.planexpires|date_dif|ddays < 4 %}
<li class="grid_4"> <li class="grid_4">
<p class="successmessage"> <p class="successmessage">
You have {{ user.rower.planexpires|date_dif|ddays }} days left of your one year subscription. Please renew on or before {{ user.rower.planexpires }} or your plan will be reset to Basic. Click <a href="/rowers/promembership">here</a> to renew your membership.</p> You have {{ user.rower.planexpires|date_dif|ddays }} days left of your one year subscription. Please renew on or before {{ user.rower.planexpires }} or your plan will be reset to Basic. Click <a href="/rowers/paidplans">here</a> to renew your membership.</p>
</li> </li>
{% endif %} {% endif %}
{% endif %} {% endif %}
@@ -252,7 +252,7 @@
{% if user.rower.rowerplan == 'basic' %} {% if user.rower.rowerplan == 'basic' %}
<li class="grid_4"> <li class="grid_4">
<p class="successmessage"> <p class="successmessage">
{{ user.rower.protrialexpires|date_dif|ddays }} days left of your Pro trial - Would you like to <a href="/rowers/promembership">upgrade now?</a> {{ user.rower.protrialexpires|date_dif|ddays }} days left of your Pro trial - Would you like to <a href="/rowers/paidplans">upgrade now?</a>
</p> </p>
</li> </li>
{% endif %} {% endif %}
@@ -375,7 +375,7 @@
<h1>Paid Plans</h1> <h1>Paid Plans</h1>
<ul> <ul>
<li> <li>
<a href="/rowers/promembership">Paid Plans</a> <a href="/rowers/paidplans">Paid Plans</a>
</li> </li>
</ul> </ul>
</li> </li>

View File

@@ -254,7 +254,7 @@
{% if user.rower.rowerplan == 'basic' %} {% if user.rower.rowerplan == 'basic' %}
<li class="grid_5"> <li class="grid_5">
<p class="successmessage"> <p class="successmessage">
{{ user.rower.protrialexpires|date_dif|ddays }} days left of your Pro trial - Would you like to <a href="/rowers/promembership">upgrade now?</a> {{ user.rower.protrialexpires|date_dif|ddays }} days left of your Pro trial - Would you like to <a href="/rowers/paidplans">upgrade now?</a>
</p> </p>
</li> </li>
{% endif %} {% endif %}
@@ -347,7 +347,7 @@
<h1>Paid Plans</h1> <h1>Paid Plans</h1>
<ul> <ul>
<li> <li>
<a href="/rowers/promembership">Paid Plans</a> <a href="/rowers/paidplans">Paid Plans</a>
</li> </li>
</ul> </ul>
</li> </li>