Private
Public Access
1
0
This commit is contained in:
Sander Roosendaal
2023-01-15 14:47:34 +01:00
parent 37d5a5439c
commit e9e7326505
2 changed files with 36 additions and 30 deletions

View File

@@ -33,7 +33,7 @@ from rq.exceptions import NoSuchJobError
import threading import threading
import redis import redis
import colorsys import colorsys
import re
import zipfile import zipfile
import bleach import bleach
import arrow import arrow

View File

@@ -5234,6 +5234,8 @@ def workout_upload_api(request):
r = None r = None
if form.is_valid(): if form.is_valid():
t = form.cleaned_data['title'] t = form.cleaned_data['title']
t = re.sub('\r',' ',t)
t = re.sub('\n',' ',t)
boattype = form.cleaned_data['boattype'] boattype = form.cleaned_data['boattype']
workouttype = form.cleaned_data['workouttype'] workouttype = form.cleaned_data['workouttype']
try: try:
@@ -6701,40 +6703,44 @@ def workout_summary_edit_view(request, id, message="", successmessage=""
vals = None vals = None
# feeling lucky / ruptures # feeling lucky / ruptures
if request.method == 'POST' and "ruptures" in request.POST: if request.method == 'POST' and "ruptures" in request.POST:
df = pd.DataFrame({
'spm': rowdata.df[' Cadence (stokes/min)'],
'power': rowdata.df[' Power (watts)'],
'v': rowdata.df[' AverageBoatSpeed (m/s)']
})
algo = rpt.Pelt(model="rbf").fit(df.values)
result = algo.predict(pen=10)
df['time'] = rowdata.df['TimeStamp (sec)'].values
try: try:
timeprev = int(df['time'].values[0]) df = pd.DataFrame({
timenext = int(df['time'].values[result[0]]) 'spm': rowdata.df[' Cadence (stokes/min)'],
s = '{delta}sec'.format(delta=timenext-timeprev) 'power': rowdata.df[' Power (watts)'],
except IndexError: # pragma: no cover 'v': rowdata.df[' AverageBoatSpeed (m/s)']
s = '0sec' })
algo = rpt.Pelt(model="rbf").fit(df.values)
result = algo.predict(pen=10)
df['time'] = rowdata.df['TimeStamp (sec)'].values
try:
timeprev = int(df['time'].values[0])
timenext = int(df['time'].values[result[0]])
s = '{delta}sec'.format(delta=timenext-timeprev)
except IndexError: # pragma: no cover
s = '0sec'
for i in range(len(result)-1): for i in range(len(result)-1):
timeprev = int(df['time'].values[result[i]-1]) timeprev = int(df['time'].values[result[i]-1])
timenext = int(df['time'].values[result[i+1]-1]) timenext = int(df['time'].values[result[i+1]-1])
interval = '+{delta}sec'.format(delta=timenext-timeprev) interval = '+{delta}sec'.format(delta=timenext-timeprev)
s += interval s += interval
try: try:
rowdata.updateinterval_string(s) rowdata.updateinterval_string(s)
except: # pragma: no cover except: # pragma: no cover
messages.error(request, "Nope, you were not lucky")
intervalstats = rowdata.allstats()
itime, idist, itype = rowdata.intervalstats_values()
nrintervals = len(idist)
savebutton = 'savestringform'
intervalString = s
form = SummaryStringForm(initial={'intervalstring': intervalString})
except KeyError:
messages.error(request, "Nope, you were not lucky") messages.error(request, "Nope, you were not lucky")
intervalstats = rowdata.allstats()
itime, idist, itype = rowdata.intervalstats_values()
nrintervals = len(idist)
savebutton = 'savestringform'
intervalString = s
form = SummaryStringForm(initial={'intervalstring': intervalString})
# We have submitted the mini language interpreter # We have submitted the mini language interpreter
if request.method == 'POST' and "intervalstring" in request.POST: if request.method == 'POST' and "intervalstring" in request.POST:
form = SummaryStringForm(request.POST) form = SummaryStringForm(request.POST)