Merge branch 'release/v8.03'
This commit is contained in:
+2
-1
@@ -1200,7 +1200,8 @@ def createmicrofillers(plan):
|
|||||||
plan = plan
|
plan = plan
|
||||||
).order_by("startdate")
|
).order_by("startdate")
|
||||||
|
|
||||||
if cycles[0].startdate > plan.startdate:
|
|
||||||
|
if cycles and cycles[0].startdate > plan.startdate:
|
||||||
macr = TrainingMicroCycle(
|
macr = TrainingMicroCycle(
|
||||||
plan=plan,
|
plan=plan,
|
||||||
startdate = plan.startdate,
|
startdate = plan.startdate,
|
||||||
|
|||||||
@@ -14,49 +14,6 @@
|
|||||||
<h2 class="midden">For Rowers. By Rowers.</h2>
|
<h2 class="midden">For Rowers. By Rowers.</h2>
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
{% if user.is_anonymous %}
|
|
||||||
<li>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="rounder whiteborder">
|
|
||||||
<a class="button midden" href="/rowers/register">
|
|
||||||
<h1 class="midden">SIGN UP FREE</h1>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="rounder whiteborder">
|
|
||||||
<form id="idLogInForm" method="post" action="{% url 'login' %}" class="loginForm">{% csrf_token %}
|
|
||||||
<a class="button midden" href="/rowers/register">
|
|
||||||
<h2 class="midden">Sign In</h2></a>
|
|
||||||
{{ form.as_p }}
|
|
||||||
<button class="midden button white"
|
|
||||||
id="idLogInSubmit"
|
|
||||||
name="idLogInSubmit"
|
|
||||||
type="submit">Login
|
|
||||||
</button>
|
|
||||||
</form>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
{% endif %}
|
|
||||||
<li class="grid_5">
|
<li class="grid_5">
|
||||||
<p class="midden">There is no shortage of training advice for rowers.</p>
|
<p class="midden">There is no shortage of training advice for rowers.</p>
|
||||||
|
|
||||||
@@ -67,10 +24,49 @@
|
|||||||
you are, set objectives, make a plan, track progress,
|
you are, set objectives, make a plan, track progress,
|
||||||
and adjust based on the results you are getting.
|
and adjust based on the results you are getting.
|
||||||
</p>
|
</p>
|
||||||
<h2 class="midden">WHAT WE OFFER</h2>
|
|
||||||
|
<p class="midden">This site is more than a rowing log book. It enables you
|
||||||
|
and your coach
|
||||||
|
to plan and track all your rowing, indoor and on the water, with a large
|
||||||
|
number of devices and apps. On top of that, it offers the best in
|
||||||
|
rowing data analytics. Train smart.
|
||||||
</li>
|
</li>
|
||||||
|
<li class="grid_5">
|
||||||
|
<div class="midden">
|
||||||
|
<img src="/static/img/horizontal_line.png"
|
||||||
|
alt="horizontal line">
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{% if user.is_anonymous %}
|
||||||
<li>
|
<li>
|
||||||
|
<a class="button midden" href="/rowers/register">
|
||||||
|
<h1 class="midden">
|
||||||
|
<div class="rounder whiteborder">SIGN UP FREE</div>
|
||||||
|
</h1>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="rounder whiteborder">
|
||||||
|
<form id="idLogInForm" method="post" action="{% url 'login' %}" class="loginForm">{% csrf_token %}
|
||||||
|
<a class="button midden" href="/rowers/register">
|
||||||
|
<h2 class="midden">Sign In</h2></a>
|
||||||
|
<a href="/password_reset/">Forgot password?</a>
|
||||||
|
{{ form.as_p }}
|
||||||
|
<button class="midden button white"
|
||||||
|
id="idLogInSubmit"
|
||||||
|
name="idLogInSubmit"
|
||||||
|
type="submit">Login
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
</li>
|
||||||
|
<li class="grid_5">
|
||||||
|
<div class="midden">
|
||||||
|
<img src="/static/img/horizontal_line.png"
|
||||||
|
alt="horizontal line">
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
<li class="grid_5">
|
||||||
|
<h2 class="midden">WHAT WE OFFER</h2>
|
||||||
</li>
|
</li>
|
||||||
<li class="frontitem">
|
<li class="frontitem">
|
||||||
<h3 class="midden">LOG</h3>
|
<h3 class="midden">LOG</h3>
|
||||||
@@ -104,17 +100,8 @@
|
|||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
<a class="button midden" href="">
|
||||||
</li>
|
<h2 class="midden"><div class="rounder whiteborder">and more</div></h2>
|
||||||
<li>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="rounder whiteborder">
|
|
||||||
<a class="button midden" href="/rowers/features">
|
|
||||||
<h2 class="midden">VIEW ALL</h2>
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
@@ -129,14 +116,14 @@
|
|||||||
alt="horizontal line">
|
alt="horizontal line">
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="grid_5">
|
</ul>
|
||||||
|
|
||||||
<p class="midden">
|
<p class="midden">
|
||||||
<a class="twitter-follow-button"
|
<a class="twitter-follow-button"
|
||||||
href="https://twitter.com/rowsandall">
|
href="https://twitter.com/rowsandall">
|
||||||
Follow @rowsandall</a>
|
Follow @rowsandall</a>
|
||||||
</p>
|
</p>
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p class="midden">
|
<p class="midden">
|
||||||
Local Time: {% now "jS F Y H:i" %}
|
Local Time: {% now "jS F Y H:i" %}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li id="fitness-powerprogress">
|
<li id="fitness-powerprogress">
|
||||||
<a href="/rowers/fitnessprogress/">
|
<a href="/rowers/fitness-progress/">
|
||||||
<i class="far fa-watch-fitness fa-fw"></i> Power Progress
|
<i class="far fa-watch-fitness fa-fw"></i> Power Progress
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<h1>Workout</h1>
|
<h1>Workout</h1>
|
||||||
<ul class="cd-accordion-menu animated">
|
<ul class="cd-accordion-menu animated">
|
||||||
<li class="has-children" id="workout">
|
<li class="has-children" id="workout">
|
||||||
<input type="checkbox" name="group-workout" id="group-workout">
|
<input type="checkbox" name="group-workout" id="group-workout" checked>
|
||||||
<label for="group-workout">Workout</label>
|
<label for="group-workout">Workout</label>
|
||||||
<ul>
|
<ul>
|
||||||
<li id="workout-dashboard">
|
<li id="workout-dashboard">
|
||||||
@@ -49,6 +49,11 @@
|
|||||||
</li>
|
</li>
|
||||||
-->
|
-->
|
||||||
{% if user.is_authenticated and workout|may_edit:request %}
|
{% if user.is_authenticated and workout|may_edit:request %}
|
||||||
|
<li id="chart-image">
|
||||||
|
<a href="/rowers/workout/{{ workout.id }}/image">
|
||||||
|
<i class="fas fa-file-image fa-fw"></i> Upload Image
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
<li id="workout-delete">
|
<li id="workout-delete">
|
||||||
<a href="/rowers/workout/{{ workout.id }}/delete">
|
<a href="/rowers/workout/{{ workout.id }}/delete">
|
||||||
<i class="fas fa-trash-alt fa-fw"></i> Delete
|
<i class="fas fa-trash-alt fa-fw"></i> Delete
|
||||||
@@ -117,11 +122,6 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li id="chart-image">
|
|
||||||
<a href="/rowers/workout/{{ workout.id }}/image">
|
|
||||||
<i class="fas fa-file-image fa-fw"></i> Upload Image
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="has-children" id="export">
|
<li class="has-children" id="export">
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
{% extends "basefront.html" %}
|
{% extends "newbasefront.html" %}
|
||||||
|
|
||||||
{% block content %}
|
{% block main %}
|
||||||
|
|
||||||
{% if form.errors %}
|
{% if form.errors %}
|
||||||
<p>Your username and password didn't match. Please try again.</p>
|
<p>Your username and password didn't match. Please try again.</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
<ul class="main-content">
|
||||||
|
<li class="frontitem">
|
||||||
<form method="post" action="{% url 'django.contrib.auth.views.login' %}">
|
<form method="post" action="{% url 'django.contrib.auth.views.login' %}">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<table>
|
<table>
|
||||||
@@ -29,6 +31,8 @@
|
|||||||
<input type="submit" value="login" />
|
<input type="submit" value="login" />
|
||||||
<input type="hidden" name="next" value="{{ next }}" />
|
<input type="hidden" name="next" value="{{ next }}" />
|
||||||
</form>
|
</form>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<p class="midden"><a class="twitter-follow-button"
|
<p class="midden"><a class="twitter-follow-button"
|
||||||
href="https://twitter.com/rowsandall">
|
href="https://twitter.com/rowsandall">
|
||||||
|
|||||||
@@ -87,6 +87,38 @@
|
|||||||
</pre>
|
</pre>
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="grid_2">
|
||||||
|
<h1>Detailed Summary Edit</h1>
|
||||||
|
<p>This is still experimental and there are known bugs. Use at your own risk. Nothing is stored permanently until you hit Save on the summary above. You can use the restore original button to restore the original values.</p>
|
||||||
|
<form enctype="multipart/form-data" action="/rowers/workout/{{ workout.id }}/editintervals" method="post">
|
||||||
|
<table width=100%>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>#</th><th>Time</th><th>Distance</th><th>Type</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for i in nrintervals|times %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ i }} </td>
|
||||||
|
<td>
|
||||||
|
{% get_field_id i "intervalt_" detailform %}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{% get_field_id i "intervald_" detailform %}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{% get_field_id i "type_" detailform %}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
{% csrf_token %}
|
||||||
|
<input type="hidden" name="nrintervals" value={{ nrintervals }}>
|
||||||
|
<input class="button green" type="submit" value="Update">
|
||||||
|
</form>
|
||||||
|
</li>
|
||||||
<li class="grid_4">
|
<li class="grid_4">
|
||||||
<h1 id="howto">Interval Shorthand How-To</h1>
|
<h1 id="howto">Interval Shorthand How-To</h1>
|
||||||
<p>This is a quick way to enter the intervals using a special mini-language.</p>
|
<p>This is a quick way to enter the intervals using a special mini-language.</p>
|
||||||
|
|||||||
@@ -4002,11 +4002,14 @@ def rankings_view2(request,theuser=0,
|
|||||||
velo = d/t
|
velo = d/t
|
||||||
p = 500./velo
|
p = 500./velo
|
||||||
pwr = 2.8*(velo**3)
|
pwr = 2.8*(velo**3)
|
||||||
|
try:
|
||||||
a = {'distance':int(d),
|
a = {'distance':int(d),
|
||||||
'duration':timedeltaconv(t),
|
'duration':timedeltaconv(t),
|
||||||
'pace':timedeltaconv(p),
|
'pace':timedeltaconv(p),
|
||||||
'power':int(pwr)}
|
'power':int(pwr)}
|
||||||
predictions.append(a)
|
predictions.append(a)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
# CP model
|
# CP model
|
||||||
pwr = p1[0]/(1+t/p1[2])
|
pwr = p1[0]/(1+t/p1[2])
|
||||||
@@ -11961,7 +11964,11 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
|
|||||||
rowdata.updateintervaldata(ivalues,iunits,itypes,iresults=iresults)
|
rowdata.updateintervaldata(ivalues,iunits,itypes,iresults=iresults)
|
||||||
intervalstats = rowdata.allstats()
|
intervalstats = rowdata.allstats()
|
||||||
row.summary = intervalstats
|
row.summary = intervalstats
|
||||||
|
try:
|
||||||
row.notes += "\n"+s
|
row.notes += "\n"+s
|
||||||
|
except TypeError:
|
||||||
|
pass
|
||||||
|
|
||||||
row.save()
|
row.save()
|
||||||
rowdata.write_csv(f1,gzip=True)
|
rowdata.write_csv(f1,gzip=True)
|
||||||
dataprep.update_strokedata(id,rowdata.df)
|
dataprep.update_strokedata(id,rowdata.df)
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
.wrapper > * {
|
.wrapper > * {
|
||||||
/* border: 2px solid #f08c00; */
|
/* border: 2px solid #f08c00; */
|
||||||
border 0;
|
border 0;
|
||||||
padding: 5px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrapper nav {
|
.wrapper nav {
|
||||||
|
|||||||
@@ -288,6 +288,14 @@ th.rotate > div > span {
|
|||||||
color: black;
|
color: black;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.frontitem label {
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
.frontitem a {
|
||||||
|
color: #1c75bc;
|
||||||
|
}
|
||||||
|
|
||||||
.vignet {
|
.vignet {
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
display: block;
|
display: block;
|
||||||
|
|||||||
Reference in New Issue
Block a user