Private
Public Access
1
0

bug fixes after testing

This commit is contained in:
Sander Roosendaal
2017-05-11 11:03:17 +02:00
parent bbe9ae4770
commit 514e54e814
2 changed files with 88 additions and 60 deletions

View File

@@ -702,7 +702,8 @@ class ViewTest(TestCase):
f.close() f.close()
self.assertRedirects(response, expected_url='/rowers/workout/upload/c/This%20C2%20logbook%20summary%20does%20not%20contain%20stroke%20data.%20Please%20download%20the%20Export%20Stroke%20Data%20file%20from%20the%20workout%20details%20on%20the%20C2%20logbook.', self.assertRedirects(response,
expected_url='/rowers/workout/upload/',
status_code=302,target_status_code=200) status_code=302,target_status_code=200)
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)

View File

@@ -1229,7 +1229,7 @@ def workout_strava_upload_view(request,id=0):
r.stravatoken, r.stravatoken,
description=w.notes+'\n from '+w.workoutsource+' via rowsandall.com') description=w.notes+'\n from '+w.workoutsource+' via rowsandall.com')
if res==0: if res==0:
message = mes messages.error(request,mes)
w.uploadedtostrava = -1 w.uploadedtostrava = -1
w.save() w.save()
try: try:
@@ -1248,7 +1248,8 @@ def workout_strava_upload_view(request,id=0):
w.save() w.save()
os.remove(tcxfile) os.remove(tcxfile)
url = "/rowers/workout/"+str(w.id)+"/edit" url = "/rowers/workout/"+str(w.id)+"/edit"
successmessage = mes
messages.info(request,mes)
except: except:
with open("media/stravaerrors.log","a") as errorlog: with open("media/stravaerrors.log","a") as errorlog:
errorstring = str(sys.exc_info()[0]) errorstring = str(sys.exc_info()[0])
@@ -1256,8 +1257,10 @@ def workout_strava_upload_view(request,id=0):
errorlog.write(timestr+errorstring+"\r\n") errorlog.write(timestr+errorstring+"\r\n")
errorlog.write("views.py line 826\r\n") errorlog.write("views.py line 826\r\n")
message = 'Error: '+errorstring message = 'Error: '+errorstring
messages.error(request,message)
else: else:
message = "Strava Upload error" message = "Strava Upload error"
messages.error(request,message)
w.uploadedtostrava = -1 w.uploadedtostrava = -1
w.save() w.save()
url = reverse(workout_export_view, url = reverse(workout_export_view,
@@ -1275,6 +1278,7 @@ def workout_strava_upload_view(request,id=0):
response = HttpResponseRedirect(url) response = HttpResponseRedirect(url)
except ActivityUploadFailed as e: except ActivityUploadFailed as e:
message = "Strava Upload error: %s" % e message = "Strava Upload error: %s" % e
messages.error(request,message)
w.uploadedtostrava = -1 w.uploadedtostrava = -1
w.save() w.save()
os.remove(tcxfile) os.remove(tcxfile)
@@ -1283,16 +1287,6 @@ def workout_strava_upload_view(request,id=0):
'id':str(w.id), 'id':str(w.id),
}) })
response = HttpResponseRedirect(url) response = HttpResponseRedirect(url)
# except TimeoutExceeded as e:
# w.uploadedtostrava = -1
# w.save()
# url = reverse(workout_export_view,
# kwargs = {
# 'id':str(w.id),
# 'message':'Strava Upload attempted. No response within 10 seconds. You may be OK. Check on Strava',
# })
# response = HttpResponseRedirect(url)
return response return response
@@ -1363,6 +1357,7 @@ def workout_runkeeper_upload_view(request,id=0):
# check for duplicate error first # check for duplicate error first
if (response.status_code == 409 ): if (response.status_code == 409 ):
message = "Duplicate error" message = "Duplicate error"
messages.error(request,message)
w.uploadedtorunkeeper = -1 w.uploadedtorunkeeper = -1
w.save() w.save()
elif (response.status_code == 201 or response.status_code==200): elif (response.status_code == 201 or response.status_code==200):
@@ -1429,6 +1424,7 @@ def workout_underarmour_upload_view(request,id=0):
# check for duplicate error first # check for duplicate error first
if (response.status_code == 409 ): if (response.status_code == 409 ):
message = "Duplicate error" message = "Duplicate error"
messages.error(request,message)
w.uploadedtounderarmour = -1 w.uploadedtounderarmour = -1
w.save() w.save()
elif (response.status_code == 201 or response.status_code==200): elif (response.status_code == 201 or response.status_code==200):
@@ -1440,7 +1436,7 @@ def workout_underarmour_upload_view(request,id=0):
else: else:
s = response s = response
message = "Something went wrong in workout_underarmour_upload_view: %s - %s" % (s.reason,s.text) message = "Something went wrong in workout_underarmour_upload_view: %s - %s" % (s.reason,s.text)
messages.error(request,message)
else: else:
message = "You are not authorized to upload this workout" message = "You are not authorized to upload this workout"
messages.error(request,message) messages.error(request,message)
@@ -1491,6 +1487,7 @@ def workout_sporttracks_upload_view(request,id=0):
# check for duplicate error first # check for duplicate error first
if (response.status_code == 409 ): if (response.status_code == 409 ):
message = "Duplicate error" message = "Duplicate error"
messages.error(request,message)
w.uploadedtosporttracks = -1 w.uploadedtosporttracks = -1
w.save() w.save()
elif (response.status_code == 201 or response.status_code==200): elif (response.status_code == 201 or response.status_code==200):
@@ -1503,10 +1500,9 @@ def workout_sporttracks_upload_view(request,id=0):
else: else:
s = response s = response
message = "Something went wrong in workout_sporttracks_upload_view: %s" % s.reason message = "Something went wrong in workout_sporttracks_upload_view: %s" % s.reason
messages.error(request,message)
else: else:
message = "You are not authorized to upload this workout" message = "You are not authorized to upload this workout"
messages.error(request,message) messages.error(request,message)
url = reverse(workout_export_view, url = reverse(workout_export_view,
@@ -1664,7 +1660,8 @@ def rower_underarmour_token_refresh(request):
r.save() r.save()
successmessage = "Tokens refreshed. Good to go" successmessage = "Tokens refreshed. Good to go"
return imports_view(request,successmessage=successmessage) messages.info(request,successmessage)
return imports_view(request)
# TrainingPeaks token refresh. URL for manual refresh. Not visible to users # TrainingPeaks token refresh. URL for manual refresh. Not visible to users
@@ -1687,7 +1684,8 @@ def rower_tp_token_refresh(request):
r.save() r.save()
successmessage = "Tokens refreshed. Good to go" successmessage = "Tokens refreshed. Good to go"
return imports_view(request,successmessage=successmessage) messages.info(request,successmessage)
return imports_view(request)
# SportTracks token refresh. URL for manual refresh. Not visible to users # SportTracks token refresh. URL for manual refresh. Not visible to users
@@ -1710,7 +1708,8 @@ def rower_sporttracks_token_refresh(request):
r.save() r.save()
successmessage = "Tokens refreshed. Good to go" successmessage = "Tokens refreshed. Good to go"
return imports_view(request,successmessage=successmessage) messages.info(request,successmessage)
return imports_view(request)
# Concept2 Callback # Concept2 Callback
@@ -1721,13 +1720,15 @@ def rower_process_callback(request):
res = c2stuff.get_token(code) res = c2stuff.get_token(code)
except MultiValueDictKeyError: except MultiValueDictKeyError:
message = "The resource owner or authorization server denied the request" message = "The resource owner or authorization server denied the request"
return imports_view(request,message=message) messages.error(request,message)
return imports_view(request)
access_token = res[0] access_token = res[0]
if access_token == 0: if access_token == 0:
message = res[1] message = res[1]
message += ' Contact info@rowsandall.com if this behavior persists.' message += ' Contact info@rowsandall.com if this behavior persists.'
return imports_view(request,message=message) messages.error(request,message)
return imports_view(request)
expires_in = res[1] expires_in = res[1]
refresh_token = res[2] refresh_token = res[2]
@@ -1741,7 +1742,8 @@ def rower_process_callback(request):
r.save() r.save()
successmessage = "Tokens stored. Good to go" successmessage = "Tokens stored. Good to go"
return imports_view(request,successmessage=successmessage) messages.info(request,successmessage)
return imports_view(request)
# The imports page # The imports page
@login_required() @login_required()
@@ -1757,8 +1759,8 @@ def imports_view(request,successmessage="",message=""):
@login_required() @login_required()
def test_reverse_view(request): def test_reverse_view(request):
successmessage = "Tokens stored. Good to go" successmessage = "Tokens stored. Good to go"
messages.info(request,successmessage)
return imports_view(request,successmessage=successmessage) return imports_view(request)
# dummy # dummy
@login_required() @login_required()
@@ -1776,7 +1778,8 @@ def rower_process_stravacallback(request):
except MultiValueDictKeyError: except MultiValueDictKeyError:
message = "access error" message = "access error"
return imports_view(request,message=message) messages.error(reqeust,message)
return imports_view(request)
res = stravastuff.get_token(code) res = stravastuff.get_token(code)
@@ -1789,10 +1792,12 @@ def rower_process_stravacallback(request):
r.save() r.save()
successmessage = "Tokens stored. Good to go" successmessage = "Tokens stored. Good to go"
return imports_view(request,successmessage=successmessage) messages.info(request,successmessage)
return imports_view(request)
else: else:
message = "Something went wrong with the Strava authorization" message = "Something went wrong with the Strava authorization"
return imports_view(request,message=message) messages.error(request,message)
return imports_view(request)
# Process Runkeeper callback # Process Runkeeper callback
@login_required() @login_required()
@@ -1806,7 +1811,8 @@ def rower_process_runkeepercallback(request):
r.save() r.save()
successmessage = "Tokens stored. Good to go" successmessage = "Tokens stored. Good to go"
return imports_view(request,successmessage=successmessage) messages.info(request,successmessage)
return imports_view(request)
# Process SportTracks callback # Process SportTracks callback
@login_required() @login_required()
@@ -1828,7 +1834,8 @@ def rower_process_sporttrackscallback(request):
r.save() r.save()
successmessage = "Tokens stored. Good to go" successmessage = "Tokens stored. Good to go"
return imports_view(request,successmessage=successmessage) messages.info(request,successmessage)
return imports_view(request)
# Process Underarmour callback # Process Underarmour callback
@login_required() @login_required()
@@ -1850,7 +1857,8 @@ def rower_process_underarmourcallback(request):
r.save() r.save()
successmessage = "Tokens stored. Good to go" successmessage = "Tokens stored. Good to go"
return imports_view(request,successmessage=successmessage) messages.info(request,successmessage)
return imports_view(request)
# Process TrainingPeaks callback # Process TrainingPeaks callback
@login_required() @login_required()
@@ -1872,7 +1880,8 @@ def rower_process_tpcallback(request):
r.save() r.save()
successmessage = "Tokens stored. Good to go" successmessage = "Tokens stored. Good to go"
return imports_view(request,successmessage=successmessage) messages.info(request,successmessage)
return imports_view(request)
# Process Own API callback - for API testing purposes # Process Own API callback - for API testing purposes
@login_required() @login_required()
@@ -2652,7 +2661,8 @@ def workout_recalcsummary_view(request,id=0):
if (checkworkoutuser(request.user,row)==False): if (checkworkoutuser(request.user,row)==False):
message = "You are not allowed to edit this workout" message = "You are not allowed to edit this workout"
url = reverse(workouts_view,args=[str(message)]) messages.error(request,message)
url = reverse(workouts_view)
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@@ -2688,7 +2698,8 @@ def workout_makepublic_view(request,id,
if (checkworkoutuser(request.user,row)==False): if (checkworkoutuser(request.user,row)==False):
message = "You are not allowed to edit this workout" message = "You are not allowed to edit this workout"
url = reverse(workouts_view,args=[str(message)]) messages.error(request,message)
url = reverse(workouts_view)
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@@ -2721,7 +2732,8 @@ def workout_setprivate_view(request,id,
if (checkworkoutuser(request.user,row)==False): if (checkworkoutuser(request.user,row)==False):
message = "You are not allowed to edit this workout" message = "You are not allowed to edit this workout"
url = reverse(workouts_view,args=[str(message)]) messages.error(request,message)
url = reverse(workouts_view)
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@@ -3226,7 +3238,8 @@ def workout_undo_smoothenpace_view(request,id=0,message="",successmessage=""):
if (checkworkoutuser(request.user,row)==False): if (checkworkoutuser(request.user,row)==False):
message = "You are not allowed to edit this workout" message = "You are not allowed to edit this workout"
url = reverse(workouts_view,args=[str(message)]) messages.error(request,message)
url = reverse(workouts_view)
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@@ -3257,7 +3270,8 @@ def workout_smoothenpace_view(request,id=0,message="",successmessage=""):
if (checkworkoutuser(request.user,row)==False): if (checkworkoutuser(request.user,row)==False):
message = "You are not allowed to edit this workout" message = "You are not allowed to edit this workout"
url = reverse(workouts_view,args=[str(message)]) messages.error(request,message)
url = reverse(workouts_view)
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@@ -3351,7 +3365,8 @@ def workout_downloadwind_view(request,id=0,
f1 = row.csvfilename f1 = row.csvfilename
if (checkworkoutuser(request.user,row)==False): if (checkworkoutuser(request.user,row)==False):
message = "You are not allowed to edit this workout" message = "You are not allowed to edit this workout"
url = reverse(workouts_view,args=[str(message)]) messages.error(request,message)
url = reverse(workouts_view)
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@@ -3418,7 +3433,8 @@ def workout_downloadmetar_view(request,id=0,
f1 = row.csvfilename f1 = row.csvfilename
if (checkworkoutuser(request.user,row)==False): if (checkworkoutuser(request.user,row)==False):
message = "You are not allowed to edit this workout" message = "You are not allowed to edit this workout"
url = reverse(workouts_view,args=[str(message)]) messages.error(request,message)
url = reverse(workouts_view)
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@@ -3483,7 +3499,8 @@ def workout_wind_view(request,id=0,message="",successmessage=""):
if (checkworkoutuser(request.user,row)==False): if (checkworkoutuser(request.user,row)==False):
message = "You are not allowed to edit this workout" message = "You are not allowed to edit this workout"
url = reverse(workouts_view,args=[str(message)]) messages.error(request,message)
url = reverse(workouts_view)
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@@ -3603,7 +3620,8 @@ def workout_stream_view(request,id=0,message="",successmessage=""):
if (checkworkoutuser(request.user,row)==False): if (checkworkoutuser(request.user,row)==False):
message = "You are not allowed to edit this workout" message = "You are not allowed to edit this workout"
url = reverse(workouts_view,args=[str(message)]) messages.error(request,message)
url = reverse(workouts_view)
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@@ -3671,7 +3689,8 @@ def workout_otwsetpower_view(request,id=0,message="",successmessage=""):
if (checkworkoutuser(request.user,row)==False): if (checkworkoutuser(request.user,row)==False):
message = "You are not allowed to edit this workout" message = "You are not allowed to edit this workout"
url = reverse(workouts_view,args=[str(message)]) messages.error(request,message)
url = reverse(workouts_view)
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@@ -3768,7 +3787,8 @@ def workout_geeky_view(request,id=0,message="",successmessage=""):
if (checkworkoutuser(request.user,row)==False): if (checkworkoutuser(request.user,row)==False):
message = "You are not allowed to edit this workout" message = "You are not allowed to edit this workout"
url = reverse(workouts_view,args=[str(message)]) messages.error(request,message)
url = reverse(workouts_view)
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@@ -4018,7 +4038,8 @@ def workout_stats_view(request,id=0,message="",successmessage=""):
datadf,row = dataprep.getrowdata_db(id=id) datadf,row = dataprep.getrowdata_db(id=id)
if (checkworkoutuser(request.user,row)==False): if (checkworkoutuser(request.user,row)==False):
message = "You are not allowed to see the stats of this workout" message = "You are not allowed to see the stats of this workout"
url = reverse(workouts_view,args=[str(message)]) messages.error(request,message)
url = reverse(workouts_view)
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
datadf = dataprep.clean_df_stats(datadf,workstrokesonly=workstrokesonly) datadf = dataprep.clean_df_stats(datadf,workstrokesonly=workstrokesonly)
@@ -4088,7 +4109,8 @@ def workout_advanced_view(request,id=0,message="",successmessage=""):
if (checkworkoutuser(request.user,row)==False): if (checkworkoutuser(request.user,row)==False):
message = "You are not allowed to edit this workout" message = "You are not allowed to edit this workout"
url = reverse(workouts_view,args=[str(message)]) messages.error(request,message)
url = reverse(workouts_view)
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@@ -4741,7 +4763,8 @@ def workout_edit_view(request,id=0,message="",successmessage=""):
response = HttpResponseRedirect(url) response = HttpResponseRedirect(url)
else: else:
message = "You are not allowed to change this workout" message = "You are not allowed to change this workout"
url = reverse(workouts_view,args=[str(message)]) messages.error(request,message)
url = reverse(workouts_view)
response = HttpResponseRedirect(url) response = HttpResponseRedirect(url)
@@ -5448,8 +5471,8 @@ def workout_c2import_view(request,message=""):
def workout_getstravaworkout_view(request,stravaid): def workout_getstravaworkout_view(request,stravaid):
res = stravastuff.get_strava_workout(request.user,stravaid) res = stravastuff.get_strava_workout(request.user,stravaid)
if not res[0]: if not res[0]:
message = res[1] messages.error(res[1])
return imports_view(request,message=message) return imports_view(request)
strokedata = res[1] strokedata = res[1]
data = res[0] data = res[0]
@@ -5632,7 +5655,7 @@ def workout_getc2workout_view(request,c2id):
# This is the main view for processing uploaded files # This is the main view for processing uploaded files
@login_required() @login_required()
def workout_upload_view(request,message="", def workout_upload_view(request,
uploadoptions={ uploadoptions={
'makeprivate':False, 'makeprivate':False,
'make_plot':False, 'make_plot':False,
@@ -5738,14 +5761,14 @@ def workout_upload_view(request,message="",
title = t, title = t,
notes='') notes='')
if not id: if not id:
url = reverse(workout_upload_view, messages.error(request,message)
args=[str(message)]) url = reverse(workout_upload_view)
response = HttpResponseRedirect(url) response = HttpResponseRedirect(url)
return response return response
elif id == -1: elif id == -1:
message = 'The zip archive will be processed in the background. The files in the archive will only be uploaded without the extra actions. You will receive email when the workouts are ready.' message = 'The zip archive will be processed in the background. The files in the archive will only be uploaded without the extra actions. You will receive email when the workouts are ready.'
url = reverse(workout_upload_view, messages.info(request,message)
args=[str(message)]) url = reverse(workout_upload_view)
response = HttpResponseRedirect(url) response = HttpResponseRedirect(url)
return response return response
else: else:
@@ -5992,8 +6015,8 @@ def team_workout_upload_view(request,message="",
title = t, title = t,
notes='') notes='')
if not id: if not id:
url = reverse(team_workout_upload_view, messages.error(request,message)
args=[str(message)]) url = reverse(team_workout_upload_view)
response = HttpResponseRedirect(url) response = HttpResponseRedirect(url)
return response return response
@@ -6624,7 +6647,8 @@ def rower_edit_view(request,message=""):
}) })
except Rower.DoesNotExist: except Rower.DoesNotExist:
message = "Funny. This user doesn't exist." message = "Funny. This user doesn't exist."
url = reverse(workouts_view,args=[str(message)]) messages.error(request,message)
url = reverse(workouts_view)
response = HttpResponseRedirect(url) response = HttpResponseRedirect(url)
else: else:
message = HttpResponse("invalid form") message = HttpResponse("invalid form")
@@ -6642,8 +6666,7 @@ def rower_edit_view(request,message=""):
'powerform':powerform, 'powerform':powerform,
'rower':r, 'rower':r,
}) })
# url = reverse(rower_edit_view,args=[str(message)])
# response = HttpResponseRedirect(url)
return response return response
@@ -6667,11 +6690,13 @@ def rower_edit_view(request,message=""):
r.pw_an = an r.pw_an = an
r.save() r.save()
message = "Functional Threshold Value Changed" message = "Functional Threshold Value Changed"
url = reverse(rower_edit_view,args=[str(message)]) messages.info(request,message)
url = reverse(rower_edit_view)
response = HttpResponseRedirect(url) response = HttpResponseRedirect(url)
except Rower.DoesNotExist: except Rower.DoesNotExist:
message = "Funny. This user doesn't exist." message = "Funny. This user doesn't exist."
url = reverse(rower_edit_view,args=[str(message)]) messages.error(request,message)
url = reverse(rower_edit_view)
response = HttpResponseRedirect(url) response = HttpResponseRedirect(url)
else: else:
message = HttpResponse("invalid form") message = HttpResponse("invalid form")
@@ -7193,6 +7218,8 @@ def manager_requests_view(request,code=None,message='',successmessage=''):
message = text message = text
successmessage = '' successmessage = ''
messages.info(request,successmessage)
message.error(request,message)
url = reverse(rower_teams_view,kwargs={ url = reverse(rower_teams_view,kwargs={
}) })
return HttpResponseRedirect(url) return HttpResponseRedirect(url)