diff --git a/rowers/urls.py b/rowers/urls.py index ac183622..30419327 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -115,18 +115,11 @@ urlpatterns = [ url(r'^404/$', TemplateView.as_view(template_name='404.html'),name='404'), url(r'^400/$', TemplateView.as_view(template_name='400.html'),name='400'), url(r'^403/$', TemplateView.as_view(template_name='403.html'),name='403'), - url(r'^imports/s/(?P\w+.*)/$', TemplateView.as_view(template_name='imports.html'), name='imports'), url(r'^imports/$', TemplateView.as_view(template_name='imports.html'), name='imports'), - url(r'^list-workouts/c/(?P\w+.*)/$',views.workouts_view), - url(r'^list-workouts/s/(?P\w+.*)/$',views.workouts_view), - url(r'^list-workouts/c/(?P\w+.*)/s/(?P\w+.*)$',views.workouts_view), url(r'^list-workouts/team/(?P\d+)/(?P\w+.*)/(?P\w+.*)$',views.workouts_view), url(r'^list-workouts/team/(?P\d+)/$',views.workouts_view), url(r'^list-workouts/(?P\w+.*)/(?P\w+.*)$',views.workouts_view), url(r'^list-workouts/$',views.workouts_view), - url(r'^team-compare-select/c/(?P\w+.*)/$',views.team_comparison_select), - url(r'^team-compare-select/s/(?P\w+.*)/$',views.team_comparison_select), - url(r'^team-compare-select/c/(?P\w+.*)/s/(?P\w+.*)$',views.team_comparison_select), url(r'^team-compare-select/team/(?P\d+)/(?P\w+.*)/(?P\w+.*)$',views.team_comparison_select), url(r'^team-compare-select/team/(?P\d+)/$',views.team_comparison_select), url(r'^team-compare-select/(?P\w+.*)/(?P\w+.*)$',views.team_comparison_select), @@ -158,19 +151,12 @@ urlpatterns = [ url(r'^graph/(\d+)/$',views.graph_show_view), url(r'^graph/(\d+)/deleteconfirm$',views.graph_delete_confirm_view), url(r'^graph/(\d+)/delete$',views.graph_delete_view), - url(r'^workout/upload/team/s/(?P\w+.*)/c/(?P\w+.*)/$',views.team_workout_upload_view), - url(r'^workout/upload/team/c/(?P\w+.*)/$',views.team_workout_upload_view), - url(r'^workout/upload/team/s/(?P\w+.*)/$',views.team_workout_upload_view), url(r'^workout/upload/team/$',views.team_workout_upload_view), url(r'^workout/upload/$',views.workout_upload_view), - url(r'^workout/upload/c/(?P\w+.*)$',views.workout_upload_view), url(r'^workout/(?P\d+)/histo$',views.workout_histo_view), url(r'^workout/(?P\d+)/task$',views.workout_test_task_view), url(r'^workout/(?P\d+)/forcecurve$',views.workout_forcecurve_view), url(r'^workout/(?P\d+)/unsubscribe$',views.workout_unsubscribe_view), - url(r'^workout/(?P\d+)/export/c/(?P\w+.*)/s/(?P\w+.*)$',views.workout_export_view), - url(r'^workout/(?P\d+)/export/c/(?P\w+.*)$',views.workout_export_view), - url(r'^workout/(?P\d+)/export/s/(?P\w+.*)$',views.workout_export_view), url(r'^workout/(?P\d+)/export$',views.workout_export_view), url(r'^workout/(?P\d+)/comment$',views.workout_comment_view), url(r'^workout/(\d+)/emailtcx$',views.workout_tcxemail_view), @@ -178,28 +164,19 @@ urlpatterns = [ url(r'^workout/compare/(\d+)/$',views.workout_comparison_list), url(r'^workout/compare2/(?P\d+)/(?P\d+)/(?P\w+.*)/(?P\w+.*)/$',views.workout_comparison_view), url(r'^workout/compare/(?P\d+)/(?P\d+-\d+-\d+)/(?P\w+.*)$',views.workout_comparison_list), - url(r'^workout/(?P\d+)/export/c/(?P\w+.*)/s/(?P\w+.*)$',views.workout_edit_view), - url(r'^workout/(?P\d+)/edit/c/(?P.+.*)$',views.workout_edit_view), - url(r'^workout/(?P\d+)/edit/s/(?P.+.*)$',views.workout_edit_view), url(r'^workout/(?P\d+)/edit$',views.workout_edit_view), url(r'^workout/(?P\d+)/setprivate$',views.workout_setprivate_view), url(r'^workout/(?P\d+)/makepublic$',views.workout_makepublic_view), - url(r'^workout/(?P\d+)/advanced/c/(?P.+.*)$',views.workout_advanced_view), - url(r'^workout/(?P\d+)/advanced/s/(?P.+.*)$',views.workout_advanced_view), url(r'^workout/(?P\d+)/geeky$',views.workout_geeky_view), url(r'^workout/(\d+)/advanced$',views.workout_advanced_view), url(r'^workout/(\d+)/stats$',views.workout_stats_view), url(r'^workout/(\d+)/otwsetpower$',views.workout_otwsetpower_view), url(r'^workout/(\d+)/interactiveotwplot$',views.workout_otwpowerplot_view), url(r'^workout/(\d+)/wind$',views.workout_wind_view), - url(r'^workout/(?P\d+)/wind/c/(?P\w+.*)$',views.workout_wind_view), - url(r'^workout/(?P\d+)/wind/s/(?P\w+.*)$',views.workout_wind_view), url(r'^workout/(?P\d+)/darkskywind$',views.workout_downloadwind_view), url(r'^workout/(?P\d+)/metar/(?P\w+)$',views.workout_downloadmetar_view), url(r'^workout/(\d+)/stream$',views.workout_stream_view), - url(r'^workout/(?P\d+)/stream/c/(?P\w+.*)$',views.workout_stream_view), url(r'^workout/(\d+)/crewnerdsummary$',views.workout_crewnerd_summary_view), - url(r'^workout/(?P\d+)/editintervals/(?P\w+.*)$',views.workout_summary_edit_view), url(r'^workout/(\d+)/editintervals$',views.workout_summary_edit_view), url(r'^workout/(\d+)/restore$',views.workout_summary_restore_view), url(r'^workout/(\d+)/interactiveplot$',views.workout_biginteractive_view), @@ -222,7 +199,6 @@ urlpatterns = [ url(r'^workout/(\d+)/delete$',views.workout_delete_view), url(r'^workout/(\d+)/smoothenpace$',views.workout_smoothenpace_view), url(r'^workout/(\d+)/undosmoothenpace$',views.workout_undo_smoothenpace_view), - url(r'^workout/c2import/c/(?P\w+.*)$',views.workout_c2import_view), url(r'^workout/c2import/$',views.workout_c2import_view), url(r'^workout/stravaimport/$',views.workout_stravaimport_view), url(r'^workout/c2import/(\d+)/$',views.workout_getc2workout_view), @@ -242,14 +218,8 @@ urlpatterns = [ url(r'^workout/(\d+)/underarmouruploadw/$',views.workout_underarmour_upload_view), url(r'^workout/(\d+)/tpuploadw/$',views.workout_tp_upload_view), url(r'^multi-compare$',views.multi_compare_view), - url(r'^me/teams/c/(?P\w+.*)/s/(?P\w+.*)$',views.rower_teams_view), - url(r'^me/teams/s/(?P\w+.*)$',views.rower_teams_view), - url(r'^me/teams/c/(?P\w+.*)$',views.rower_teams_view), - url(r'^team/(?P\d+)/s/(?P\w+.*)/c/(?P\w+.*)$',views.team_view), url(r'^me/teams/$',views.rower_teams_view), - url(r'^team/(?P\d+)/c/(?P\w+.*)$',views.team_view), - url(r'^team/(?P\d+)/s/(?P\w+.*)$',views.team_view), - url(r'^team/(\d+)/$',views.team_view), + url(r'^team/(?P\d+)/$',views.team_view), url(r'^team/(\d+)/edit$',views.team_edit_view), url(r'^team/(\d+)/leaveconfirm/$',views.team_leaveconfirm_view), url(r'^team/(\d+)/leave/$',views.team_leave_view), @@ -262,13 +232,10 @@ urlpatterns = [ url(r'^me/invitation/(\d+)/revoke$',views.invitation_revoke_view), url(r'^me/invitation/$',views.rower_invitations_view), url(r'^me/invitation/(\w+.*)/$',views.rower_invitations_view), - url(r'^me/request/c/(?P\w+.*)/$',views.manager_requests_view), url(r'^me/request/(\d+)/revoke',views.request_revoke_view), url(r'^me/request/(\d+)/reject',views.request_reject_view), url(r'^me/request/(\w+.*)/$',views.manager_requests_view), url(r'^me/request/$',views.manager_requests_view), - url(r'^me/edit/c/(?P\w+.*)$',views.rower_edit_view), - url(r'^me/edit/s/(?P\w+.*)$',views.rower_edit_view), url(r'^me/edit/$',views.rower_edit_view), url(r'^me/edit/(.+.*)/$',views.rower_edit_view), url(r'^me/c2authorize/$',views.rower_c2_authorize), diff --git a/rowers/views.py b/rowers/views.py index b549e456..f1fd8ce9 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -1057,10 +1057,10 @@ def workout_tcxemail_view(request,id=0): tcxfile = stravastuff.createstravaworkoutdata(w) if tcxfile == 0: message = "Something went wrong (TCX export)" + messages.error(request,message) url = reverse(workout_export_view, kwargs = { 'id':str(w.id), - 'message':message, }) return HttpResponseRedirect(url) if settings.DEBUG and tcxfile: @@ -1074,10 +1074,10 @@ def workout_tcxemail_view(request,id=0): r.user.email,tcxfile) successmessage = "The TCX file was sent to you per email" + messages.info(request,successmessage) url = reverse(workout_export_view, kwargs = { 'id':str(w.id), - 'successmessage':successmessage, }) except: successmessage = "" @@ -1087,20 +1087,20 @@ def workout_tcxemail_view(request,id=0): timestr = strftime("%Y%m%d-%H%M%S") errorlog.write(timestr+errorstring+"\r\n") + messages.error(request,message) url = reverse(workout_export_view, kwargs = { 'id':str(w.id), - 'message':message, }) response = HttpResponseRedirect(url) else: message = "You are not allowed to export this workout" + messages.error(request,message) url = reverse(workout_export_view, kwargs = { 'id':str(w.id), - 'message':message, }) response = HttpResponseRedirect(url) @@ -1128,19 +1128,19 @@ def workout_csvemail_view(request,id=0): r.user.email,csvfile) successmessage = "The CSV file was sent to you per email" + messages.info(request,successmessage) url = reverse(workout_export_view, kwargs = { 'id':str(w.id), - 'successmessage':successmessage, }) response = HttpResponseRedirect(url) else: message = "You are not allowed to export this workout" + messages.error(request,message) url = reverse(workout_export_view, kwargs = { 'id':str(w.id), - 'message':message, }) response = HttpResponseRedirect(url) @@ -1176,38 +1176,29 @@ def workout_tp_upload_view(request,id=0): os.remove(tcxfile) except WindowsError: pass - url = reverse(workout_export_view, - kwargs = { - 'id':str(w.id), - 'message':message, - }) + + messages.error(request,message) else: # res != 0 w.uploadedtotp = res w.save() os.remove(tcxfile) - url = reverse(workout_export_view, - kwargs = { - 'id':str(w.id), - 'successmessage':'Uploaded to TP', - }) + messages.info(request,'Uploaded to TrainingPeaks') else: # no tcxfile message = "Upload to TrainingPeaks failed" w.uploadedtotp = -1 w.save() - url = reverse(workout_export_view, - kwargs = { - 'id':str(w.id), - 'message':message, - }) + messages.error(request,message) + else: # not allowed to upload message = "You are not allowed to export this workout to TP" - url = reverse(workout_export_view, - kwargs = { - 'id':str(w.id), - 'message':message, - }) + messages.error(request,message) + + url = reverse(workout_export_view, + kwargs = { + 'id':str(w.id), + }) return HttpResponseRedirect(url) @@ -1322,16 +1313,13 @@ def workout_c2_upload_view(request,id=0): return HttpResponseRedirect("/rowers/me/c2authorize/") if message: - url = reverse(workout_export_view, - kwargs = { - 'message':str(message), - 'id':str(w.id), - }) - else: - url = reverse(workout_export_view, - kwargs = { - 'id':str(w.id), - }) + messages.error(request,message) + + + url = reverse(workout_export_view, + kwargs = { + 'id':str(w.id), + }) return HttpResponseRedirect(url) @@ -1356,9 +1344,9 @@ def workout_runkeeper_upload_view(request,id=0): data = runkeeperstuff.createrunkeeperworkoutdata(w) if not data: message = "Data error" + messages.error(request,message) url = reverse(workout_export_view, kwargs = { - 'message':str(message), 'id':str(w.id), }) return HttpResponseRedirect(url) @@ -1386,13 +1374,14 @@ def workout_runkeeper_upload_view(request,id=0): else: s = response message = "Something went wrong in workout_runkeeper_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) url = reverse(workout_export_view, kwargs = { - 'message':str(message), 'id':str(w.id), }) @@ -1420,9 +1409,9 @@ def workout_underarmour_upload_view(request,id=0): # return HttpResponse(json.dumps(data)) if not data: message = "Data error" + messages.error(request,message) url = reverse(workout_export_view, kwargs = { - 'message':str(message), 'id':str(w.id), }) return HttpResponseRedirect(url) @@ -1454,10 +1443,10 @@ def workout_underarmour_upload_view(request,id=0): else: message = "You are not authorized to upload this workout" - + messages.error(request,message) + url = reverse(workout_export_view, kwargs = { - 'message':str(message), 'id':str(w.id), }) @@ -1484,9 +1473,9 @@ def workout_sporttracks_upload_view(request,id=0): data = sporttracksstuff.createsporttracksworkoutdata(w) if not data: message = "Data error" + messages.error(request,message) url = reverse(workout_export_view, kwargs = { - 'message':str(message), 'id':str(w.id), }) return HttpResponseRedirect(url) @@ -1518,9 +1507,10 @@ def workout_sporttracks_upload_view(request,id=0): else: message = "You are not authorized to upload this workout" + messages.error(request,message) + url = reverse(workout_export_view, kwargs = { - 'message':str(message), 'id':str(w.id), }) @@ -1646,12 +1636,12 @@ def rower_c2_token_refresh(request): r.save() successmessage = "Tokens refreshed. Good to go" - message = "" + messages.info(request,successmessage) else: - successmessage = "" message = "Something went wrong (refreshing tokens). Please reauthorize:" + messages.error(request,successmessage) - return imports_view(request,successmessage=successmessage,message=message) + return imports_view(request) # Underarmour token refresh. URL for manual refresh. Not visible to users @login_required() @@ -1756,10 +1746,11 @@ def rower_process_callback(request): # The imports page @login_required() def imports_view(request,successmessage="",message=""): + messages.info(request,successmessage) + messages.error(request,message) return render(request,"imports.html", - {'successmessage': successmessage, - 'message': message, - 'teams':get_my_teams(request.user), + { + 'teams':get_my_teams(request.user), }) # Just for testing purposes @@ -2633,7 +2624,7 @@ def rankings_view(request,theuser=0, cpredictions.append(a) - + messages.error(request,message) return render(request, 'rankings.html', {'rankingworkouts':theworkouts, 'interactiveplot':script, @@ -2646,7 +2637,6 @@ def rankings_view(request,theuser=0, 'deltaform':deltaform, 'id': theuser, 'theuser':uu, - 'message':message, 'startdate':startdate, 'enddate':enddate, 'teams':get_my_teams(request.user), @@ -2672,17 +2662,17 @@ def workout_recalcsummary_view(request,id=0): row.summary = rowdata.allstats() row.save() successmessage = "Summary Updated" + messages.info(request,successmessage) url = reverse(workout_edit_view, kwargs = { 'id':str(id), - 'successmessage':str(successmessage), }) else: message = "Something went wrong. Could not update summary" + messages.error(request,message) url = reverse(workout_edit_view, kwargs = { 'id':str(id), - 'message':str(message), }) return HttpResponseRedirect(url) @@ -2712,11 +2702,11 @@ def workout_makepublic_view(request,id, message = "Workout set to public. Your followers and team members will see it" - + messages.info(request,message) + url = reverse(workout_edit_view, kwargs = { 'id':str(id), - 'successmessage':str(message), }) return HttpResponseRedirect(url) @@ -2742,11 +2732,11 @@ def workout_setprivate_view(request,id, row.team.remove(team) message = "Workout set to private. Only you will see it" - + messages.info(request,message) + url = reverse(workout_edit_view, kwargs = { 'id':str(id), - 'successmessage':str(message), }) return HttpResponseRedirect(url) @@ -2826,11 +2816,12 @@ def team_comparison_select(request, form.fields["workouts"].queryset = workouts chartform = ChartParamChoiceForm(initial={'teamid':theteam.id}) + + messages.info(request,successmessage) + messages.error(request,message) return render(request, 'team_compare_select.html', {'workouts': workouts, - 'message': message, - 'successmessage':successmessage, 'dateform':dateform, 'startdate':startdate, 'enddate':enddate, @@ -3006,10 +2997,11 @@ def workouts_view(request,message='',successmessage='', "-id" ) + messages.info(request,successmessage) + messages.error(request,message) + return render(request, 'list_workouts.html', {'workouts': workouts, - 'message': message, - 'successmessage':successmessage, 'dateform':dateform, 'startdate':startdate, 'enddate':enddate, @@ -3082,6 +3074,8 @@ def workout_comparison_list(request,id=0,message='',successmessage='', except Workout.DoesNotExist: raise Http404("Workout doesn't exist") + messages.error(request,message) + messages.info(request,successmessage) return render(request, 'comparison_list.html', {'id':id, @@ -3089,8 +3083,6 @@ def workout_comparison_list(request,id=0,message='',successmessage='', 'workouts': workouts, 'last_name':u.last_name, 'first_name':u.first_name, - 'message': message, - 'successmessage':successmessage, 'dateform':dateform, 'startdate':startdate, 'enddate':enddate, @@ -3162,15 +3154,16 @@ def workout_fusion_list(request,id=0,message='',successmessage='', except Workout.DoesNotExist: raise Http404("Workout doesn't exist") - + + messages.info(request,successmessage) + messages.error(request,message) + return render(request, 'fusion_list.html', {'id':id, 'workout':row, 'workouts': workouts, 'last_name':u.last_name, 'first_name':u.first_name, - 'message': message, - 'successmessage':successmessage, 'dateform':dateform, 'startdate':startdate, 'enddate':enddate, @@ -3314,20 +3307,20 @@ def workout_crewnerd_summary_view(request,id=0,message="",successmessage=""): row.save() os.remove(fname) successmessage = "CrewNerd summary added" + messages.info(request,successmessage) url = reverse(workout_edit_view, kwargs = { 'id':str(id), - 'successmessage':str(successmessage), }) return HttpResponseRedirect(url) except: os.remove(fname) message = "Something went wrong (workout_crewnerd_summary_view)" + messages.error(request,message) url = reverse(workout_edit_view, kwargs = { 'id':str(id), - 'message':str(message), }) return HttpResponseRedirect(url) else: @@ -3391,16 +3384,20 @@ def workout_downloadwind_view(request,id=0, row.save() rowdata.add_wind(windspeed,windbearing) rowdata.write_csv(f1,gzip=True) - - kwargs = {'successmessage':str(message), - 'id':str(id)} + + messages.info(request,message) + + kwargs = { + 'id':str(id)} url = reverse(workout_wind_view,kwargs=kwargs) response = HttpResponseRedirect(url) except KeyError: message = "No latitude/longitude data" - kwargs = {'message':str(message), - 'id':str(id)} + messages.error(request,message) + kwargs = { + 'id':str(id) + } url = reverse(workout_wind_view,kwargs=kwargs) response = HttpResponseRedirect(url) @@ -3455,16 +3452,19 @@ def workout_downloadmetar_view(request,id=0, row.save() rowdata.add_wind(windspeed,windbearing) rowdata.write_csv(f1,gzip=True) - - kwargs = {'successmessage':str(message), + messages.info(request,message) + + kwargs = { 'id':str(id)} url = reverse(workout_wind_view,kwargs=kwargs) response = HttpResponseRedirect(url) except KeyError: message = "No latitude/longitude data" - kwargs = {'message':str(message), - 'id':str(id)} + messages.error(request,message) + kwargs = { + 'id':str(id) + } url = reverse(workout_wind_view,kwargs=kwargs) response = HttpResponseRedirect(url) @@ -3551,8 +3551,10 @@ def workout_wind_view(request,id=0,message="",successmessage=""): else: message = "Invalid Form" - kwargs = {'message':str(message), - 'id':str(id)} + messages.error(request,message) + kwargs = { + 'id':str(id) + } url = reverse(workout_wind_view,kwargs=kwargs) response = HttpResponseRedirect(url) @@ -3574,11 +3576,13 @@ def workout_wind_view(request,id=0,message="",successmessage=""): gmscript = "" gmdiv = "No GPS data available" + + messages.info(request,successmessage) + messages.error(request,message) + return render(request, 'windedit.html', {'workout':row, - 'message': message, - 'successmessage': successmessage, 'teams':get_my_teams(request.user), 'interactiveplot':script, 'form':form, @@ -3633,8 +3637,9 @@ def workout_stream_view(request,id=0,message="",successmessage=""): else: message = "Invalid Form" - kwargs = {'message':str(message), - 'id':str(id)} + messages.error(request,message) + kwargs = { + 'id':str(id)} url = reverse(workout_wind_view,kwargs=kwargs) response = HttpResponseRedirect(url) @@ -3646,12 +3651,12 @@ def workout_stream_view(request,id=0,message="",successmessage=""): script = res[0] div = res[1] + messages.info(request,successmessage) + messages.error(request,message) return render(request, 'streamedit.html', {'workout':row, - 'message': message, 'teams':get_my_teams(request.user), - 'successmessage': successmessage, 'interactiveplot':script, 'form':form, 'the_div':div}) @@ -3721,8 +3726,9 @@ def workout_otwsetpower_view(request,id=0,message="",successmessage=""): successmessage = "Your calculations have been submitted. You will receive an email when they are done." - kwargs = {'successmessage':str(successmessage), - 'id':str(id)} + messages.info(request,successmessage) + kwargs = { + 'id':str(id)} url = reverse(workout_advanced_view,kwargs=kwargs) response = HttpResponseRedirect(url) @@ -3730,20 +3736,21 @@ def workout_otwsetpower_view(request,id=0,message="",successmessage=""): else: message = "Invalid Form" - kwargs = {'message':str(message), - 'id':str(id)} + messages.error(request,message) + kwargs = { + 'id':str(id)} url = reverse(workout_otwsetpower_view,kwargs=kwargs) response = HttpResponseRedirect(url) else: form = AdvancedWorkoutForm(instance=row) + messages.error(request,message) + messages.info(request,successmessage) return render(request, 'otwsetpower.html', {'workout':row, 'teams':get_my_teams(request.user), - 'message': message, - 'successmessage': successmessage, 'form':form, }) @@ -3778,14 +3785,15 @@ def workout_geeky_view(request,id=0,message="",successmessage=""): div = res[1] except ValueError: pass - + + messages.error(request,message) + messages.info(request,successmessage) + if row.workouttype=='water': return render(request, 'otwgeeky.html', {'workout':row, 'teams':get_my_teams(request.user), - 'message': message, - 'successmessage': successmessage, 'interactiveplot':script, 'the_div':div}) else: @@ -3793,8 +3801,6 @@ def workout_geeky_view(request,id=0,message="",successmessage=""): 'advancededit.html', {'workout':row, 'teams':get_my_teams(request.user), - 'message': message, - 'successmessage': successmessage, 'interactiveplot':script, 'the_div':div}) @@ -4099,14 +4105,16 @@ def workout_advanced_view(request,id=0,message="",successmessage=""): div = res[1] except ValueError: pass - + + messages.error(request,message) + messages.info(request,successmessage) + + if row.workouttype=='water': return render(request, 'advancedotw.html', {'workout':row, 'teams':get_my_teams(request.user), - 'message': message, - 'successmessage': successmessage, 'interactiveplot':script, 'the_div':div}) else: @@ -4114,8 +4122,6 @@ def workout_advanced_view(request,id=0,message="",successmessage=""): 'advancededit.html', {'workout':row, 'teams':get_my_teams(request.user), - 'message': message, - 'successmessage': successmessage, 'interactiveplot':script, 'the_div':div}) @@ -4434,13 +4440,15 @@ def workout_biginteractive_view(request,id=0,message="",successmessage=""): res = interactive_bar_chart(id,promember=promember) script = res[0] div = res[1] - + + messages.error(request,message) + messages.info(request,successmessage) + + return render(request, 'biginteractive1.html', {'workout':row, 'teams':get_my_teams(request.user), - 'message': message, - 'successmessage': successmessage, 'interactiveplot':script, 'the_div':div, 'promember':promember, @@ -4476,13 +4484,13 @@ def workout_otwpowerplot_view(request,id=0,message="",successmessage=""): script = res[0] div = res[1] - + messages.error(request,message) + messages.info(request,successmessage) + return render(request, 'otwinteractive.html', {'workout':row, 'teams':get_my_teams(request.user), - 'message': message, - 'successmessage': successmessage, 'interactiveplot':script, 'the_div':div, 'mayedit':mayedit}) @@ -4523,20 +4531,21 @@ def workout_export_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) - else: - return render(request, - 'export.html', - {'workout':row, - 'teams':get_my_teams(request.user), - 'message':message, - 'successmessage':successmessage, - 'c2userid':c2userid, - 'rkuserid':rkuserid, - }) + messages.error(request,message) + messages.info(request,successmessage) + + return render(request, + 'export.html', + {'workout':row, + 'teams':get_my_teams(request.user), + 'c2userid':c2userid, + 'rkuserid':rkuserid, + }) # @login_required() @@ -4558,14 +4567,15 @@ def workout_unsubscribe_view(request,id=0): form = WorkoutCommentForm() - message = 'You have been unsubscribed from new comment notifications for this workout' + successmessage = 'You have been unsubscribed from new comment notifications for this workout' + messages.info(request,successmessage) + return render(request, 'workout_comments.html', {'workout':w, 'teams':get_my_teams(request.user), 'comments':comments, - 'successmessage':message, 'form':form, }) @@ -4723,10 +4733,10 @@ def workout_edit_view(request,id=0,message="",successmessage=""): r.write_csv(row.csvfilename,gzip=True) dataprep.update_strokedata(id,r.df) successmessage = "Changes saved" + messages.info(request,successmessage) url = reverse(workout_edit_view, kwargs = { 'id':str(row.id), - 'successmessage':str(successmessage), }) response = HttpResponseRedirect(url) else: @@ -4778,6 +4788,8 @@ def workout_edit_view(request,id=0,message="",successmessage=""): gmscript = "" gmdiv = "" + messages.error(request,message) + messages.info(request,successmessage) # render page if (len(g)<=3): @@ -4786,8 +4798,6 @@ def workout_edit_view(request,id=0,message="",successmessage=""): 'workout':row, 'teams':get_my_teams(request.user), 'graphs1':g[0:3], - 'message': message, - 'successmessage': successmessage, 'gmscript': gmscript, 'gmdiv': gmdiv, }) @@ -4799,8 +4809,6 @@ def workout_edit_view(request,id=0,message="",successmessage=""): 'workout':row, 'graphs1':g[0:3], 'graphs2':g[3:6], - 'message': message, - 'successmessage': successmessage, 'gmscript': gmscript, 'gmdiv': gmdiv, }) @@ -5215,13 +5223,11 @@ def workout_stravaimport_view(request,message=""): s = "Token doesn't exist. Need to authorize" return HttpResponseRedirect("/rowers/me/stravaauthorize/") message = "Something went wrong in workout_stravaimport_view" + messages.error(request,message) if settings.DEBUG: return HttpResponse(res) else: - url = reverse(workouts_view, - kwargs = { - 'message': str(message) - }) + url = reverse(workouts_view) return HttpResponseRedirect(url) else: data = res.json() @@ -5229,7 +5235,6 @@ def workout_stravaimport_view(request,message=""): return render(request,'strava_list_import.html', {'data':data, 'teams':get_my_teams(request.user), - 'message':message, }) return HttpResponse(res) @@ -5245,13 +5250,12 @@ def workout_runkeeperimport_view(request,message=""): s = "Token doesn't exist. Need to authorize" return HttpResponseRedirect("/rowers/me/runkeeperauthorize/") message = "Something went wrong in workout_runkeeperimport_view" + messages.error(request,message) + if settings.DEBUG: return HttpResponse(res) else: - url = reverse(workouts_view, - kwargs = { - 'message': str(message) - }) + url = reverse(workouts_view) return HttpResponseRedirect(url) else: workouts = [] @@ -5268,7 +5272,6 @@ def workout_runkeeperimport_view(request,message=""): return render(request,'runkeeper_list_import.html', {'workouts':workouts, 'teams':get_my_teams(request.user), - 'message':message, }) return HttpResponse(res) @@ -5284,13 +5287,11 @@ def workout_underarmourimport_view(request,message=""): s = "Token doesn't exist. Need to authorize" return HttpResponseRedirect("/rowers/me/underarmourauthorize/") message = "Something went wrong in workout_underarmourimport_view" + messages.error(request,message) if settings.DEBUG: return HttpResponse(res) else: - url = reverse(workouts_view, - kwargs = { - 'message': str(message) - }) + url = reverse(workouts_view) return HttpResponseRedirect(url) else: workouts = [] @@ -5319,7 +5320,6 @@ def workout_underarmourimport_view(request,message=""): return render(request,'underarmour_list_import.html', {'workouts':workouts, 'teams':get_my_teams(request.user), - 'message':message, }) return HttpResponse(res) @@ -5335,13 +5335,11 @@ def workout_sporttracksimport_view(request,message=""): s = "Token doesn't exist. Need to authorize" return HttpResponseRedirect("/rowers/me/sporttracksauthorize/") message = "Something went wrong in workout_sporttracksimport_view" + messages.error(request,message) if settings.DEBUG: return HttpResponse(res) else: - url = reverse(workouts_view, - kwargs = { - 'message': str(message) - }) + url = reverse(workouts_view) return HttpResponseRedirect(url) else: workouts = [] @@ -5359,7 +5357,6 @@ def workout_sporttracksimport_view(request,message=""): return render(request,'sporttracks_list_import.html', {'workouts':workouts, 'teams':get_my_teams(request.user), - 'message':message, }) return HttpResponse(res) @@ -5378,13 +5375,11 @@ def c2listdebug_view(request,message=""): if (res.status_code != 200): message = "Something went wrong in workout_c2import_view (C2 token renewal)" + messages.error(request,message) if settings.DEBUG: return HttpResponse(res) else: - url = reverse(workouts_view, - kwargs = { - 'message': str(message) - }) + url = reverse(workouts_view) return HttpResponseRedirect(url) else: workouts = [] @@ -5406,7 +5401,7 @@ def c2listdebug_view(request,message=""): 'c2_list_import2.html', {'workouts':workouts, 'teams':get_my_teams(request.user), - 'message':message}) + }) # List of workouts available on Concept2 logbook - for import @login_required() @@ -5420,13 +5415,11 @@ def workout_c2import_view(request,message=""): if (res.status_code != 200): message = "Something went wrong in workout_c2import_view (C2 token refresh)" + messages.error(request,message) if settings.DEBUG: return HttpResponse(res) else: - url = reverse(workouts_view, - kwargs = { - 'message': str(message) - }) + url = reverse(workouts_view) return HttpResponseRedirect(url) else: workouts = [] @@ -5448,7 +5441,7 @@ def workout_c2import_view(request,message=""): 'c2_list_import2.html', {'workouts':workouts, 'teams':get_my_teams(request.user), - 'message':message}) + }) # Import a workout from Strava @login_required() @@ -5471,16 +5464,13 @@ def workout_getstravaworkout_view(request,stravaid): w.uploadedtostrava=stravaid w.save() if message: - url = reverse(workout_edit_view, - kwargs = { - 'message':message, - 'id':id, - }) - else: - url = reverse(workout_edit_view, - kwargs = { - 'id':id, - }) + messages.error(request,message) + + + url = reverse(workout_edit_view, + kwargs = { + 'id':id, + }) return HttpResponseRedirect(url) @@ -5496,16 +5486,12 @@ def workout_getrunkeeperworkout_view(request,runkeeperid): thetoken = runkeeper_open(request.user) w.save() if message: - url = reverse(workout_edit_view, - kwargs = { - 'id':id, - 'message':message, - }) - else: - url = reverse(workout_edit_view, - kwargs = { - 'id':id, - }) + messages.error(request,message) + + url = reverse(workout_edit_view, + kwargs = { + 'id':id, + }) return HttpResponseRedirect(url) # Imports a workout from Underarmour @@ -5519,16 +5505,12 @@ def workout_getunderarmourworkout_view(request,underarmourid): w.uploadedtounderarmour=underarmourid w.save() if message: - url = reverse(workout_edit_view, - kwargs = { - 'id':id, - 'message':message, - }) - else: - url = reverse(workout_edit_view, - kwargs = { - 'id':id, - }) + messages.error(request,message) + + url = reverse(workout_edit_view, + kwargs = { + 'id':id, + }) return HttpResponseRedirect(url) @@ -5541,25 +5523,19 @@ def workout_getsporttracksworkout_view(request,sporttracksid): id,message = add_workout_from_stdata(request.user,sporttracksid,data) if id==0: - url = reverse(workouts_view, - kwargs = { - 'message':message, - }) + messages.error(request,message) + url = reverse(workouts_view) return HttpResponseRedirect(url) w = Workout.objects.get(id=id) w.uploadedtosporttracks=sporttracksid w.save() if message: - url = reverse(workout_edit_view, - kwargs = { - 'id':id, - 'message':message, - }) - else: - url = reverse(workout_edit_view, - kwargs = { - 'id':id, - }) + messages.error(request,message) + + url = reverse(workout_edit_view, + kwargs = { + 'id':id, + }) return HttpResponseRedirect(url) # Imports a workout from Concept2 @@ -5585,10 +5561,8 @@ def workout_getc2workout_view(request,c2id): res2 = c2stuff.get_c2_workout_strokes(request.user,c2id) else: message = "This workout does not have any stroke data associated with it" - url = reverse(workout_c2import_view, - kwargs={ - 'message':message, - }) + messages.error(request,message) + url = reverse(workout_c2import_view) return HttpResponseRedirect(url) # We have stroke data @@ -5631,42 +5605,29 @@ def workout_getc2workout_view(request,c2id): dataprep.update_strokedata(w.id,rowdata.df) if message: - url = reverse(workout_edit_view, - kwargs = { - 'message':message, - 'id':id, - }) - else: - url = reverse(workout_edit_view, - kwargs = { - 'id':id, - }) + messages.error(request,message) + + url = reverse(workout_edit_view, + kwargs = { + 'id':id, + }) return HttpResponseRedirect(url) else: # message = json.loads(s.text)['message'] message = json.loads(res2.text)['message'] - url = reverse(workout_c2import_view, - kwargs={ - 'message':message, - }) - return HttpResponseRedirect(url) + messages.error(request,message) - url = reverse(workout_c2import_view, - kwargs={ - 'message':message, - }) + url = reverse(workout_c2import_view) return HttpResponseRedirect(url) else: message = "Received error code from Concept2" + messages.error(request,message) if settings.DEBUG: return HttpResponse(res) else: - url = reverse(workout_c2import_view, - kwargs={ - 'message':message, - }) + url = reverse(workout_c2import_view) return HttpResponseRedirect(url) # This is the main view for processing uploaded files @@ -5789,16 +5750,12 @@ def workout_upload_view(request,message="", return response else: if message: - url = reverse(workout_edit_view, - kwargs = { - 'id':id, - 'message':message, - }) - else: - url = reverse(workout_edit_view, - kwargs = { - 'id':id, - }) + messages.error(request,message) + + url = reverse(workout_edit_view, + kwargs = { + 'id':id, + }) response = HttpResponseRedirect(url) w = Workout.objects.get(id=id) @@ -5945,7 +5902,7 @@ def workout_upload_view(request,message="", {'form':form, 'teams':get_my_teams(request.user), 'optionsform': optionsform, - 'message':message}) + }) return response else: @@ -5955,7 +5912,7 @@ def workout_upload_view(request,message="", {'form':form, 'teams':get_my_teams(request.user), 'optionsform': optionsform, - 'message':message}) + }) # This is the main view for processing uploaded files @user_passes_test(iscoachmember,login_url="/",redirect_field_name=None) @@ -5995,14 +5952,14 @@ def team_workout_upload_view(request,message="", r = Rower.objects.get(user=u) else: message = 'Please select a rower' + messages.error(request,message) + messages.info(request,successmessage) response = render(request, 'team_document_form.html', {'form':form, 'teams':get_my_teams(request.user), 'optionsform': optionsform, 'rowerform': rowerform, - 'message':message, - 'successmessage':successmessage, }) return response @@ -6041,19 +5998,10 @@ def team_workout_upload_view(request,message="", return response else: - if message: - successmessage = "The workout was added to the user's account" - url = reverse(team_workout_upload_view, - kwargs = { - 'message':message, - 'successmessage':successmessage, - }) - else: - successmessage = "The workout was added to the user's account" - url = reverse(team_workout_upload_view, - kwargs = { - 'successmessage':successmessage, - }) + successmessage = "The workout was added to the user's account" + messages.info(request,successmessage) + + url = reverse(team_workout_upload_view) response = HttpResponseRedirect(url) w = Workout.objects.get(id=id) @@ -6108,14 +6056,13 @@ def team_workout_upload_view(request,message="", else: + response = render(request, 'team_document_form.html', {'form':form, 'teams':get_my_teams(request.user), 'optionsform': optionsform, 'rowerform': rowerform, - 'message':message, - 'successmessage':successmessage, }) return response @@ -6130,8 +6077,6 @@ def team_workout_upload_view(request,message="", 'teams':get_my_teams(request.user), 'optionsform': optionsform, 'rowerform':rowerform, - 'message':message, - 'successmessage':successmessage, }) @@ -6163,10 +6108,9 @@ def workout_delete_view(request,id=0): # files are removed by pre-delete in models.py row.delete() - url = reverse(workouts_view,kwargs={ - 'successmessage': "Workout deleted", - } - ) + messages.info(request,'Workout deleted') + url = reverse(workouts_view) + return HttpResponseRedirect(url) except Workout.DoesNotExist: @@ -6201,12 +6145,9 @@ def graph_delete_view(request,id=0): raise PermissionDenied("You are not allowed to delete this graph") else: img.delete() - - url = reverse(workouts_view,kwargs={ - 'successmessage': "Graph deleted", - } - - ) + messages.info(request,'Graph deleted') + + url = reverse(workouts_view) return HttpResponseRedirect(url) except GraphImage.DoesNotExist: @@ -6307,12 +6248,12 @@ def workout_summary_restore_view(request,id,message="",successmessage=""): pass - url = reverse(workout_summary_edit_view,kwargs={ - 'id':id, - 'successmessage': "Original Interval Data Restored", - } - - ) + messages.info(request,'Original Interval Data Restored') + url = reverse(workout_summary_edit_view, + kwargs={ + 'id':id, + } + ) return HttpResponseRedirect(url) # Fuse two workouts @@ -6342,18 +6283,15 @@ def workout_fusion_view(request,id1=0,id2=1): title='Fused data', parent=w1) if message != None: - url = reverse(workout_edit_view, - kwargs={ - 'message':message, - 'id':idnew, - }) + messages.error(request,message) else: successmessage = 'Data fused' - url = reverse(workout_edit_view, - kwargs={ - 'successmessage':successmessage, - 'id':idnew, - }) + messages.info(request,message) + + url = reverse(workout_edit_view, + kwargs={ + 'id':idnew, + }) return HttpResponseRedirect(url) else: @@ -6570,8 +6508,6 @@ def workout_summary_edit_view(request,id,message="",successmessage="" 'teams':get_my_teams(request.user), 'intervalstats':intervalstats, 'nrintervals':nrintervals, - 'message': message, - 'successmessage': successmessage, 'interactiveplot':script, 'the_div':div, 'intervalstring':s, @@ -6622,11 +6558,13 @@ def rower_favoritecharts_view(request): FavoriteChart.objects.filter(user=r).delete() FavoriteChart.objects.bulk_create(new_instances) successmessage = "You have updated your favorites" + messages.info(request,message) if len(new_instances)==0: FavoriteChartFormSet=formset_factory(FavoriteForm,formset=BaseFavoriteFormSet,extra=1) favorites_formset = FavoriteChartFormSet() except IntegrityError: message = "something went wrong" + messages.error(request,message) else: favorites_formset = FavoriteChartFormSet(initial=favorites_data) @@ -6634,9 +6572,7 @@ def rower_favoritecharts_view(request): context = { 'favorites_formset':favorites_formset, - 'message':message, 'teams':get_my_teams(request.user), - 'successmessage':successmessage, } @@ -6671,6 +6607,7 @@ def rower_edit_view(request,message=""): r.rest = max(min(rest,250),10) r.save() successmessage = "Your Heart Rate data were changed" + messages.info(request,successmessage) form = RowerForm(instance=r) powerform = RowerPowerForm(instance=r) powerzonesform = RowerPowerZonesForm(instance=r) @@ -6684,7 +6621,6 @@ def rower_edit_view(request,message=""): 'rower':r, 'accountform':accountform, 'userform':userform, - 'successmessage':successmessage, }) except Rower.DoesNotExist: message = "Funny. This user doesn't exist." @@ -6781,6 +6717,7 @@ def rower_edit_view(request,message=""): r.powerzones = powerzones r.save() successmessage = "Your Power Zone data were changed" + messages.info(request,successmessage) form = RowerForm(instance=r) accountform = AccountRowerForm(instance=r) userform = UserForm(instance=request.user) @@ -6794,11 +6731,11 @@ def rower_edit_view(request,message=""): 'userform':userform, 'accountform':accountform, 'rower':r, - 'successmessage':successmessage, }) 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) return response else: @@ -6844,6 +6781,7 @@ def rower_edit_view(request,message=""): accountform = AccountRowerForm(instance=r) userform = UserForm(instance=u) successmessage = 'Account Information changed' + messages.info(request,successmessage) return render(request, 'rower_form.html', {'form':form, 'teams':get_my_teams(request.user), @@ -6852,7 +6790,6 @@ def rower_edit_view(request,message=""): 'accountform':accountform, 'userform':userform, 'rower':r, - 'successmessage':successmessage, }) else: form = RowerForm(instance=r) @@ -7096,7 +7033,7 @@ def strokedatajson(request,id): import teams @login_required() -def team_view(request,id=0,message='',successmessage=''): +def team_view(request,id=0): ismember = 0 hasrequested = 0 r = Rower.objects.get(user=request.user) @@ -7139,15 +7076,13 @@ def team_view(request,id=0,message='',successmessage=''): ismember = 1 - + return render(request, 'team.html', { 'team':t, 'teams':get_my_teams(request.user), 'members':members, 'inviteform':inviteform, - 'message':message, - 'successmessage':successmessage, 'ismember':ismember, 'hasrequested':hasrequested, }) @@ -7203,6 +7138,8 @@ def rower_teams_view(request,message='',successmessage=''): clubsize = teams.count_invites(request.user)+teams.count_club_members(request.user) max_clubsize = r.clubsize + messages.info(request,successmessage) + messages.error(request,message) return render(request, 'teams.html', { 'teams':ts, @@ -7214,8 +7151,6 @@ def rower_teams_view(request,message='',successmessage=''): 'requests':requests, 'myrequests':myrequests, 'form':form, - 'message':message, - 'successmessage':successmessage, 'myinvites':myinvites, }) @@ -7223,15 +7158,13 @@ def rower_teams_view(request,message='',successmessage=''): def invitation_revoke_view(request,id): res,text = teams.revoke_invite(request.user,id) if res: + messages.info(request,text) successmessage = text - url = reverse(rower_teams_view,kwargs={ - 'successmessage':successmessage - }) else: message = text - url = reverse(rower_teams_view,kwargs={ - 'message':message - }) + messages.error(request,text) + + url = reverse(rower_teams_view) return HttpResponseRedirect(url) @@ -7241,15 +7174,11 @@ def manager_member_drop_view(request,teamid,userid, rower = Rower.objects.get(user__id=userid) res, text = teams.mgr_remove_member(teamid,request.user,rower) if res: - successmessage = text - url = reverse(rower_teams_view,kwargs={ - 'successmessage':successmessage - }) + messages.info(request,text) else: - message = text - url = reverse(rower_teams_view,kwargs={ - 'message':message - }) + messages.error(request,text) + + url = reverse(rower_teams_view) return HttpResponseRedirect(url) @@ -7278,17 +7207,12 @@ def team_requestmembership_view(request,teamid,userid): res,text = teams.create_request(t,userid) if res: - successmessage = text - url = reverse(team_view,kwargs={ - 'id':teamid, - 'successmessage': successmessage, - }) - + messages.info(request,text) else: - message = text - url = reverse(team_view,kwargs={ - 'id':teamid, - 'message': message, + messages.error(request,text) + + url = reverse(team_view,kwargs={ + 'id':int(teamid), }) @@ -7299,15 +7223,12 @@ def request_revoke_view(request,id=0): res,text = teams.revoke_request(request.user,id) if res: - successmessage = text - url = reverse(rower_teams_view,kwargs={ - 'successmessage':successmessage, - }) + messages.info(request,text) + else: - message = text - url = reverse(rower_teams_view,kwargs={ - 'message':message, - }) + messages.error(request,text) + + url = reverse(rower_teams_view) return HttpResponseRedirect(url) @@ -7316,15 +7237,11 @@ def request_reject_view(request,id=0): res,text = teams.reject_request(request.user,id) if res: - successmessage = text - url = reverse(rower_teams_view,kwargs={ - 'successmessage':successmessage, - }) + messages.info(request,text) else: - message = text - url = reverse(rower_teams_view,kwargs={ - 'message':message, - }) + messages.error(request,text) + + url = reverse(rower_teams_view) return HttpResponseRedirect(url) @@ -7333,15 +7250,11 @@ def invitation_reject_view(request,id=0): res,text = teams.reject_invitation(request.user,id) if res: - successmessage = text - url = reverse(rower_teams_view,kwargs={ - 'successmessage':successmessage, - }) + messages.info(request,text) else: - message = text - url = reverse(rower_teams_view,kwargs={ - 'message':message, - }) + messages.error(request,text) + + url = reverse(rower_teams_view) return HttpResponseRedirect(url) @@ -7352,17 +7265,15 @@ def rower_invitations_view(request,code=None,message='',successmessage=''): teams.remove_expired_invites() res,text = teams.process_invite_code(request.user,code) if res: - successmessage = text + messages.info(request,text) teamid=res url = reverse(team_view,kwargs={ 'id':teamid, - 'successmessage': successmessage, }) else: - message = text - url = reverse(rower_teams_view,kwargs={ - 'message':message, - }) + messages.error(request,text) + + url = reverse(rower_teams_view) return HttpResponseRedirect(url) @@ -7389,19 +7300,15 @@ def team_edit_view(request,id=0): res,message=teams.update_team(t,name,manager,private,notes, viewing) if res: - url = reverse(team_view, - kwargs={ - 'id':id, - 'successmessage':message - } - ) + messages.info(request,message) else: - url = reverse(team_view, - kwargs={ - 'id':id, - 'message':message - } - ) + messages.error(request,message) + + url = reverse(team_view, + kwargs={ + 'id':id, + } + ) response = HttpResponseRedirect(url) return response