From ba24ab4e94ac623da1310c0375a94ea868bf54a9 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 9 Aug 2017 17:28:23 +0200 Subject: [PATCH] return to right page after delete --- rowers/utils.py | 9 +++++++++ rowers/views.py | 34 +++++++++++++++++++++++++++------- 2 files changed, 36 insertions(+), 7 deletions(-) diff --git a/rowers/utils.py b/rowers/utils.py index c6052de6..036969f3 100644 --- a/rowers/utils.py +++ b/rowers/utils.py @@ -5,6 +5,15 @@ import colorsys lbstoN = 4.44822 +def absolute(request): + urls = { + 'ABSOLUTE_ROOT': request.build_absolute_uri('/')[:-1].strip("/"), + 'ABSOLUTE_ROOT_URL': request.build_absolute_uri('/').strip("/"), + 'PATH':request.build_absolute_uri(), + } + + return urls + def trcolors(r1,g1,b1,r2,g2,b2): r1 = r1/255. r2 = r2/255. diff --git a/rowers/views.py b/rowers/views.py index d9abc259..d7afd580 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -273,7 +273,7 @@ def splitstdata(lijst): from utils import ( geo_distance,serialize_list,deserialize_list,uniqify, - str2bool,range_to_color_hex + str2bool,range_to_color_hex,absolute ) import datautils @@ -4005,6 +4005,7 @@ def workouts_view(request,message='',successmessage='', startdate=timezone.now()-datetime.timedelta(days=365), enddate=timezone.now()+datetime.timedelta(days=1), teamid=0): + request.session['referer'] = absolute(request)['PATH'] try: r = getrower(request.user) except Rower.DoesNotExist: @@ -4287,6 +4288,8 @@ def workout_fusion_list(request,id=0,message='',successmessage='', # Basic 'EDIT' view of workout def workout_view(request,id=0): + request.session['referer'] = absolute(request)['PATH'] + try: # check if valid ID exists (workout exists) row = Workout.objects.get(id=id) @@ -5944,6 +5947,8 @@ def workout_comment_view(request,id=0): @login_required() def workout_edit_view(request,id=0,message="",successmessage=""): request.session[translation.LANGUAGE_SESSION_KEY] = USER_LANGUAGE + request.session['referer'] = absolute(request)['PATH'] + try: # check if valid ID exists (workout exists) @@ -7576,10 +7581,12 @@ def workout_delete_confirm_view(request, id=0): if (checkworkoutuser(request.user,row)==False): raise PermissionDenied("You are not allowed to delete this workout") else: + url = request.META.get('HTTP_REFERER','/') return render(request,'workout_delete_confirm.html', {'id':int(id), 'teams':get_my_teams(request.user), - 'workout':row}) + 'workout':row, + 'url':url}) except Workout.DoesNotExist: raise Http404("Workout doesn't exist") @@ -7596,8 +7603,12 @@ def workout_delete_view(request,id=0): row.delete() messages.info(request,'Workout deleted') - url = reverse(workouts_view) - + try: + url = request.session['referer'] + except KeyError: + url = reverse(workouts_view) + + return HttpResponseRedirect(url) except Workout.DoesNotExist: @@ -7612,10 +7623,16 @@ def graph_delete_confirm_view(request, id=0): if (checkworkoutuser(request.user,row)==False): raise PermissionDenied("You are not allowed to delete this workout") else: + try: + url = request.session['referer'] + except KeyError: + url = '/rowers/list-graphs' + request.session['referer'] = url return render(request,'graphimage_delete_confirm.html', {'id':int(id), 'teams':get_my_teams(request.user), - 'graph':img}) + 'graph':img, + 'url':url}) except Workout.DoesNotExist: raise Http404("Workout doesn't exist") @@ -7633,8 +7650,10 @@ def graph_delete_view(request,id=0): else: img.delete() messages.info(request,'Graph deleted') - - url = reverse(workouts_view) + try: + url = request.session['referer'] + except KeyError: + url = reverse(graphs_view) return HttpResponseRedirect(url) except GraphImage.DoesNotExist: @@ -7645,6 +7664,7 @@ def graph_delete_view(request,id=0): # A page with all the recent graphs (searchable on workout name) @login_required() def graphs_view(request): + request.session['referer'] = reverse(graphs_view) try: r = getrower(request.user) workouts = Workout.objects.filter(user=r).order_by("-date", "-starttime")