From 3e4a5c060d49907cc0bcd78a49aa3d0b192c6dfd Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Thu, 12 Jan 2017 21:37:14 +0100 Subject: [PATCH] sporttracks and strava warning when no data --- rowers/sporttracksstuff.py | 6 +++- rowers/stravastuff.py | 9 +++-- rowers/views.py | 69 ++++++++++++++++++++++++-------------- 3 files changed, 54 insertions(+), 30 deletions(-) diff --git a/rowers/sporttracksstuff.py b/rowers/sporttracksstuff.py index b0270b03..a2fce141 100644 --- a/rowers/sporttracksstuff.py +++ b/rowers/sporttracksstuff.py @@ -176,7 +176,11 @@ def get_sporttracks_workout(user,sporttracksid): def createsporttracksworkoutdata(w): filename = w.csvfilename - row = rowingdata(filename) + try: + row = rowingdata(filename) + except: + return 0 + averagehr = int(row.df[' HRCur (bpm)'].mean()) maxhr = int(row.df[' HRCur (bpm)'].max()) diff --git a/rowers/stravastuff.py b/rowers/stravastuff.py index bc3c354f..40bf1a76 100644 --- a/rowers/stravastuff.py +++ b/rowers/stravastuff.py @@ -238,9 +238,12 @@ def get_strava_workout(user,stravaid): def createstravaworkoutdata(w): filename = w.csvfilename - row = rowingdata(filename) - tcxfilename = filename[:-4]+'.tcx' - row.exporttotcx(tcxfilename,notes=w.notes) + try: + row = rowingdata(filename) + tcxfilename = filename[:-4]+'.tcx' + row.exporttotcx(tcxfilename,notes=w.notes) + except: + tcxfilename = 0 return tcxfilename diff --git a/rowers/views.py b/rowers/views.py index 320e4112..910daa26 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -924,34 +924,42 @@ def workout_strava_upload_view(request,id=0): if (checkworkoutuser(request.user,w)): try: tcxfile = stravastuff.createstravaworkoutdata(w) - - with open(tcxfile,'rb') as f: - try: - res = stravastuff.handle_stravaexport(f,w.name, + if tcxfile: + with open(tcxfile,'rb') as f: + try: + res = stravastuff.handle_stravaexport(f,w.name, r.stravatoken, description=w.notes) - except: - with open("media/stravaerrors.log","a") as errorlog: - errorstring = str(sys.exc_info()[0]) - timestr = strftime("%Y%m%d-%H%M%S") - errorlog.write(timestr+errorstring+"\r\n") - errorlog.write("views.py line 937\r\n") - message = 'Error: '+errorstring - res = 0 - try: - w.uploadedtostrava = res - w.save() - os.remove(tcxfile) - url = "/rowers/workout/"+str(w.id)+"/edit" - successmessage = 'Workout sent to Strava.' - except: - with open("media/stravaerrors.log","a") as errorlog: - errorstring = str(sys.exc_info()[0]) - timestr = strftime("%Y%m%d-%H%M%S") - errorlog.write(timestr+errorstring+"\r\n") - errorlog.write("views.py line 952\r\n") - message = 'Error: '+errorstring - + except: + with open("media/stravaerrors.log","a") as errorlog: + errorstring = str(sys.exc_info()[0]) + timestr = strftime("%Y%m%d-%H%M%S") + errorlog.write(timestr+errorstring+"\r\n") + errorlog.write("views.py line 937\r\n") + message = 'Error: '+errorstring + res = 0 + try: + w.uploadedtostrava = res + w.save() + os.remove(tcxfile) + url = "/rowers/workout/"+str(w.id)+"/edit" + successmessage = 'Workout sent to Strava.' + except: + with open("media/stravaerrors.log","a") as errorlog: + errorstring = str(sys.exc_info()[0]) + timestr = strftime("%Y%m%d-%H%M%S") + errorlog.write(timestr+errorstring+"\r\n") + errorlog.write("views.py line 952\r\n") + message = 'Error: '+errorstring + else: + message = "Strava Upload error" + w.uploadedtostrava = -1 + w.save() + url = reverse(workout_export_view, + kwargs = { + 'id':str(w.id), + }) + response = HttpResponseRedirect(url) url = reverse(workout_export_view, @@ -1063,6 +1071,15 @@ def workout_sporttracks_upload_view(request,id=0): w = Workout.objects.get(id=id) if (checkworkoutuser(request.user,w)): data = sporttracksstuff.createsporttracksworkoutdata(w) + if not data: + message = "Data error" + url = reverse(workout_export_view, + kwargs = { + 'message':str(message), + 'id':str(w.id), + }) + return HttpResponseRedirect(url) + authorizationstring = str('Bearer ' + thetoken) headers = {'Authorization': authorizationstring, 'user-agent': 'sanderroosendaal',