link to import and end fitness stat
This commit is contained in:
@@ -1726,7 +1726,9 @@ def performance_chart(user,startdate=None,enddate=None,kfitness=42,kfatigue=7,
|
|||||||
'impulse':impulses,
|
'impulse':impulses,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
endfitness = fitnesses[-1]
|
||||||
|
endfatigue = fatigues[-1]
|
||||||
|
endform = endfitness-endfatigue
|
||||||
|
|
||||||
if modelchoice == 'banister':
|
if modelchoice == 'banister':
|
||||||
df['fatigue'] = k2*df['fatigue']
|
df['fatigue'] = k2*df['fatigue']
|
||||||
@@ -1865,10 +1867,10 @@ def performance_chart(user,startdate=None,enddate=None,kfitness=42,kfatigue=7,
|
|||||||
hover.tooltips = OrderedDict([
|
hover.tooltips = OrderedDict([
|
||||||
#(legend_label,'@testpower'),
|
#(legend_label,'@testpower'),
|
||||||
('Date','@fdate'),
|
('Date','@fdate'),
|
||||||
(fitlabel,'@fitness'),
|
(fitlabel,'@fitness{int}'),
|
||||||
(fatiguelabel,'@fatigue'),
|
(fatiguelabel,'@fatigue{int}'),
|
||||||
(formlabel,'@form'),
|
(formlabel,'@form{int}'),
|
||||||
('Impulse','@impulse')
|
('Impulse','@impulse{int}')
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
@@ -1908,7 +1910,7 @@ def performance_chart(user,startdate=None,enddate=None,kfitness=42,kfatigue=7,
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
return [script,div]
|
return [script,div,endfitness,endfatigue,endform]
|
||||||
|
|
||||||
|
|
||||||
def fitnessfit_chart(workouts,user,workoutmode='water',startdate=None,
|
def fitnessfit_chart(workouts,user,workoutmode='water',startdate=None,
|
||||||
|
|||||||
@@ -2907,15 +2907,15 @@ class Workout(models.Model):
|
|||||||
rpechoices = (
|
rpechoices = (
|
||||||
(0,'Not Specified'),
|
(0,'Not Specified'),
|
||||||
(1,'1 Very Easy (a walk in the park)'), # 20 TSS / hour
|
(1,'1 Very Easy (a walk in the park)'), # 20 TSS / hour
|
||||||
(2,'2 Easy (talk, breathe normally, feels comfortable)'), # 30 TSS / hour
|
(2,'2 Easy (You breathe normally, it feels comfortable)'), # 30 TSS / hour
|
||||||
(3,'3 Somewhat easy (you can talk easily but did you notice the beautiful clouds?)'),
|
(3,'3 Somewhat easy (You can talk easily but did you notice the beautiful clouds?)'),
|
||||||
(4,'4 Moderate (talk in short spurts, breathing more labored, this feels just right)'), # 50 TSS/hour
|
(4,'4 Moderate (You can talk in short spurts, breathing more labored, this feels just right)'), # 50 TSS/hour
|
||||||
(5,"5 (It's not that painful, you just don't want to be here all day.)"),
|
(5,"5 (It's not that painful, you just don't want to be here all day.)"),
|
||||||
(6,'6 Somewhat Hard (you can say a few words if you need to)'), # 70 TSS / hour
|
(6,'6 Somewhat Hard (You can say a few words if you need to)'), # 70 TSS / hour
|
||||||
(7,'7 Vigorous (This is starting to get painful)'),
|
(7,'7 Vigorous (This is starting to get painful)'),
|
||||||
(8,"8 Hard (Could barely talk, breathing heavily, hoping you won't have to this that long)"), # 100 TSS / hour
|
(8,"8 Hard (You can barely talk, breathing heavily, hoping you won't have to this that long)"), # 100 TSS / hour
|
||||||
(9,'9 Very Hard (My goodness, please make it stop)'), # 120 TSS / hour
|
(9,'9 Very Hard (My goodness, please make it stop)'), # 120 TSS / hour
|
||||||
(10,'10 Max Effort (Could barely remember your name, you would rather rip out your toenails than go through this)') # 140 TSS / hour
|
(10,'10 Max Effort (You can barely remember your name, you would rather rip out your toenails than go through this)') # 140 TSS / hour
|
||||||
)
|
)
|
||||||
|
|
||||||
user = models.ForeignKey(Rower,on_delete=models.CASCADE)
|
user = models.ForeignKey(Rower,on_delete=models.CASCADE)
|
||||||
|
|||||||
@@ -29,6 +29,9 @@
|
|||||||
// var parsedJSON = $.parseJSON(data); //
|
// var parsedJSON = $.parseJSON(data); //
|
||||||
$("#id_script").replaceWith('<div id="id_script">'+data.script+'</d'+'iv>');
|
$("#id_script").replaceWith('<div id="id_script">'+data.script+'</d'+'iv>');
|
||||||
$("#id_chart").replaceWith('<div id="id_chart">'+data.div+'</d'+'iv>');
|
$("#id_chart").replaceWith('<div id="id_chart">'+data.div+'</d'+'iv>');
|
||||||
|
$("#endfitness").html(data.endfitness)
|
||||||
|
$("#endfatigue").html(data.endfatigue)
|
||||||
|
$("#endform").html(data.endform)
|
||||||
console.log('done');
|
console.log('done');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -84,7 +87,7 @@
|
|||||||
{{ the_div|safe }}
|
{{ the_div|safe }}
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="grid_2">
|
<li class="grid_1">
|
||||||
<form id="performanceform" enctype="multipart/form-data" method="post">
|
<form id="performanceform" enctype="multipart/form-data" method="post">
|
||||||
<table>
|
<table>
|
||||||
{{ form.as_table }}
|
{{ form.as_table }}
|
||||||
@@ -109,6 +112,11 @@
|
|||||||
on the left. The model balances out after a few weeks of regular training, so don't
|
on the left. The model balances out after a few weeks of regular training, so don't
|
||||||
make this chart shorter than a few months.
|
make this chart shorter than a few months.
|
||||||
</p>
|
</p>
|
||||||
|
<p>
|
||||||
|
For this chart to reflect your fitness and freshness, it is important to have all workouts on
|
||||||
|
Rowsandall.com. You can automatically import workouts from other fitness platforms. Change
|
||||||
|
your <a href="/rowers/me/exportsettings/">Import and Export Settings here.</a>
|
||||||
|
</p>
|
||||||
<p>
|
<p>
|
||||||
The time constants used in generating this performance chart were
|
The time constants used in generating this performance chart were
|
||||||
a fitness decay constant of {{ rower.kfit }} days
|
a fitness decay constant of {{ rower.kfit }} days
|
||||||
@@ -116,7 +124,25 @@
|
|||||||
You can change these values in your <a href="/rowers/me/preferences/">Profile Settings</a>.
|
You can change these values in your <a href="/rowers/me/preferences/">Profile Settings</a>.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="grid_1">
|
||||||
|
<div class="rounder">
|
||||||
|
<p>
|
||||||
|
<table width="100%">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td><h2>Fitness</h2></td><td><h2><span id="endfitness">{{ endfitness }}</span></h2></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><h2>Fatigue</h2></td><td><h2><span id="endfatigue"> {{ endfatigue }}</span></h2></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><h2>Freshness</h2></td><td><h2><span id="endform"> {{ endform }}</span></h2></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1578,7 +1578,7 @@ def performancemanager_view(request,userid=0,mode='rower',
|
|||||||
else:
|
else:
|
||||||
form = PerformanceManagerForm()
|
form = PerformanceManagerForm()
|
||||||
|
|
||||||
script, thediv = performance_chart(
|
script, thediv, endfitness, endfatigue, endform = performance_chart(
|
||||||
theuser,startdate=startdate,enddate=enddate,
|
theuser,startdate=startdate,enddate=enddate,
|
||||||
kfitness = kfitness,
|
kfitness = kfitness,
|
||||||
kfatigue = kfatigue,
|
kfatigue = kfatigue,
|
||||||
@@ -1602,6 +1602,9 @@ def performancemanager_view(request,userid=0,mode='rower',
|
|||||||
response = json.dumps({
|
response = json.dumps({
|
||||||
'script':script,
|
'script':script,
|
||||||
'div':thediv,
|
'div':thediv,
|
||||||
|
'endform':int(endform),
|
||||||
|
'endfitness': int(endfitness),
|
||||||
|
'endfatigue': int(endfatigue),
|
||||||
})
|
})
|
||||||
|
|
||||||
return(HttpResponse(response,content_type='application/json'))
|
return(HttpResponse(response,content_type='application/json'))
|
||||||
@@ -1616,6 +1619,9 @@ def performancemanager_view(request,userid=0,mode='rower',
|
|||||||
'the_div':thediv,
|
'the_div':thediv,
|
||||||
'mode':mode,
|
'mode':mode,
|
||||||
'form':form,
|
'form':form,
|
||||||
|
'endfitness':int(endfitness),
|
||||||
|
'endfatigue':int(endfatigue),
|
||||||
|
'endform':int(endform),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user