Private
Public Access
1
0

developers - line 391 urls.py

This commit is contained in:
Sander Roosendaal
2018-10-11 12:38:54 +02:00
parent 7401fc2e66
commit a8f44e653b
13 changed files with 347 additions and 296 deletions

View File

@@ -1,10 +1,9 @@
{% extends "base.html" %} {% extends "newbase.html" %}
{% block title %}Rowsandall - About us{% endblock title %} {% block title %}Rowsandall - About us{% endblock title %}
{% block content %} {% block main %}
{% load rowerfilters %} {% load rowerfilters %}
<div class="grid_4 alpha">
<h2>Welcome to Rowsandall.com</h2> <h2>Welcome to Rowsandall.com</h2>
<p>Rowsandall.com is an online tool for indoor and On The Water (OTW) rowers. <p>Rowsandall.com is an online tool for indoor and On The Water (OTW) rowers.
It accepts workout data from a number of devices and applications. It It accepts workout data from a number of devices and applications. It
@@ -78,19 +77,13 @@
<a href="/rowers/compatibility">here</a>. <a href="/rowers/compatibility">here</a>.
</div>
<div class="grid_4">
<div class="grid_4">
<h2>Credits</h2> <h2>Credits</h2>
<p>The project is based on python plotting code by <p>The project is based on python plotting code by
Greg Smith (<a href="https://quantifiedrowing.wordpress.com/" rel="nofollow">https://quantifiedrowing.wordpress.com/</a>) Greg Smith (<a href="https://quantifiedrowing.wordpress.com/" rel="nofollow">https://quantifiedrowing.wordpress.com/</a>)
and inspired by the RowPro Dan Burpee spreadsheet and inspired by the RowPro Dan Burpee spreadsheet
(<a href="http://www.sub7irc.com/RP_Split_Template.zip" rel="nofollow">http://www.sub7irc.com/RP_Split_Template.zip</a>).</p> (<a href="http://www.sub7irc.com/RP_Split_Template.zip" rel="nofollow">http://www.sub7irc.com/RP_Split_Template.zip</a>).</p>
</div>
<div class="grid_4">
<h2>Advanced Analysis, Coaching and Planning (Premium Features)</h2> <h2>Advanced Analysis, Coaching and Planning (Premium Features)</h2>
@@ -119,10 +112,7 @@ and inspired by the RowPro Dan Burpee spreadsheet
</div>
</div>
<div class="grid_4 omega">
{% if user.rower.rowerplan == 'basic' and user.rower.protrialexpires|date_dif == 1 %} {% if user.rower.rowerplan == 'basic' and user.rower.protrialexpires|date_dif == 1 %}
<h2>Free Trial</h2> <h2>Free Trial</h2>
<p> <p>
@@ -188,5 +178,10 @@ and inspired by the RowPro Dan Burpee spreadsheet
<p>If, for any reason, you are not happy with your Pro membership, please let me know through the contact form. I will contact you as soon as possible to discuss how we can make things better.</p> <p>If, for any reason, you are not happy with your Pro membership, please let me know through the contact form. I will contact you as soon as possible to discuss how we can make things better.</p>
</div>
{% endblock content %} {% endblock main %}
{% block sidebar %}
{% include 'menu_help.html' %}
{% endblock %}

View File

@@ -1,5 +1,5 @@
{% extends "base.html" %} {% extends "newbase.html" %}
{% block title %}Rowsandall Brochure{% endblock title %} {% block title %}Rowsandall Brochure{% endblock title %}
{% block meta %} {% block meta %}
<style> <style>
@@ -7,9 +7,8 @@
object { width: 900px; height: 5000px } object { width: 900px; height: 5000px }
</style> </style>
{% endblock meta %} {% endblock meta %}
{% block content %} {% block main %}
<div class="grid_12 alpha">
<h2>Read our Brochure</h2> <h2>Read our Brochure</h2>
<div id="container"> <div id="container">
@@ -20,6 +19,8 @@
<!-- <!--
<embed src="/static/brochure WEB.pdf" width="960" height="650"> <embed src="/static/brochure WEB.pdf" width="960" height="650">
--> -->
</div> {% endblock %}
{% endblock content %} {% block sidebar %}
{% include 'menu_help.html' %}
{% endblock %}

View File

@@ -1,10 +1,12 @@
{% extends "base.html" %} {% extends "newbase.html" %}
{% block title %}About us{% endblock title %} {% block title %}Rowsandall Developers Info{% endblock title %}
{% block content %} {% block main %}
<div class="grid_6 alpha"> <h1>Resources for developers</h1>
<h2>Resources for developers</h2>
<ul class="main-content">
<li class="grid_4">
<p>On this page, a work in progress, I will collect useful information <p>On this page, a work in progress, I will collect useful information
for developers of rowing data apps and hardware.</p> for developers of rowing data apps and hardware.</p>
@@ -14,51 +16,50 @@
related workout data. You can now offer your users easy ways to get related workout data. You can now offer your users easy ways to get
their data on this site.</p> their data on this site.</p>
<p>There are three ways to allow your users to get data to Rowsandall.com.</p> </li>
<h5>File based export from your app</h5> <li class="grid_2">
<p>There are three ways to allow your users to get data to Rowsandall.com.</p>
<h2>File based export from your app</h2>
<p>Enable export of TCX, FIT or CSV formatted files from your app. <p>Enable export of TCX, FIT or CSV formatted files from your app.
The users The users
upload the file to Rowsandall.com.</p> upload the file to Rowsandall.com.</p>
<ul> <ul class="contentli">
<li>Advantages <li>Advantages
<ul> <ul class="contentli">
<li>User sees immediate results</li> <li>User sees immediate results</li>
</ul> </ul>
</li> </li>
<li>Disadvantages <li>Disadvantages
<ul> <ul class="contentli">
<li>It is a multi-step process: Download from your <li>It is a multi-step process: Download from your
app, store, upload.</li> app, store, upload.</li>
</ul> </ul>
</li> </li>
</ul> </ul>
<h2>Email from your app</h2>
<h5>Email from your app</h5>
<p>Similar as above, generate TCX, FIT or CSV formatted files and <p>Similar as above, generate TCX, FIT or CSV formatted files and
email them email them
to <i>workouts@rowsandall.com</i> directly from your app. The From: field to <em>workouts@rowsandall.com</em> directly from your app. The From: field
should be the email address of the registered user.</p> should be the email address of the registered user.</p>
<ul> <ul class="contentli">
<li>Advantages <li>Advantages
<ul> <ul class="contentli">
<li>It's a simple process, which can be automated.</li> <li>It's a simple process, which can be automated.</li>
</ul> </ul>
</li> </li>
<li>Disadvantages <li>Disadvantages
<ul> <ul class="contentli">
<li>It may take up to five minutes for the workout to show up <li>It may take up to five minutes for the workout to show up
on the site.</li> on the site.</li>
</ul> </ul>
</li> </li>
</ul> </ul>
<h2>Using the REST API</h2>
<h5>Using the REST API</h5>
<p>We are building a REST API which will allow you to post and <p>We are building a REST API which will allow you to post and
receive stroke receive stroke
@@ -70,9 +71,9 @@
with questions and/or suggestions. We with questions and/or suggestions. We
will get back to you as soon as possible.</p> will get back to you as soon as possible.</p>
<ul> <ul class="contentli">
<li>Advantages <li>Advantages
<ul> <ul class="contentli">
<li>Once it is set up, this is a one-click operation.</li> <li>Once it is set up, this is a one-click operation.</li>
<li>You can read a user's workout data from the site and use <li>You can read a user's workout data from the site and use
them in your app.</li> them in your app.</li>
@@ -82,7 +83,7 @@
</li> </li>
<li>Disadvantages <li>Disadvantages
<ul> <ul class="contentli">
<li>The API is not stable and not fully tested yet.</li> <li>The API is not stable and not fully tested yet.</li>
<li>You need to register your app with us. We can revoke your <li>You need to register your app with us. We can revoke your
permissions if you misuse them.</li> permissions if you misuse them.</li>
@@ -92,35 +93,31 @@
</li> </li>
</ul> </ul>
</div> </li>
<li class="grid_2">
<div class="grid_6 omega">
<div class="grid_6">
<h2>Quick Links</h2> <h2>Quick Links</h2>
<h5>Accepted file formats</h5> <h3>Accepted file formats</h3>
<p>All files adhering to the standards <a href="http://www8.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd">TCX</a> and <a href="https://www.thisisant.com/resources/fit/">FIT</a> formats will be parsed.</p> <p>All files adhering to the standards <a href="http://www8.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd">TCX</a> and <a href="https://www.thisisant.com/resources/fit/">FIT</a> formats will be parsed.</p>
<p>However, some rowing related parameters are not supported by TCX and FIT. Therefore, we are supporting the CSV format that is documented in the following link.</p> <p>However, some rowing related parameters are not supported by TCX and FIT. Therefore, we are supporting the CSV format that is documented in the following link.</p>
<ul><li><a href="http://rowingdata.readthedocs.io/en/latest/#csv-file-standard">Our standard rowing CSV file</a></li></ul> <ul class="contentli"><li><a href="http://rowingdata.readthedocs.io/en/latest/#csv-file-standard">Our standard rowing CSV file</a></li></ul>
<p>Using this standard will guarantee that your user's data are accepted <p>Using this standard will guarantee that your user's data are accepted
without complaints.</p> without complaints.</p>
<h5>API related documentation</h5> <h2>API related documentation</h2>
<h6>Registering an app</h6> <h3>Registering an app</h3>
<p>We have disabled the self service app link for security reasons. <p>We have disabled the self service app link for security reasons.
We will replace it with a secure self service app link soon. If you We will replace it with a secure self service app link soon. If you
need to register an app, please send email to info@rowsandall.com</p> need to register an app, please send email to info@rowsandall.com</p>
<h6>Authentication</h6> <h3>Authentication</h3>
<p>Standard <a href="https://oauth.net/2/">Oauth2</a> authentication. <p>Standard <a href="https://oauth.net/2/">Oauth2</a> authentication.
Get authorization code by pointing your user to the authorization URL. Get authorization code by pointing your user to the authorization URL.
@@ -128,19 +125,19 @@
expires, expires,
use the refresh token to refresh it.</p> use the refresh token to refresh it.</p>
<p>The redirect URI for user authentication has to be <i>https</i>. <p>The redirect URI for user authentication has to be <em>https</em>.
Developers of iOS or Android apps should contact me directly if Developers of iOS or Android apps should contact me directly if
this doesn't work for them. I can add exceptions.</p> this doesn't work for them. I can add exceptions.</p>
<ul> <ul class="contentli">
<li>Authorization URL: <b>https://{{ request.get_host }}/rowers/o/authorize</b></li> <li>Authorization URL: <b>https://{{ request.get_host }}/rowers/o/authorize</b></li>
<li>Access Token request: <b>https://{{ request.get_host }}/rowers/o/token/</b></li> <li>Access Token request: <b>https://{{ request.get_host }}/rowers/o/token/</b></li>
<li>Access Token refresh: <b>https://{{ request.get_host }}/rowers/o/token/</b></li> <li>Access Token refresh: <b>https://{{ request.get_host }}/rowers/o/token/</b></li>
<li>Handy utility for testing: <b><a href="http://django-oauth-toolkit.herokuapp.com/consumer/">http://django-oauth-toolkit.herokuapp.com/consumer/</a></b></li> <li>Handy utility for testing: <b><a href="http://django-oauth-toolkit.herokuapp.com/consumer/">http://django-oauth-toolkit.herokuapp.com/consumer/</a></b></li>
</ul> </ul>
<h6>API documentation</h6> <h3>API documentation</h3>
<p>Once you have a registered app, you have gone through the authorization <p>Once you have a registered app, you have gone through the authorization
and have successfully obtained an access token, you can use it to place and have successfully obtained an access token, you can use it to place
@@ -149,7 +146,7 @@
<p>The workout summary data and the stroke data are obtained and sent <p>The workout summary data and the stroke data are obtained and sent
separately.</p> separately.</p>
<ul> <ul class="contentli">
<li><a href="/rowers/api-docs">API documentation</a> <li><a href="/rowers/api-docs">API documentation</a>
(But refer to the below for stroke data.)</li> (But refer to the below for stroke data.)</li>
<li><a href="/rowers/api-docs#/workouts">Try out the workout summary API</a></li> <li><a href="/rowers/api-docs#/workouts">Try out the workout summary API</a></li>
@@ -162,7 +159,7 @@
future to enable updating stroke data. Stroke data for workout {id} are future to enable updating stroke data. Stroke data for workout {id} are
posted to:</p> posted to:</p>
<ul> <ul class="contentli">
<li><b>https://{{ request.get_host }}/rowers/api/workouts/{id}/strokedata</b></li> <li><b>https://{{ request.get_host }}/rowers/api/workouts/{id}/strokedata</b></li>
</ul> </ul>
@@ -180,14 +177,14 @@
</pre></p> </pre></p>
<p>Mandatory data fields are:</p> <p>Mandatory data fields are:</p>
<ul> <ul class="contentli">
<li><b>time</b>: Time (milliseconds since workout start)</li> <li><b>time</b>: Time (milliseconds since workout start)</li>
<li><b>distance</b>: Distance (meters)</li> <li><b>distance</b>: Distance (meters)</li>
<li><b>pace</b>: Pace (milliseconds per 500m)</li> <li><b>pace</b>: Pace (milliseconds per 500m)</li>
<li><b>spm</b> Stroke rate (strokes per minute)</li> <li><b>spm</b> Stroke rate (strokes per minute)</li>
</ul> </ul>
<p>Optional data fiels are:</p> <p>Optional data fiels are:</p>
<ul> <ul class="contentli">
<li><b>power</b>: Power (Watt)</li> <li><b>power</b>: Power (Watt)</li>
<li><b>drivelength</b>: Drive length (meters)</li> <li><b>drivelength</b>: Drive length (meters)</li>
<li><b>dragfactor</b>: Drag factor</li> <li><b>dragfactor</b>: Drag factor</li>
@@ -201,7 +198,7 @@
<li><b>catch</b>: Catch angle per Empower oarlock (degrees)</li> <li><b>catch</b>: Catch angle per Empower oarlock (degrees)</li>
<li><b>finish</b>: Finish angle per Empower oarlock (degrees)</li> <li><b>finish</b>: Finish angle per Empower oarlock (degrees)</li>
<li><b>peakforceangle</b>: Peak Force Angle per Empower oarlock (degrees)</li> <li><b>peakforceangle</b>: Peak Force Angle per Empower oarlock (degrees)</li>
<li><b>slip</b>: Wash as defined per Empower oarlock (degrees)</li> <li><b>slip</b>: Slip as defined per Empower oarlock (degrees)</li>
</ul> </ul>
@@ -211,7 +208,12 @@
must have the same number of records. If an optional data field must have the same number of records. If an optional data field
fails a test, its values are silently replaced by zeros.</p> fails a test, its values are silently replaced by zeros.</p>
</div> </li>
</div> </ul>
{% endblock %}
{% block sidebar %}
{% include 'menu_help.html' %}
{% endblock %}
{% endblock content %}

View File

@@ -1,9 +1,10 @@
{% extends "base.html" %} {% extends "newbase.html" %}
{% block title %}Contact Us{% endblock title %} {% block title %}Contact Us{% endblock title %}
{% block content %} {% block main %}
<div id="emailform" class="grid_6 alpha">
<h1>Contact us through email</h1> <h1>Contact us through email</h1>
<ul class="main-content">
<li class="grid_2">
{% if form.errors %} {% if form.errors %}
<p style="color: red;"> <p style="color: red;">
Please correct the error{{ form.errors|pluralize }} below. Please correct the error{{ form.errors|pluralize }} below.
@@ -56,9 +57,9 @@
</td></tr> </td></tr>
</table> </table>
</form> </form>
</div> </li>
<div class="grid_6 omega"> <li class="grid_2">
<h1>Bug reporting, feature requests</h1> <h1>Bug reporting, feature requests</h1>
<p> <p>
@@ -67,7 +68,9 @@ Bug reports and feature requests can be done through our BitBucket page. Please
<li><a href="https://bitbucket.org/sanderroosendaal/rowsandall/issues">BitBucket Issue list (click here to go report an issue or request a feature)</a></li> <li><a href="https://bitbucket.org/sanderroosendaal/rowsandall/issues">BitBucket Issue list (click here to go report an issue or request a feature)</a></li>
</ul> </ul>
</p> </p>
</li>
<li class="grid_2">
<h1>Facebook Group</h1> <h1>Facebook Group</h1>
<p>We run a facebook group where you can post questions and report problems, <p>We run a facebook group where you can post questions and report problems,
@@ -75,7 +78,9 @@ Bug reports and feature requests can be done through our BitBucket page. Please
<ul> <ul>
<li><a href="https://www.facebook.com/groups/rowsandall/">https://www.facebook.com/groups/rowsandall/</a></li> <li><a href="https://www.facebook.com/groups/rowsandall/">https://www.facebook.com/groups/rowsandall/</a></li>
</ul> </ul>
</li>
<li class="grid_2">
<h1>Twitter</h1> <h1>Twitter</h1>
<p>You can also check me on Twitter: <p>You can also check me on Twitter:
@@ -84,7 +89,9 @@ Bug reports and feature requests can be done through our BitBucket page. Please
</ul> </ul>
When the site is down, this is the appropriate channel to look for apologies, updates, and offer help. When the site is down, this is the appropriate channel to look for apologies, updates, and offer help.
</p> </p>
</li>
<li class="grid_2">
<h1>Rowsandall s.r.o.</h1> <h1>Rowsandall s.r.o.</h1>
<p><strong>Rowsandall s.r.o.</strong><br /> <p><strong>Rowsandall s.r.o.</strong><br />
@@ -99,6 +106,12 @@ When the site is down, this is the appropriate channel to look for apologies, up
Regional Court in Brno (Společnost je zapsána v obchodním rejstříku vedeném u Krajského soudu v Brně, oddíl C, vložka 105845)<br/> Regional Court in Brno (Společnost je zapsána v obchodním rejstříku vedeném u Krajského soudu v Brně, oddíl C, vložka 105845)<br/>
</p> </p>
</div> </li>
{% endblock content %} </ul>
{% endblock %}
{% block sidebar %}
{% include 'menu_help.html' %}
{% endblock %}

View File

@@ -3,7 +3,7 @@
{% block title %}Change Favorite Charts{% endblock %} {% block title %}Change Favorite Charts{% endblock %}
{% block main %} {% block main %}
<h1>Change Your Favorite Charts</h1> <h1>Change Favorite Charts of {{ rower.user.first_name }} {{ rower.user.last_name }}</h1>
<form method="post"> <form method="post">
<ul class="main-content"> <ul class="main-content">

View File

@@ -8,22 +8,22 @@
</a> </a>
</li> </li>
<li id="manage-impex"> <li id="manage-impex">
<a href="/rowers/me/exportsettings"> <a href="/rowers/me/exportsettings/">
<i class="fas fa-cloud-download fa-fw"></i>&nbsp;Import/Export <i class="fas fa-cloud-download fa-fw"></i>&nbsp;Import/Export
</a> </a>
</li> </li>
<li id="manage-account"> <li id="manage-account">
<a href="/rowers/me/edit"> <a href="/rowers/me/edit/">
<i class="fas fa-user fa-fw"></i>&nbsp;Account <i class="fas fa-user fa-fw"></i>&nbsp;Account
</a> </a>
</li> </li>
<li id="manage-favs"> <li id="manage-favs">
<a href="/rowers/me/favoritecharts"> <a href="/rowers/me/favoritecharts/">
<i class="fas fa-chart-area fa-fw"></i>&nbsp;Favorite Charts <i class="fas fa-chart-area fa-fw"></i>&nbsp;Favorite Charts
</a> </a>
</li> </li>
<li id="manage-workflow"> <li id="manage-workflow">
<a href="/rowers/me/workflowconfig2"> <a href="/rowers/me/workflowconfig2/">
<i class="fas fa-tachometer-alt-slow fa-fw"></i>&nbsp;Manage Workflow <i class="fas fa-tachometer-alt-slow fa-fw"></i>&nbsp;Manage Workflow
</a> </a>
</li> </li>

View File

@@ -1,8 +1,12 @@
{% extends "base.html" %} {% extends "newbase.html" %}
{% block title %}Contact Us - Thank You{% endblock title %} {% block title %}Contact Us - Thank You{% endblock title %}
{% block content %} {% block main %}
<h3>Thank you.</h3> <h3>Thank you.</h3>
<p>Your email was sent and I will get back to you as soon as I can.</p> <p>Your email was sent and I will get back to you as soon as I can.</p>
<p>Return <a href="/">home</a></p> <p>Return <a href="/">home</a></p>
{% endblock content %} {% endblock %}
{% block sidebar %}
{% include 'menu_help.html' %}
{% endblock %}

View File

@@ -1,40 +1,28 @@
{% extends "base.html" %} {% extends "newbase.html" %}
{% block title %}Change Rower Export Settings{% endblock %} {% block title %}Change Rower Workflow Page Settings{% endblock %}
{% block content %} {% block main %}
<script type="text/javascript" src="/static/js/reorderSelect.js"></script> <script type="text/javascript" src="/static/js/reorderSelect.js"></script>
<script type="text/javascript" src="/static/admin/js/jquery.min.js"></script> <script type="text/javascript" src="/static/admin/js/jquery.min.js"></script>
<script type="text/javascript" src="/static/admin/js/jquery.init.js"></script> <script type="text/javascript" src="/static/admin/js/jquery.init.js"></script>
<h1>Change Workflow Page Layout for {{ rower.user.first_name }} {{ rower.user.last_name }}</h1>
<div class="grid_12 alpha"> <ul class="main-content">
{% if workoutid %} {% if workoutid %}
<div class="grid_2 suffix_10 alpha"> <li class="grid_4">
<p> <p>
<a class="button gray small" href="/rowers/workout/{{ workoutid }}/workflow">Return to Workout</a> <a class="button gray small" href="/rowers/workout/{{ workoutid }}/workflow">Return to Workout</a>
</p> </p>
</div> </li>
{% endif %} {% endif %}
<div class-"grid_12 alpha"> <li>
<h1>Workflow Page Configuration</h1>
<p>On this page, you can configure the content of your "Workflow" page <p>On this page, you can configure the content of your "Workflow" page
for each workout. If you want to remove an element, change it to "None". for each workout. If you want to remove an element, change it to "None".
You can add one new element at a time.</p> You can add one new element at a time.</p>
<div class="grid_4 alpha"> </li>
<h2>Left Panel</h2> <li>
<form enctype="multipart/form-data" action="" method="post">
{{ leftpanel_formset.management_form }}
<table>
{{ leftpanel_formset.as_table }}
</table>
{% csrf_token %}
<input class="grid_2 alpha button green" type="submit" value="Save">
</form>
</div>
<div class="grid_4">
<h2>Middle Panel</h2>
<form enctype="multipart/form-data" action="" method="post"> <form enctype="multipart/form-data" action="" method="post">
{{ middlepanel_formset.management_form }} {{ middlepanel_formset.management_form }}
<table> <table>
@@ -43,10 +31,8 @@
{% csrf_token %} {% csrf_token %}
<input class="grid_2 alpha button green" type="submit" value="Save"> <input class="grid_2 alpha button green" type="submit" value="Save">
</form> </form>
</div> </li>
<li>
<div class="grid_4 omega">
<div class="grid_2 prefix_2 alpha">
{% if rower.defaultlandingpage == 'workout_edit_view' %} {% if rower.defaultlandingpage == 'workout_edit_view' %}
<p>Default landing page is Edit View. Set default landing page to</p> <p>Default landing page is Edit View. Set default landing page to</p>
<a class="button green small" href="/rowers/me/workflowdefault">Workflow View</a> <a class="button green small" href="/rowers/me/workflowdefault">Workflow View</a>
@@ -54,13 +40,13 @@
<p>Default landing page is Workflow View. Set default landing page to</p> <p>Default landing page is Workflow View. Set default landing page to</p>
<a class="button green small" href="/rowers/me/workflowdefault">Edit View</a> <a class="button green small" href="/rowers/me/workflowdefault">Edit View</a>
{% endif %} {% endif %}
</div> </li>
</div> </ul>
</div>
</div>
{% endblock %} {% endblock %}
{% block sidebar %}
{% include 'menu_profile.html' %}
{% endblock %}

View File

@@ -377,8 +377,10 @@ urlpatterns = [
url(r'^me/tprefresh/$',views.rower_tp_token_refresh), url(r'^me/tprefresh/$',views.rower_tp_token_refresh),
url(r'^me/c2refresh/$',views.rower_c2_token_refresh), url(r'^me/c2refresh/$',views.rower_c2_token_refresh),
url(r'^me/favoritecharts/$',views.rower_favoritecharts_view), url(r'^me/favoritecharts/$',views.rower_favoritecharts_view),
url(r'^me/favoritecharts/user/(?P<userid>\d+)$',views.rower_favoritecharts_view),
# url(r'^me/workflowconfig$',views.workout_workflow_config_view), # url(r'^me/workflowconfig$',views.workout_workflow_config_view),
url(r'^me/workflowconfig2$',views.workout_workflow_config2_view), url(r'^me/workflowconfig2/$',views.workout_workflow_config2_view),
url(r'^me/workflowconfig2/user/(?P<userid>\d+)$',views.workout_workflow_config2_view),
url(r'^me/workflowdefault$',views.workflow_default_view), url(r'^me/workflowdefault$',views.workflow_default_view),
url(r'^email/send/$', views.sendmail), url(r'^email/send/$', views.sendmail),
url(r'^email/thankyou/$', TemplateView.as_view(template_name='thankyou.html'), name='thankyou'), url(r'^email/thankyou/$', TemplateView.as_view(template_name='thankyou.html'), name='thankyou'),

View File

@@ -8379,7 +8379,7 @@ def workout_workflow_config_view(request):
}) })
@login_required() @login_required()
def workout_workflow_config2_view(request): def workout_workflow_config2_view(request,userid=0):
request.session['referer'] = absolute(request)['PATH'] request.session['referer'] = absolute(request)['PATH']
request.session[translation.LANGUAGE_SESSION_KEY] = USER_LANGUAGE request.session[translation.LANGUAGE_SESSION_KEY] = USER_LANGUAGE
try: try:
@@ -8388,7 +8388,7 @@ def workout_workflow_config2_view(request):
workoutid = 0 workoutid = 0
r = getrower(request.user) r = getrequestrower(request,userid=userid,notpermanent=True)
MiddlePanelFormSet = formset_factory(WorkFlowMiddlePanelElement,extra=1) MiddlePanelFormSet = formset_factory(WorkFlowMiddlePanelElement,extra=1)
LeftPanelFormSet = formset_factory(WorkFlowLeftPanelElement,extra=1) LeftPanelFormSet = formset_factory(WorkFlowLeftPanelElement,extra=1)
@@ -8449,7 +8449,7 @@ def workout_workflow_config2_view(request):
return render(request,tmplt, return render(request,tmplt,
{ {
'rower':getrower(request.user), 'rower':r,
'leftpanel_formset':leftpanel_formset, 'leftpanel_formset':leftpanel_formset,
'middlepanel_formset':middlepanel_formset, 'middlepanel_formset':middlepanel_formset,
'workoutid': workoutid, 'workoutid': workoutid,
@@ -11929,6 +11929,17 @@ def rower_edit_view(request,rowerid=0,userid=0,message=""):
rowerid = r.id rowerid = r.id
breadcrumbs = [
{
'url':'/rowers/me/edit',
'name': 'Profile'
},
{
'url': reverse(rower_edit_view),
'name': 'Account Settings'
}
]
if request.method == 'POST' and "ut2" in request.POST: if request.method == 'POST' and "ut2" in request.POST:
form = RowerForm(request.POST) form = RowerForm(request.POST)
if form.is_valid(): if form.is_valid():
@@ -11963,6 +11974,7 @@ def rower_edit_view(request,rowerid=0,userid=0,message=""):
'teams':get_my_teams(request.user), 'teams':get_my_teams(request.user),
'powerform':powerform, 'powerform':powerform,
'rower':r, 'rower':r,
'breadcrumbs':breadcrumbs,
'accountform':accountform, 'accountform':accountform,
'userform':userform, 'userform':userform,
}) })
@@ -11981,6 +11993,7 @@ def rower_edit_view(request,rowerid=0,userid=0,message=""):
return render(request, 'rower_form.html', return render(request, 'rower_form.html',
{'form':form, {'form':form,
'teams':get_my_teams(request.user), 'teams':get_my_teams(request.user),
'breadcrumbs':breadcrumbs,
'powerzonesform':powerzonesform, 'powerzonesform':powerzonesform,
'userform':userform, 'userform':userform,
'accountform':accountform, 'accountform':accountform,
@@ -12039,6 +12052,7 @@ def rower_edit_view(request,rowerid=0,userid=0,message=""):
'teams':get_my_teams(request.user), 'teams':get_my_teams(request.user),
'powerform':powerform, 'powerform':powerform,
'rower':r, 'rower':r,
'breadcrumbs':breadcrumbs,
'userform':userform, 'userform':userform,
'accountform':accountform, 'accountform':accountform,
}) })
@@ -12081,6 +12095,7 @@ def rower_edit_view(request,rowerid=0,userid=0,message=""):
'teams':get_my_teams(request.user), 'teams':get_my_teams(request.user),
'powerzonesform':powerzonesform, 'powerzonesform':powerzonesform,
'powerform':powerform, 'powerform':powerform,
'breadcrumbs':breadcrumbs,
'userform':userform, 'userform':userform,
'accountform':accountform, 'accountform':accountform,
'rower':r, 'rower':r,
@@ -12103,6 +12118,7 @@ def rower_edit_view(request,rowerid=0,userid=0,message=""):
'teams':get_my_teams(request.user), 'teams':get_my_teams(request.user),
'powerform':powerform, 'powerform':powerform,
'powerzonesform':powerzonesform, 'powerzonesform':powerzonesform,
'breadcrumbs':breadcrumbs,
'accountform':accountform, 'accountform':accountform,
'userform':userform, 'userform':userform,
'rower':r, 'rower':r,
@@ -12161,6 +12177,7 @@ def rower_edit_view(request,rowerid=0,userid=0,message=""):
{'form':form, {'form':form,
'teams':get_my_teams(request.user), 'teams':get_my_teams(request.user),
'powerzonesform':powerzonesform, 'powerzonesform':powerzonesform,
'breadcrumbs':breadcrumbs,
'powerform':powerform, 'powerform':powerform,
'accountform':accountform, 'accountform':accountform,
'userform':userform, 'userform':userform,
@@ -12174,6 +12191,7 @@ def rower_edit_view(request,rowerid=0,userid=0,message=""):
{'form':form, {'form':form,
'teams':get_my_teams(request.user), 'teams':get_my_teams(request.user),
'powerzonesform':powerzonesform, 'powerzonesform':powerzonesform,
'breadcrumbs':breadcrumbs,
'powerform':powerform, 'powerform':powerform,
'accountform':accountform, 'accountform':accountform,
'userform':userform, 'userform':userform,
@@ -12194,6 +12212,7 @@ def rower_edit_view(request,rowerid=0,userid=0,message=""):
'form':form, 'form':form,
'teams':get_my_teams(request.user), 'teams':get_my_teams(request.user),
'powerform':powerform, 'powerform':powerform,
'breadcrumbs':breadcrumbs,
'powerzonesform':powerzonesform, 'powerzonesform':powerzonesform,
'userform':userform, 'userform':userform,
'accountform':accountform, 'accountform':accountform,
@@ -12211,6 +12230,17 @@ def rower_prefs_view(request,rowerid=0,userid=0,message=""):
rowerid = r.id rowerid = r.id
breadcrumbs = [
{
'url':'/rowers/me/edit',
'name': 'Profile'
},
{
'url': reverse(rower_prefs_view),
'name': 'Zones'
}
]
if request.method == 'POST' and "ut2" in request.POST: if request.method == 'POST' and "ut2" in request.POST:
form = RowerForm(request.POST) form = RowerForm(request.POST)
if form.is_valid(): if form.is_valid():
@@ -12243,6 +12273,7 @@ def rower_prefs_view(request,rowerid=0,userid=0,message=""):
{'form':form, {'form':form,
'powerzonesform':powerzonesform, 'powerzonesform':powerzonesform,
'teams':get_my_teams(request.user), 'teams':get_my_teams(request.user),
'breadcrumbs':breadcrumbs,
'powerform':powerform, 'powerform':powerform,
'rower':r, 'rower':r,
'accountform':accountform, 'accountform':accountform,
@@ -12264,6 +12295,7 @@ def rower_prefs_view(request,rowerid=0,userid=0,message=""):
{'form':form, {'form':form,
'teams':get_my_teams(request.user), 'teams':get_my_teams(request.user),
'powerzonesform':powerzonesform, 'powerzonesform':powerzonesform,
'breadcrumbs':breadcrumbs,
'userform':userform, 'userform':userform,
'accountform':accountform, 'accountform':accountform,
'powerform':powerform, 'powerform':powerform,
@@ -12319,6 +12351,7 @@ def rower_prefs_view(request,rowerid=0,userid=0,message=""):
return render(request, 'rower_preferences.html', return render(request, 'rower_preferences.html',
{'form':form, {'form':form,
'teams':get_my_teams(request.user), 'teams':get_my_teams(request.user),
'breadcrumbs':breadcrumbs,
'powerform':powerform, 'powerform':powerform,
'rower':r, 'rower':r,
'userform':userform, 'userform':userform,
@@ -12364,6 +12397,7 @@ def rower_prefs_view(request,rowerid=0,userid=0,message=""):
'powerzonesform':powerzonesform, 'powerzonesform':powerzonesform,
'powerform':powerform, 'powerform':powerform,
'userform':userform, 'userform':userform,
'breadcrumbs':breadcrumbs,
'accountform':accountform, 'accountform':accountform,
'rower':r, 'rower':r,
}) })
@@ -12384,6 +12418,7 @@ def rower_prefs_view(request,rowerid=0,userid=0,message=""):
{'form':form, {'form':form,
'teams':get_my_teams(request.user), 'teams':get_my_teams(request.user),
'powerform':powerform, 'powerform':powerform,
'breadcrumbs':breadcrumbs,
'powerzonesform':powerzonesform, 'powerzonesform':powerzonesform,
'accountform':accountform, 'accountform':accountform,
'userform':userform, 'userform':userform,
@@ -12443,6 +12478,7 @@ def rower_prefs_view(request,rowerid=0,userid=0,message=""):
{'form':form, {'form':form,
'teams':get_my_teams(request.user), 'teams':get_my_teams(request.user),
'powerzonesform':powerzonesform, 'powerzonesform':powerzonesform,
'breadcrumbs':breadcrumbs,
'powerform':powerform, 'powerform':powerform,
'accountform':accountform, 'accountform':accountform,
'userform':userform, 'userform':userform,
@@ -12457,6 +12493,7 @@ def rower_prefs_view(request,rowerid=0,userid=0,message=""):
'teams':get_my_teams(request.user), 'teams':get_my_teams(request.user),
'powerzonesform':powerzonesform, 'powerzonesform':powerzonesform,
'powerform':powerform, 'powerform':powerform,
'breadcrumbs':breadcrumbs,
'accountform':accountform, 'accountform':accountform,
'userform':userform, 'userform':userform,
'rower':r, 'rower':r,
@@ -12477,6 +12514,7 @@ def rower_prefs_view(request,rowerid=0,userid=0,message=""):
'teams':get_my_teams(request.user), 'teams':get_my_teams(request.user),
'powerform':powerform, 'powerform':powerform,
'powerzonesform':powerzonesform, 'powerzonesform':powerzonesform,
'breadcrumbs':breadcrumbs,
'userform':userform, 'userform':userform,
'accountform':accountform, 'accountform':accountform,
'grants':grants, 'grants':grants,

View File

@@ -243,6 +243,15 @@ th.rotate > div > span {
border: solid 1px #333; border: solid 1px #333;
} }
.contentli {
margin-left: 30px;
display: list-item;
list-style-type: circle;
}
.dot { .dot {
border-radius: 50%; border-radius: 50%;
display: block; display: block;

View File

@@ -392,6 +392,7 @@
} }
.main-content li.grid_2 { .main-content li.grid_2 {
grid-column-end: span 1; grid-column-end: span 1;
} }

View File

@@ -339,7 +339,7 @@
<a href="/rowers/partners">Partnering?</a> <a href="/rowers/partners">Partnering?</a>
</li> </li>
<li> <li>
<a href="/rowers/develop">Developers Info</a> <a href="/rowers/developers">Developers Info</a>
</li> </li>
</ul> </ul>
</li> </li>