Private
Public Access
1
0

Merge branch 'release/v14.07' into master

This commit is contained in:
Sander Roosendaal
2020-10-19 18:30:41 +02:00
4 changed files with 50 additions and 5 deletions

View File

@@ -23,7 +23,7 @@ from rowingdata import (
get_file_type, get_empower_rigging,get_empower_firmware
)
from rowers.tasks import handle_sendemail_unrecognized
from rowers.tasks import handle_sendemail_unrecognized,handle_setcp
from rowers.tasks import handle_zip_file
from pandas import DataFrame, Series
@@ -1044,8 +1044,14 @@ def fetchcp_new(rower,workouts):
return df['delta'],df['cp'],0,df['workout']
def setcp(workout):
def setcp(workout,background=False):
filename = 'media/cpdata_{id}.parquet.gz'.format(id=workout.id)
strokesdf = getsmallrowdata_db(['power','workoutid','time'],ids = [workout.id])
if background:
job = myqueue(queuelow,handle_setcp,strokesdf,filename,workout.id)
return job.id
if not strokesdf.empty:
totaltime = strokesdf['time'].max()
try:
@@ -1061,7 +1067,7 @@ def setcp(workout):
logarr = datautils.getlogarr(maxt)
dfgrouped = strokesdf.groupby(['workoutid'])
delta, cpvalues, avgpower = datautils.getcp(dfgrouped, logarr)
filename = 'media/cpdata_{id}.parquet.gz'.format(id=workout.id)
df = pd.DataFrame({
'delta':delta,
'cp':cpvalues,

View File

@@ -173,7 +173,10 @@ def create_c2_stroke_data_db(
except ZeroDivisionError:
spm = 20*np.zeros(nr_strokes)
step = totalseconds/float(nr_strokes)
try:
step = totalseconds/float(nr_strokes)
except ZeroDivisionError:
return 0
elapsed = np.arange(nr_strokes)*totalseconds/(float(nr_strokes-1))

View File

@@ -2704,6 +2704,38 @@ def handle_sendemail_invite_reject(email, name, teamname, managername,
return 1
@app.task
def handle_setcp(strokesdf,filename,workoutid,debug=False,**kwargs):
try:
os.remove(filename)
except FileNotFoundError:
pass
if not strokesdf.empty:
totaltime = strokesdf['time'].max()
try:
powermean = strokesdf['power'].mean()
except KeyError:
powermean = 0
if powermean != 0:
thesecs = totaltime
maxt = 1.05 * thesecs
if maxt > 0:
logarr = datautils.getlogarr(maxt)
dfgrouped = strokesdf.groupby(['workoutid'])
delta, cpvalues, avgpower = datautils.getcp(dfgrouped, logarr)
df = pd.DataFrame({
'delta':delta,
'cp':cpvalues,
'id':workoutid,
})
df.to_parquet(filename,engine='fastparquet',compression='GZIP')
return 1
return 1
@app.task
def handle_sendemail_invite_accept(email, name, teamname, managername,
debug=False,**kwargs):

View File

@@ -5031,7 +5031,11 @@ def history_view_data(request,userid=0):
ignoreadvanced=True)
ddict['hrmean'] = int(wavg(ddf,'hr','deltat'))
ddict['hrmax'] = ddf['hr'].max().astype(int)
try:
ddict['hrmax'] = ddf['hr'].max().astype(int)
except ValueError:
ddict['hrmax'] = 0
ddict['powermean'] = int(wavg(df,'power','deltat'))
ddict['powermax'] = ddf['power'].max().astype(int)
ddict['nrworkouts'] = a_workouts.count()