diff --git a/rowers/tests.py b/rowers/tests.py index 7eb5a4b2..8ddbfaed 100644 --- a/rowers/tests.py +++ b/rowers/tests.py @@ -702,7 +702,8 @@ class ViewTest(TestCase): 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) self.assertEqual(response.status_code, 200) diff --git a/rowers/views.py b/rowers/views.py index f1fd8ce9..66c88176 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -1229,7 +1229,7 @@ def workout_strava_upload_view(request,id=0): r.stravatoken, description=w.notes+'\n from '+w.workoutsource+' via rowsandall.com') if res==0: - message = mes + messages.error(request,mes) w.uploadedtostrava = -1 w.save() try: @@ -1248,7 +1248,8 @@ def workout_strava_upload_view(request,id=0): w.save() os.remove(tcxfile) url = "/rowers/workout/"+str(w.id)+"/edit" - successmessage = mes + + messages.info(request,mes) except: with open("media/stravaerrors.log","a") as errorlog: 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("views.py line 826\r\n") message = 'Error: '+errorstring + messages.error(request,message) else: message = "Strava Upload error" + messages.error(request,message) w.uploadedtostrava = -1 w.save() url = reverse(workout_export_view, @@ -1275,6 +1278,7 @@ def workout_strava_upload_view(request,id=0): response = HttpResponseRedirect(url) except ActivityUploadFailed as e: message = "Strava Upload error: %s" % e + messages.error(request,message) w.uploadedtostrava = -1 w.save() os.remove(tcxfile) @@ -1283,16 +1287,6 @@ def workout_strava_upload_view(request,id=0): 'id':str(w.id), }) 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 @@ -1363,6 +1357,7 @@ def workout_runkeeper_upload_view(request,id=0): # check for duplicate error first if (response.status_code == 409 ): message = "Duplicate error" + messages.error(request,message) w.uploadedtorunkeeper = -1 w.save() 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 if (response.status_code == 409 ): message = "Duplicate error" + messages.error(request,message) w.uploadedtounderarmour = -1 w.save() elif (response.status_code == 201 or response.status_code==200): @@ -1440,7 +1436,7 @@ def workout_underarmour_upload_view(request,id=0): else: s = response message = "Something went wrong in workout_underarmour_upload_view: %s - %s" % (s.reason,s.text) - + messages.error(request,message) else: message = "You are not authorized to upload this workout" messages.error(request,message) @@ -1491,6 +1487,7 @@ def workout_sporttracks_upload_view(request,id=0): # check for duplicate error first if (response.status_code == 409 ): message = "Duplicate error" + messages.error(request,message) w.uploadedtosporttracks = -1 w.save() elif (response.status_code == 201 or response.status_code==200): @@ -1503,11 +1500,10 @@ def workout_sporttracks_upload_view(request,id=0): else: s = response message = "Something went wrong in workout_sporttracks_upload_view: %s" % s.reason - + messages.error(request,message) else: message = "You are not authorized to upload this workout" - - messages.error(request,message) + messages.error(request,message) url = reverse(workout_export_view, kwargs = { @@ -1664,7 +1660,8 @@ def rower_underarmour_token_refresh(request): r.save() 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 @@ -1687,7 +1684,8 @@ def rower_tp_token_refresh(request): r.save() 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 @@ -1710,7 +1708,8 @@ def rower_sporttracks_token_refresh(request): r.save() successmessage = "Tokens refreshed. Good to go" - return imports_view(request,successmessage=successmessage) + messages.info(request,successmessage) + return imports_view(request) # Concept2 Callback @@ -1721,13 +1720,15 @@ def rower_process_callback(request): res = c2stuff.get_token(code) except MultiValueDictKeyError: 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] if access_token == 0: message = res[1] 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] refresh_token = res[2] @@ -1741,7 +1742,8 @@ def rower_process_callback(request): r.save() successmessage = "Tokens stored. Good to go" - return imports_view(request,successmessage=successmessage) + messages.info(request,successmessage) + return imports_view(request) # The imports page @login_required() @@ -1757,8 +1759,8 @@ def imports_view(request,successmessage="",message=""): @login_required() def test_reverse_view(request): successmessage = "Tokens stored. Good to go" - - return imports_view(request,successmessage=successmessage) + messages.info(request,successmessage) + return imports_view(request) # dummy @login_required() @@ -1776,7 +1778,8 @@ def rower_process_stravacallback(request): except MultiValueDictKeyError: message = "access error" - return imports_view(request,message=message) + messages.error(reqeust,message) + return imports_view(request) res = stravastuff.get_token(code) @@ -1789,10 +1792,12 @@ def rower_process_stravacallback(request): r.save() successmessage = "Tokens stored. Good to go" - return imports_view(request,successmessage=successmessage) + messages.info(request,successmessage) + return imports_view(request) else: 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 @login_required() @@ -1806,7 +1811,8 @@ def rower_process_runkeepercallback(request): r.save() successmessage = "Tokens stored. Good to go" - return imports_view(request,successmessage=successmessage) + messages.info(request,successmessage) + return imports_view(request) # Process SportTracks callback @login_required() @@ -1828,7 +1834,8 @@ def rower_process_sporttrackscallback(request): r.save() successmessage = "Tokens stored. Good to go" - return imports_view(request,successmessage=successmessage) + messages.info(request,successmessage) + return imports_view(request) # Process Underarmour callback @login_required() @@ -1850,7 +1857,8 @@ def rower_process_underarmourcallback(request): r.save() successmessage = "Tokens stored. Good to go" - return imports_view(request,successmessage=successmessage) + messages.info(request,successmessage) + return imports_view(request) # Process TrainingPeaks callback @login_required() @@ -1872,7 +1880,8 @@ def rower_process_tpcallback(request): r.save() 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 @login_required() @@ -2652,7 +2661,8 @@ def workout_recalcsummary_view(request,id=0): if (checkworkoutuser(request.user,row)==False): 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) @@ -2688,7 +2698,8 @@ def workout_makepublic_view(request,id, if (checkworkoutuser(request.user,row)==False): 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) @@ -2721,7 +2732,8 @@ def workout_setprivate_view(request,id, if (checkworkoutuser(request.user,row)==False): 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) @@ -3226,7 +3238,8 @@ def workout_undo_smoothenpace_view(request,id=0,message="",successmessage=""): if (checkworkoutuser(request.user,row)==False): 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) @@ -3257,7 +3270,8 @@ def workout_smoothenpace_view(request,id=0,message="",successmessage=""): if (checkworkoutuser(request.user,row)==False): 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) @@ -3351,7 +3365,8 @@ def workout_downloadwind_view(request,id=0, f1 = row.csvfilename if (checkworkoutuser(request.user,row)==False): 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) @@ -3418,7 +3433,8 @@ def workout_downloadmetar_view(request,id=0, f1 = row.csvfilename if (checkworkoutuser(request.user,row)==False): 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) @@ -3483,7 +3499,8 @@ def workout_wind_view(request,id=0,message="",successmessage=""): if (checkworkoutuser(request.user,row)==False): 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) @@ -3603,7 +3620,8 @@ def workout_stream_view(request,id=0,message="",successmessage=""): if (checkworkoutuser(request.user,row)==False): 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) @@ -3671,7 +3689,8 @@ def workout_otwsetpower_view(request,id=0,message="",successmessage=""): if (checkworkoutuser(request.user,row)==False): 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) @@ -3768,7 +3787,8 @@ def workout_geeky_view(request,id=0,message="",successmessage=""): if (checkworkoutuser(request.user,row)==False): 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) @@ -4018,7 +4038,8 @@ def workout_stats_view(request,id=0,message="",successmessage=""): datadf,row = dataprep.getrowdata_db(id=id) if (checkworkoutuser(request.user,row)==False): 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) 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): 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) @@ -4741,7 +4763,8 @@ def workout_edit_view(request,id=0,message="",successmessage=""): response = HttpResponseRedirect(url) else: 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) @@ -5448,8 +5471,8 @@ def workout_c2import_view(request,message=""): def workout_getstravaworkout_view(request,stravaid): res = stravastuff.get_strava_workout(request.user,stravaid) if not res[0]: - message = res[1] - return imports_view(request,message=message) + messages.error(res[1]) + return imports_view(request) strokedata = res[1] data = res[0] @@ -5632,7 +5655,7 @@ def workout_getc2workout_view(request,c2id): # This is the main view for processing uploaded files @login_required() -def workout_upload_view(request,message="", +def workout_upload_view(request, uploadoptions={ 'makeprivate':False, 'make_plot':False, @@ -5738,14 +5761,14 @@ def workout_upload_view(request,message="", title = t, notes='') if not id: - url = reverse(workout_upload_view, - args=[str(message)]) + messages.error(request,message) + url = reverse(workout_upload_view) response = HttpResponseRedirect(url) return response 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.' - url = reverse(workout_upload_view, - args=[str(message)]) + messages.info(request,message) + url = reverse(workout_upload_view) response = HttpResponseRedirect(url) return response else: @@ -5992,8 +6015,8 @@ def team_workout_upload_view(request,message="", title = t, notes='') if not id: - url = reverse(team_workout_upload_view, - args=[str(message)]) + messages.error(request,message) + url = reverse(team_workout_upload_view) response = HttpResponseRedirect(url) return response @@ -6624,7 +6647,8 @@ def rower_edit_view(request,message=""): }) except Rower.DoesNotExist: 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) else: message = HttpResponse("invalid form") @@ -6642,8 +6666,7 @@ def rower_edit_view(request,message=""): 'powerform':powerform, 'rower':r, }) - # url = reverse(rower_edit_view,args=[str(message)]) - # response = HttpResponseRedirect(url) + return response @@ -6667,11 +6690,13 @@ def rower_edit_view(request,message=""): r.pw_an = an r.save() 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) except Rower.DoesNotExist: 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) else: message = HttpResponse("invalid form") @@ -7193,6 +7218,8 @@ def manager_requests_view(request,code=None,message='',successmessage=''): message = text successmessage = '' + messages.info(request,successmessage) + message.error(request,message) url = reverse(rower_teams_view,kwargs={ }) return HttpResponseRedirect(url)