From cadc5d5e0d59c56cc9f9c2cd371731dac85bfd88 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 29 Aug 2018 09:46:46 +0200 Subject: [PATCH] bike erg import from C2 log --- rowers/c2stuff.py | 10 +++++++--- rowers/dataprepnodjango.py | 5 ++++- rowers/tasks.py | 9 +++++++-- rowers/views.py | 2 +- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/rowers/c2stuff.py b/rowers/c2stuff.py index c0a79f30..bcec60b4 100644 --- a/rowers/c2stuff.py +++ b/rowers/c2stuff.py @@ -56,7 +56,8 @@ def c2_open(user): 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) if (r.c2token == '') or (r.c2token is None): return custom_exception_handler(401,s) @@ -73,7 +74,7 @@ def add_stroke_data(user,c2id,workoutid,startdatetime,csvfilename): c2id, workoutid, starttimeunix, - csvfilename) + csvfilename,workouttype=workouttype) return 1 @@ -164,7 +165,8 @@ def create_async_workout(alldata,user,c2id): # 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 @@ -830,6 +832,8 @@ def add_workout_from_data(user,importid,data,strokedata, pace = pace.replace(0,300) velo = 500./pace + if workouttype == 'bike': + velo = 1000./pace power = 2.8*velo**3 diff --git a/rowers/dataprepnodjango.py b/rowers/dataprepnodjango.py index 57f13d2f..77b5b8fc 100644 --- a/rowers/dataprepnodjango.py +++ b/rowers/dataprepnodjango.py @@ -205,7 +205,7 @@ def create_c2_stroke_data_db( # Saves C2 stroke data to CSV and database def add_c2_stroke_data_db(strokedata,workoutid,starttimeunix,csvfilename, - debug=False): + debug=False,workouttype='rower'): res = make_cumvalues(0.1*strokedata['t']) cum_time = res[0] @@ -246,7 +246,10 @@ def add_c2_stroke_data_db(strokedata,workoutid,starttimeunix,csvfilename, pace = pace.replace(0,300) velo = 500./pace + if workouttype == 'bike': + velo = 1000./pace + # This may be wrong for the bike erg power = 2.8*velo**3 # save csv diff --git a/rowers/tasks.py b/rowers/tasks.py index 67910935..1581d28c 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -89,7 +89,12 @@ def handle_c2_import_stroke_data(c2token, c2id,workoutid, starttimeunix, csvfilename,debug=True,**kwargs): - + + if 'workouttype' in kwargs: + workouttype = kwargs['workouttype'] + else: + workouttype = 'rower' + authorizationstring = str('Bearer ' + c2token) headers = {'Authorization': authorizationstring, 'user-agent': 'sanderroosendaal', @@ -100,7 +105,7 @@ def handle_c2_import_stroke_data(c2token, strokedata = pd.DataFrame.from_dict(s.json()['data']) result = add_c2_stroke_data_db( strokedata,workoutid,starttimeunix, - csvfilename,debug=debug, + csvfilename,debug=debug,workouttype=workouttype ) return 1 diff --git a/rowers/views.py b/rowers/views.py index 023bb26f..5b2c47d5 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -9757,7 +9757,7 @@ def workout_getimportview(request,externalid,source = 'c2'): w = Workout.objects.get(id=id) w.uploadedtoc2 = c2id w.name = 'Imported from C2' - w.workouttype = 'rower' + w.workouttype = workouttype w.save() message = "This workout does not have any stroke data associated with it. We created synthetic stroke data."