Private
Public Access
1
0

Merge branch 'feature/bikeerg2' into develop

This commit is contained in:
Sander Roosendaal
2018-08-29 09:57:36 +02:00
8 changed files with 25 additions and 9 deletions
+10 -3
View File
@@ -56,7 +56,8 @@ def c2_open(user):
return thetoken return thetoken
def add_stroke_data(user,c2id,workoutid,startdatetime,csvfilename): def add_stroke_data(user,c2id,workoutid,startdatetime,csvfilename,
workouttype='rower'):
r = Rower.objects.get(user=user) r = Rower.objects.get(user=user)
if (r.c2token == '') or (r.c2token is None): if (r.c2token == '') or (r.c2token is None):
return custom_exception_handler(401,s) return custom_exception_handler(401,s)
@@ -73,7 +74,7 @@ def add_stroke_data(user,c2id,workoutid,startdatetime,csvfilename):
c2id, c2id,
workoutid, workoutid,
starttimeunix, starttimeunix,
csvfilename) csvfilename,workouttype=workouttype)
return 1 return 1
@@ -164,7 +165,8 @@ def create_async_workout(alldata,user,c2id):
# Check if workout has stroke data, and get the stroke data # Check if workout has stroke data, and get the stroke data
result = add_stroke_data(user,c2id,w.id,startdatetime,csvfilename) result = add_stroke_data(user,c2id,w.id,startdatetime,csvfilename,
workouttype = w.workouttype)
return w.id return w.id
@@ -392,6 +394,8 @@ def createc2workoutdata(w):
d[0] = d[1] d[0] = d[1]
p = abs(10*row.df.ix[:,' Stroke500mPace (sec/500m)'].values) p = abs(10*row.df.ix[:,' Stroke500mPace (sec/500m)'].values)
p = np.clip(p,0,3600) p = np.clip(p,0,3600)
if w.workouttype == 'bike':
p = 2.0*p
t = t.astype(int) t = t.astype(int)
d = d.astype(int) d = d.astype(int)
p = p.astype(int) p = p.astype(int)
@@ -830,6 +834,9 @@ def add_workout_from_data(user,importid,data,strokedata,
pace = pace.replace(0,300) pace = pace.replace(0,300)
velo = 500./pace velo = 500./pace
if workouttype == 'bike':
velo = 1000./pace
pace = 500./velo
power = 2.8*velo**3 power = 2.8*velo**3
-2
View File
@@ -871,8 +871,6 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower',
# auto smoothing # auto smoothing
pace = row.df[' Stroke500mPace (sec/500m)'].values pace = row.df[' Stroke500mPace (sec/500m)'].values
velo = 500. / pace velo = 500. / pace
if workouttype == 'bikeerg':
velo = 1000. / pace
f = row.df['TimeStamp (sec)'].diff().mean() f = row.df['TimeStamp (sec)'].diff().mean()
if f != 0 and not np.isnan(f): if f != 0 and not np.isnan(f):
+4 -1
View File
@@ -205,7 +205,7 @@ def create_c2_stroke_data_db(
# Saves C2 stroke data to CSV and database # Saves C2 stroke data to CSV and database
def add_c2_stroke_data_db(strokedata,workoutid,starttimeunix,csvfilename, def add_c2_stroke_data_db(strokedata,workoutid,starttimeunix,csvfilename,
debug=False): debug=False,workouttype='rower'):
res = make_cumvalues(0.1*strokedata['t']) res = make_cumvalues(0.1*strokedata['t'])
cum_time = res[0] cum_time = res[0]
@@ -246,7 +246,10 @@ def add_c2_stroke_data_db(strokedata,workoutid,starttimeunix,csvfilename,
pace = pace.replace(0,300) pace = pace.replace(0,300)
velo = 500./pace velo = 500./pace
if workouttype == 'bike':
velo = 1000./pace
# This may be wrong for the bike erg
power = 2.8*velo**3 power = 2.8*velo**3
# save csv # save csv
+6 -1
View File
@@ -90,6 +90,11 @@ def handle_c2_import_stroke_data(c2token,
starttimeunix, starttimeunix,
csvfilename,debug=True,**kwargs): csvfilename,debug=True,**kwargs):
if 'workouttype' in kwargs:
workouttype = kwargs['workouttype']
else:
workouttype = 'rower'
authorizationstring = str('Bearer ' + c2token) authorizationstring = str('Bearer ' + c2token)
headers = {'Authorization': authorizationstring, headers = {'Authorization': authorizationstring,
'user-agent': 'sanderroosendaal', 'user-agent': 'sanderroosendaal',
@@ -100,7 +105,7 @@ def handle_c2_import_stroke_data(c2token,
strokedata = pd.DataFrame.from_dict(s.json()['data']) strokedata = pd.DataFrame.from_dict(s.json()['data'])
result = add_c2_stroke_data_db( result = add_c2_stroke_data_db(
strokedata,workoutid,starttimeunix, strokedata,workoutid,starttimeunix,
csvfilename,debug=debug, csvfilename,debug=debug,workouttype=workouttype
) )
return 1 return 1
+1
View File
@@ -87,6 +87,7 @@ $( document ).ready(function() {
|| $(this).val() == 'dynamic' || $(this).val() == 'dynamic'
|| $(this).val() == 'slides' || $(this).val() == 'slides'
|| $(this).val() == 'paddle' || $(this).val() == 'paddle'
|| $(this).val() == 'bike'
|| $(this).val() == 'snow' || $(this).val() == 'snow'
) { ) {
$('#id_boattype').toggle(false); $('#id_boattype').toggle(false);
+1
View File
@@ -21,6 +21,7 @@ $( document ).ready(function() {
|| $(this).val() == 'dynamic' || $(this).val() == 'dynamic'
|| $(this).val() == 'slides' || $(this).val() == 'slides'
|| $(this).val() == 'paddle' || $(this).val() == 'paddle'
|| $(this).val() == 'bike'
|| $(this).val() == 'snow' || $(this).val() == 'snow'
) { ) {
$('#id_boattype').toggle(false); $('#id_boattype').toggle(false);
+1
View File
@@ -29,6 +29,7 @@ $( document ).ready(function() {
|| $(this).val() == 'slides' || $(this).val() == 'slides'
|| $(this).val() == 'paddle' || $(this).val() == 'paddle'
|| $(this).val() == 'snow' || $(this).val() == 'snow'
|| $(this).val() == 'bike'
) { ) {
$('#id_boattype').toggle(false); $('#id_boattype').toggle(false);
$('#id_boattype').val('1x'); $('#id_boattype').val('1x');
+1 -1
View File
@@ -9757,7 +9757,7 @@ def workout_getimportview(request,externalid,source = 'c2'):
w = Workout.objects.get(id=id) w = Workout.objects.get(id=id)
w.uploadedtoc2 = c2id w.uploadedtoc2 = c2id
w.name = 'Imported from C2' w.name = 'Imported from C2'
w.workouttype = 'rower' w.workouttype = workouttype
w.save() w.save()
message = "This workout does not have any stroke data associated with it. We created synthetic stroke data." message = "This workout does not have any stroke data associated with it. We created synthetic stroke data."