Private
Public Access
1
0
This commit is contained in:
Sander Roosendaal
2022-10-11 06:44:00 +02:00
parent daf631fb9c
commit ea87daf726
4 changed files with 47 additions and 2 deletions

View File

@@ -4978,6 +4978,8 @@ class InStrokeAnalysis(models.Model):
end_second = models.IntegerField(default=3600) end_second = models.IntegerField(default=3600)
spm_min = models.IntegerField(default=10) spm_min = models.IntegerField(default=10)
spm_max = models.IntegerField(default=45) spm_max = models.IntegerField(default=45)
average_spm = models.FloatField(default=23)
average_boatspeed = models.FloatField(default=4.0)
def __str__(self): def __str__(self):
s = 'In-Stroke Analysis {name} ({date})'.format(name = self.name, s = 'In-Stroke Analysis {name} ({date})'.format(name = self.name,

View File

@@ -143,8 +143,16 @@ $( function() {
<label for="amount">Active Range:</label> <label for="amount">Active Range:</label>
<input type="text" id="amount" readonly style="border:0; color:#1c75bc; font-weight:bold;"> <input type="text" id="amount" readonly style="border:0; color:#1c75bc; font-weight:bold;">
</p> </p>
<p><input name='_form' class="button" type="submit" value="Submit"></p> <div class="buttoncontainer">
<p><input name='_save' class="button" type="submit" value="Save"></p> <input name='_form' class="button" type="submit" value="Submit">
<input name='_save' class="button" type="submit" value="Save">
<input name='_save_as_new' class="button" type="submit" value="Save as New">
<p>
With the Save buttons, you can save your analysis for future use and to compare
multiple analyses to each other. You can find the saved analyses under the Analysis
tab (<a href="/rowers/analysis/instrokeanalysis/">in-stroke analysis</a>).
</p>
</div>
</form> </form>
</li> </li>
<li class="grid_4"> <li class="grid_4">

View File

@@ -3082,6 +3082,24 @@ def instroke_chart_interactive(request, id=0, analysis=0, userid=0):
messages.info(request,'In-Stroke Analysis saved') messages.info(request,'In-Stroke Analysis saved')
if "_save_as_new" in request.POST:
instroke_analysis = InStrokeAnalysis(
workout = w,
metric = metric,
name = name,
date = timezone.now().date(),
notes = notes,
start_second = 60*activeminutesmin,
end_second = 60*activeminutesmax,
spm_min = spm_min,
spm_max = spm_max,
rower=w.user,
)
instroke_analysis.save()
messages.info(request,'In-Stroke Analysis saved')
activesecondsmin = 60.*activeminutesmin activesecondsmin = 60.*activeminutesmin
activesecondsmax = 60.*activeminutesmax activesecondsmax = 60.*activeminutesmax
@@ -3112,6 +3130,18 @@ def instroke_chart_interactive(request, id=0, analysis=0, userid=0):
intervalstats = rowdata.allstats() intervalstats = rowdata.allstats()
itime, idist, itype = rowdata.intervalstats_values() itime, idist, itype = rowdata.intervalstats_values()
totaldist = 0
totaltime = 0
avg_speed = 0
for i in range(len(idist)):
if itype[i] == 4:
totaldist += idist[i]
totaltime += itime[i]
if totaltime > 0:
avg_speed = totaldist/totaltime
intervaldata = { intervaldata = {
'itime': itime, 'itime': itime,
'idist': idist, 'idist': idist,

View File

@@ -377,6 +377,11 @@ th.rotate > div > span {
margin-top: 50%; margin-top: 50%;
} }
.buttoncontainer input {
float: left;
margin: 5px;
}
.divlines { .divlines {
display: block; display: block;
overflow-x: hidden; overflow-x: hidden;