diff --git a/rowers/nkimportutils.py b/rowers/nkimportutils.py index 1386eddc..55aacb67 100644 --- a/rowers/nkimportutils.py +++ b/rowers/nkimportutils.py @@ -74,7 +74,10 @@ def add_workout_from_data(userid, nkid, data, strokedata, source='nk', splitdata # boatName = oarlocksession["boatName"] oarLength = oarlocksession["oarLength"] # cm oarInboardLength = oarlocksession["oarInboardLength"] # cm - # seatNumber = oarlocksession["seatNumber"] + try: + seatNumber = oarlocksession["seatNumber"] + except KeyError: + seatNumber = 1 try: oarlockfirmware = oarlocksession["firmwareVersion"] except KeyError: @@ -83,7 +86,7 @@ def add_workout_from_data(userid, nkid, data, strokedata, source='nk', splitdata # boatName = '' oarLength = 289 oarInboardLength = 88 - # seatNumber = 1 + seatNumber = 1 oarlockfirmware = '' workouttype = "water" @@ -103,7 +106,8 @@ def add_workout_from_data(userid, nkid, data, strokedata, source='nk', splitdata 'oarlockfirmware': oarlockfirmware, 'elapsedTime': elapsedTime/1000., # in seconds 'totalDistance': totalDistance, - 'useImpeller': useImpeller + 'useImpeller': useImpeller, + 'seatNumber': seatNumber, } # dologging('nklog.log',json.dumps(uploadoptions)) @@ -271,13 +275,13 @@ def getdict(x, seatIndex=1): return {} -def strokeDataToDf(strokeData): +def strokeDataToDf(strokeData, seatIndex=1): df = pd.DataFrame.from_dict(strokeData) oarlockData = df['oarlockStrokes'] - oarlockData = oarlockData.apply(lambda x: getdict(x, seatIndex=1)) + oarlockData = oarlockData.apply(lambda x: getdict(x, seatIndex=seatIndex)) df2 = pd.DataFrame.from_records(oarlockData.values) # df.set_index('timestamp',inplace=True) diff --git a/rowers/tasks.py b/rowers/tasks.py index f829badb..6791029f 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -3031,7 +3031,16 @@ def handle_nk_async_workout(alldata, userid, nktoken, nkid, delaysec, defaulttim dologging('nklog.log', json.dumps(data)) dologging('nklog.log', json.dumps(strokeData)) - df = strokeDataToDf(strokeData) + seatNumber = 1 + try: + oarlockSessions = data['oarlockSessions'] + if oarlockSessions: + oarlocksession = oarlockSessions[0] + seatNumber = oarlocksession['seatNumber'] + except KeyError: + pass + + df = strokeDataToDf(strokeData, seatIndex=seatNumber) csvfilename = 'media/{code}_{nkid}.csv.gz'.format( nkid=nkid, diff --git a/rowers/templates/workout_duplicates_select.html b/rowers/templates/workout_duplicates_select.html index 4c18dae2..c8a5aaaa 100644 --- a/rowers/templates/workout_duplicates_select.html +++ b/rowers/templates/workout_duplicates_select.html @@ -14,7 +14,7 @@ } -

{{ team.name }} Select Duplicate Workouts

+

{{ team.name }} Select Duplicate Workouts ({{ rower.user.first_name }})

  • diff --git a/rowers/urls.py b/rowers/urls.py index c77e403a..c1a8666d 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -355,6 +355,8 @@ urlpatterns = [ re_path( r'^user-analysis-select/(?P\w.*)/team/(?P\d+)/workout/(?P\b[0-9A-Fa-f]+\b)/$', views.analysis_new, name='analysis_new'), + re_path(r'^workouts-dupes-select/user/(?P\d+)/$', + views.workouts_duplicates_select_view, name='workouts_duplicates_select_view'), re_path(r'^workouts-dupes-select/$', views.workouts_duplicates_select_view, name='workouts_duplicates_select_view'), re_path( diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index 7525c035..b94816a9 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -812,8 +812,8 @@ def workout_recalcsummary_view(request, id=0): message="This functionality requires a Pro plan or higher." " If you are already a Pro user, please log in to access this functionality", redirect_field_name=None) -def workouts_duplicates_select_view(request): - r = getrequestrower(request) +def workouts_duplicates_select_view(request, userid=0): + r = getrequestrower(request, userid=userid) if request.method == 'POST': form = WorkoutMultipleCompareForm(request.POST)