From 5335213527be942b8d03a6813ce531820ae3527a Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Thu, 8 Apr 2021 08:22:56 +0200 Subject: [PATCH] better treatment of impeller --- rowers/dataprep.py | 12 ++++++++---- rowers/nkimportutils.py | 8 ++++++++ rowers/views/workoutviews.py | 21 +++++++++++++++++++++ 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/rowers/dataprep.py b/rowers/dataprep.py index b1e0632a..c91ea326 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -1898,11 +1898,11 @@ def parsenonpainsled(fileformat,f2,summary,startdatetime='',empowerfirmware=None return row,hasrecognized,summary,fileformat -def handle_nonpainsled(f2, fileformat, summary='',startdatetime='',empowerfirmware=None): +def handle_nonpainsled(f2, fileformat, summary='',startdatetime='',empowerfirmware=None,impeller=False): oarlength = 2.89 inboard = 0.88 hasrecognized = False - impeller = False + row,hasrecognized,summary,fileformat = parsenonpainsled(fileformat,f2,summary,startdatetime=startdatetime, empowerfirmware=empowerfirmware) @@ -1926,6 +1926,8 @@ def handle_nonpainsled(f2, fileformat, summary='',startdatetime='',empowerfirmwa impeller = True if impellerdata and not consistent: row2.use_gpsdata() + if impeller: + row2.use_impellerdata() row2.write_csv(f2, gzip=True) @@ -2003,9 +2005,10 @@ def new_workout_from_file(r, f2, oarlockfirmware='', inboard=None, oarlength=None, + impeller=False, uploadoptions={'boattype':'1x','workouttype':'rower'}): message = "" - impeller = False + try: fileformat = get_file_type(f2) except (IOError,UnicodeDecodeError): @@ -2022,7 +2025,7 @@ def new_workout_from_file(r, f2, uploadoptions['fromuploadform'] = True bodyyaml = yaml.safe_dump(uploadoptions,default_flow_style=False) f_to_be_deleted = f2 - impeller = False + workoutsbox = Mailbox.objects.filter(name='workouts')[0] msg = Message(mailbox=workoutsbox, from_header=r.user.email, @@ -2110,6 +2113,7 @@ def new_workout_from_file(r, f2, startdatetime=startdatetime, summary=summary, empowerfirmware=oarlockfirmware, + impeller=impeller, ) if not f2: message = 'Something went wrong' diff --git a/rowers/nkimportutils.py b/rowers/nkimportutils.py index fb2807e3..581b9a4d 100644 --- a/rowers/nkimportutils.py +++ b/rowers/nkimportutils.py @@ -49,6 +49,11 @@ def add_workout_from_data(userid,nkid,data,strokedata,source='nk',splitdata=None oarlockSessions = data["oarlockSessions"] deviceId = data["deviceId"] # you could get the firmware version + totalDistance = totalDistanceGps + useImpeller = False + if speedInput: + totdalDistance = totalDistanceImp + useImpeller = True summary = get_nk_allstats(data,strokedata) @@ -87,6 +92,9 @@ def add_workout_from_data(userid,nkid,data,strokedata,source='nk',splitdata=None 'oarlength': oarLength/100., 'summary':summary, 'oarlockfirmware':oarlockfirmware, + 'elapsedTime': elapsedTime/1000., # in seconds + 'totalDistance': totalDistance, + 'useImpeller': useImpeller } session = requests.session() diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index 0803ac71..3c9548e6 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -4953,6 +4953,11 @@ def workout_upload_api(request): oarlength = None + try: + useImpeller = post_data['useImpeller'] + except: + useImpeller = False + r = None if form.is_valid(): t = form.cleaned_data['title'] @@ -5028,6 +5033,7 @@ def workout_upload_api(request): oarlockfirmware=oarlockfirmware, inboard=inboard, oarlength=oarlength, + impeller=useImpeller, ) if id == 0: @@ -5059,6 +5065,21 @@ def workout_upload_api(request): except KeyError: pass + try: + totalDistance = post_data['totalDistance'] + w.distance = totalDistance + w.save() + except KeyError: + pass + + try: + elapsedTime = post_data['elapsedTime'] + w.duration = totaltime_sec_to_string(elapsedTime) + except KeyError: + pass + + + try: summary = post_data['summary'] w.summary = summary