Merge branch 'feature/nkoauth' into develop
This commit is contained in:
@@ -1586,9 +1586,9 @@ def rdata(file, rower=rrower()):
|
||||
try:
|
||||
res = rrdata(csvfile=file + '.gz', rower=rower)
|
||||
except IOError, IndexError:
|
||||
res = 0
|
||||
res = rrdata()
|
||||
except:
|
||||
res = 0
|
||||
res = rrdata()
|
||||
|
||||
return res
|
||||
|
||||
@@ -1637,7 +1637,7 @@ def getrowdata_db(id=0, doclean=False, convertnewtons=True):
|
||||
|
||||
if data.empty:
|
||||
rowdata, row = getrowdata(id=id)
|
||||
if rowdata:
|
||||
if not rowdata.empty:
|
||||
data = dataprep(rowdata.df, id=id, bands=True,
|
||||
barchart=True, otwpower=True)
|
||||
else:
|
||||
@@ -1645,7 +1645,8 @@ def getrowdata_db(id=0, doclean=False, convertnewtons=True):
|
||||
else:
|
||||
row = Workout.objects.get(id=id)
|
||||
|
||||
if data['efficiency'].mean() == 0 and data['power'].mean() != 0:
|
||||
|
||||
if not data.empty and data['efficiency'].mean() == 0 and data['power'].mean() != 0:
|
||||
data = add_efficiency(id=id)
|
||||
|
||||
if doclean:
|
||||
|
||||
@@ -21,6 +21,7 @@ class RowerSerializer(serializers.HyperlinkedModelSerializer):
|
||||
'tr',
|
||||
'an',
|
||||
'ftp',
|
||||
'sex',
|
||||
)
|
||||
|
||||
class FavoriteChartSerializer(serializers.ModelSerializer):
|
||||
@@ -52,6 +53,13 @@ class WorkoutSerializer(serializers.ModelSerializer):
|
||||
'maxhr',
|
||||
'notes',
|
||||
'summary',
|
||||
'boattype',
|
||||
'timezone',
|
||||
'forceunit',
|
||||
'inboard',
|
||||
'oarlength',
|
||||
'privacy',
|
||||
'rankingpiece'
|
||||
)
|
||||
|
||||
def create(self, validated_data):
|
||||
@@ -78,7 +86,13 @@ class WorkoutSerializer(serializers.ModelSerializer):
|
||||
summary=validated_data['summary'],
|
||||
averagehr=validated_data['averagehr'],
|
||||
maxhr=validated_data['maxhr'],
|
||||
startdatetime=rowdatetime)
|
||||
startdatetime=rowdatetime,
|
||||
timezone=validated_data['timezone'],
|
||||
forceunit=validated_data['forceunit'],
|
||||
inboard=validated_data['inboard'],
|
||||
oarlength=validated_data['oarlength'],
|
||||
privacy=validated_data['privacy'],
|
||||
rankingpiece=validated_data['rankingpiece'],)
|
||||
w.save()
|
||||
return w
|
||||
|
||||
@@ -104,6 +118,13 @@ class WorkoutSerializer(serializers.ModelSerializer):
|
||||
instance.averagehr=validated_data['averagehr']
|
||||
instance.maxhr=validated_data['maxhr']
|
||||
instance.startdatetime=rowdatetime
|
||||
instance.timezone=validated_data['timezone']
|
||||
instance.forceunit=validated_data['forceunit']
|
||||
instance.inboard=validated_data['inboard']
|
||||
instance.oarlength=validated_data['oarlength']
|
||||
instance.privacy=validated_data['privacy']
|
||||
instance.rankingpiece=validated_data['rankingpiece']
|
||||
|
||||
instance.save()
|
||||
return instance
|
||||
|
||||
|
||||
@@ -203,6 +203,12 @@
|
||||
<li><b>peakdriveforce</b>: Peak handle force (lbs)</li>
|
||||
<li><b>lapidx</b>: Lap identifier</li>
|
||||
<li><b>hr</b>: Heart rate (beats per minute)</li>
|
||||
<li><b>wash</b>: Wash as defined per Empower oarlock (degrees)</li>
|
||||
<li><b>catch</b>: Catch angle per Empower oarlock (degrees)</li>
|
||||
<li><b>finish</b>: Finish angle per Empower oarlock (degrees)</li>
|
||||
<li><b>peakforceangle</b>: Peak Force Angle per Empower oarlock (degrees)</li>
|
||||
<li><b>slip</b>: Wash as defined per Empower oarlock (degrees)</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<p>Consistency checks will be done and the stroke data will be
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<div class="grid_12 alpha">
|
||||
<h1>Stroke Data for workout {{ id }}</h1>
|
||||
|
||||
<form enctype="multipart/form-data" action="/rowers/api/workouts/{{ id }}/strokedata" method="post">
|
||||
<form enctype="application/json" action="/rowers/api/workouts/{{ id }}/strokedata" method="post">
|
||||
<table>
|
||||
{{ form.as_table }}
|
||||
</table>
|
||||
|
||||
@@ -11480,7 +11480,10 @@ def strokedatajson(request,id):
|
||||
df.index = df.index.astype(int)
|
||||
df.sort_index(inplace=True)
|
||||
# time, hr, pace, spm, power, drivelength, distance, drivespeed, dragfactor, strokerecoverytime, averagedriveforce, peakdriveforce, lapidx
|
||||
time = df['time']/1.e3
|
||||
try:
|
||||
time = df['time']/1.e3
|
||||
except KeyError:
|
||||
return HttpResponse("There must be time values",status=400)
|
||||
aantal = len(time)
|
||||
pace = df['pace']/1.e3
|
||||
if len(pace) != aantal:
|
||||
@@ -11505,14 +11508,20 @@ def strokedatajson(request,id):
|
||||
strokerecoverytime = trydf(df,aantal,'strokerecoverytime')
|
||||
averagedriveforce = trydf(df,aantal,'averagedriveforce')
|
||||
peakdriveforce = trydf(df,aantal,'peakdriveforce')
|
||||
wash = trydf(df,aantal,'wash')
|
||||
catch = trydf(df,aantal,'catch')
|
||||
finish = trydf(df,aantal,'finish')
|
||||
peakforceangle = trydf(df,aantal,'peakforceangle')
|
||||
driveenergy = trydf(df,aantal,'driveenergy')
|
||||
slip = trydf(df,aantal,'slip')
|
||||
lapidx = trydf(df,aantal,'lapidx')
|
||||
hr = trydf(df,aantal,'hr')
|
||||
|
||||
starttime = totimestamp(row.startdatetime)+time
|
||||
starttime = totimestamp(row.startdatetime)+time[0]
|
||||
unixtime = starttime+time
|
||||
|
||||
with open('media/apilog.log','a') as logfile:
|
||||
logfile.write(starttime+": ")
|
||||
logfile.write(str(starttime)+": ")
|
||||
logfile.write(request.user.username+"(POST) \r\n")
|
||||
|
||||
data = pd.DataFrame({'TimeStamp (sec)':unixtime,
|
||||
@@ -11529,10 +11538,18 @@ def strokedatajson(request,id):
|
||||
' PeakDriveForce (lbs)':peakdriveforce,
|
||||
' lapIdx':lapidx,
|
||||
' ElapsedTime (sec)':time,
|
||||
'catch':catch,
|
||||
'slip':slip,
|
||||
'finish':finish,
|
||||
'wash':wash,
|
||||
'driveenergy':driveenergy,
|
||||
'peakforceangle':peakforceangle,
|
||||
})
|
||||
|
||||
# Following part should be replaced with dataprep.new_workout_from_df
|
||||
|
||||
|
||||
r = getrower(request.user)
|
||||
|
||||
timestr = row.startdatetime.strftime("%Y%m%d-%H%M%S")
|
||||
csvfilename ='media/Import_'+timestr+'.csv'
|
||||
|
||||
@@ -11541,7 +11558,6 @@ def strokedatajson(request,id):
|
||||
row.csvfilename = csvfilename
|
||||
row.save()
|
||||
|
||||
r = getrower(request.user)
|
||||
powerperc = 100*np.array([r.pw_ut2,
|
||||
r.pw_ut1,
|
||||
r.pw_at,
|
||||
|
||||
Reference in New Issue
Block a user