From fcebc5f5ecbfd19222a12223c3807f5d42cb6b0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Thu, 22 Nov 2018 19:39:08 +0100 Subject: [PATCH] status codes for APIHybridMessageRedirectResponse --- src/c3nav/editor/views/base.py | 3 ++- src/c3nav/editor/views/edit.py | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/c3nav/editor/views/base.py b/src/c3nav/editor/views/base.py index fd861476..54b58fd1 100644 --- a/src/c3nav/editor/views/base.py +++ b/src/c3nav/editor/views/base.py @@ -108,10 +108,11 @@ class APIHybridResponse(ABC): class APIHybridMessageRedirectResponse(APIHybridResponse): - def __init__(self, level, message, redirect_to): + def __init__(self, level, message, redirect_to, status_code=None): self.level = level self.message = message self.redirect_to = redirect_to + self.status_code = status_code def get_api_response(self, request): return {self.level: self.message} diff --git a/src/c3nav/editor/views/edit.py b/src/c3nav/editor/views/edit.py index dd08479f..900363f0 100644 --- a/src/c3nav/editor/views/edit.py +++ b/src/c3nav/editor/views/edit.py @@ -261,7 +261,7 @@ def edit(request, pk=None, model=None, level=None, space=None, on_top_of=None, e if new: return APIHybridMessageRedirectResponse( level='error', message=_('You can not create new objects because your changeset is full.'), - redirect_to=ctx['back_url'] + redirect_to=ctx['back_url'], status_code=403, ) elif obj.pk not in model_changes: messages.warning(request, _('You can not edit this object because your changeset is full.')) @@ -286,13 +286,13 @@ def edit(request, pk=None, model=None, level=None, space=None, on_top_of=None, e if nosave: return APIHybridMessageRedirectResponse( level='error', message=_('You can not edit this object because your changeset is full.'), - redirect_to=request.path + redirect_to=request.path, status_code=403, ) if not can_edit: return APIHybridMessageRedirectResponse( level='error', message=_('You can not edit this object.'), - redirect_to=request.path + redirect_to=request.path, status_code=403, ) if not new and ((request.POST.get('delete') == '1' and delete is not False) or delete): @@ -304,7 +304,7 @@ def edit(request, pk=None, model=None, level=None, space=None, on_top_of=None, e return APIHybridMessageRedirectResponse( level='error', message=_('You can not delete this object because other objects still depend on it.'), - redirect_to=request.path + redirect_to=request.path, status_code=403, ) if request.POST.get('delete_confirm') == '1' or delete: @@ -315,7 +315,7 @@ def edit(request, pk=None, model=None, level=None, space=None, on_top_of=None, e return APIHybridMessageRedirectResponse( level='error', message=_('You can not edit changes on this changeset.'), - redirect_to=request.path + redirect_to=request.path, status_code=403, ) redirect_to = None if model == Level: