diff --git a/rowers/tasks.py b/rowers/tasks.py index 96c400a2..d9abc222 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -833,7 +833,7 @@ def cp_from_workoutids(workoutids,debug=False): if df.empty: # change this - return 2 + return 0,0,0 # df is not empty. We continue dfgrouped = df.groupby(['workoutid']) @@ -909,19 +909,23 @@ def handle_updatefitnessmetric(user_id,mode,workoutids,debug=False, result = fitnessmetric_to_sql(mdict,debug=debug,doclean=False) powerfourmin,power2k,powerhour = cp_from_workoutids(workoutids,debug=debug) + + if powerfourmin > 0 and power2k > 0 and powerhour > 0: - mdict = { - 'user_id': user_id, - 'PowerFourMin': powerfourmin, - 'PowerTwoK': power2k, - 'PowerOneHour': powerhour, - 'workoutmode': mode, - 'last_workout': max(workoutids), - 'date': timezone.now().strftime('%Y-%m-%d'), - } - - result = fitnessmetric_to_sql(mdict,debug=debug,doclean=True) + mdict = { + 'user_id': user_id, + 'PowerFourMin': powerfourmin, + 'PowerTwoK': power2k, + 'PowerOneHour': powerhour, + 'workoutmode': mode, + 'last_workout': max(workoutids), + 'date': timezone.now().strftime('%Y-%m-%d'), + } + result = fitnessmetric_to_sql(mdict,debug=debug,doclean=True) + else: + result = 0 + return result @app.task @@ -981,6 +985,7 @@ def handle_makeplot(f1, f2, t, hrdata, plotnr, imagename, elif (plotnr == 2): fig1 = row.get_metersplot_erg(t) elif (plotnr == 3): + t += ' - Heart Rate Distribution' fig1 = row.get_piechart(t) elif (plotnr == 4): if haspower: @@ -993,6 +998,7 @@ def handle_makeplot(f1, f2, t, hrdata, plotnr, imagename, else: fig1 = row.get_metersplot_otw(t) elif (plotnr == 6): + t += ' - Heart Rate Distribution' fig1 = row.get_piechart(t) elif (plotnr == 7) or (plotnr == 10): fig1 = row.get_metersplot_erg2(t) @@ -1001,6 +1007,7 @@ def handle_makeplot(f1, f2, t, hrdata, plotnr, imagename, elif (plotnr == 9) or (plotnr == 12): fig1 = row.get_time_otwpower(t) elif (plotnr == 13) or (plotnr == 16): + t += ' - Power Distribution' fig1 = row.get_power_piechart(t) canvas = FigureCanvas(fig1) diff --git a/rowers/underarmourstuff.py b/rowers/underarmourstuff.py index f1cd5fb8..3ad5e737 100644 --- a/rowers/underarmourstuff.py +++ b/rowers/underarmourstuff.py @@ -8,7 +8,7 @@ import requests import requests.auth import json from django.utils import timezone -from datetime import datetime +from datetime import datetime,timedelta import numpy as np from dateutil import parser import time @@ -104,7 +104,7 @@ def underarmour_open(user): expires_in = res[1] refresh_token = res[2] - expirydatetime = timezone.now()+datetime.timedelta(seconds=expires_in) + expirydatetime = timezone.now()+timedelta(seconds=expires_in) r = getrower(request.user) r.underarmourtoken = access_token @@ -205,10 +205,12 @@ def get_underarmour_workout_list(user): 'Api-Key': UNDERARMOUR_CLIENT_KEY, 'user-agent': 'sanderroosendaal', 'Content-Type': 'application/json'} - url = "https://api.ua.com/v7.1/workout/?user="+str(get_userid(r.underarmourtoken)) + url = "https://api.ua.com/v7.1/workout/?user="+str(get_userid(r.underarmourtoken))+"&order_by=-start_datetime" + s = requests.get(url,headers=headers) + return s # Get workout summary data by Underarmour ID @@ -261,7 +263,7 @@ def createunderarmourworkoutdata(w): spm = row.df[' Cadence (stokes/min)'].astype(int) spm[0] = spm[1] hr = row.df[' HRCur (bpm)'].astype(int) - + haslatlon=1 try: @@ -408,7 +410,8 @@ def get_userid(access_token): 'Api-Key': UNDERARMOUR_CLIENT_KEY, 'user-agent': 'sanderroosendaal', 'Content-Type': 'application/json'} - url = "https://api.ua.com/v7.1/user/self" + + url = "https://api.ua.com/v7.1/user/self/" response = requests.get(url,headers=headers) me_json = response.json() diff --git a/rowers/views.py b/rowers/views.py index 61a0ac09..0598d3d4 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -9561,25 +9561,23 @@ def workout_underarmourimport_view(request,message=""): workouts = [] items = res.json()['_embedded']['workouts'] for item in items: - if 'has_time_series' in item: - if item['has_time_series']: - s = item['start_datetime'] - i,r = underarmourstuff.get_idfromuri(request.user,item['_links']) - n = item['name'] - try: - d = item['aggregates']['distance_total'] - except KeyError: - d = 0 - try: - ttot = item['aggregates']['active_time_total'] - except KeyError: - ttot = 0 - - keys = ['id','distance','duration','starttime','type'] - values = [i,d,ttot,s,r] - thedict = dict(zip(keys,values)) - - workouts.append(thedict) + s = item['start_datetime'] + i,r = underarmourstuff.get_idfromuri(request.user,item['_links']) + n = item['name'] + try: + d = item['aggregates']['distance_total'] + except KeyError: + d = 0 + try: + ttot = item['aggregates']['active_time_total'] + except KeyError: + ttot = 0 + + keys = ['id','distance','duration','starttime','type'] + values = [i,d,ttot,s,r] + thedict = dict(zip(keys,values)) + + workouts.append(thedict) return render(request,'underarmour_list_import.html', {'workouts':workouts,