HTTP 409 makes sense in a number of cases

This commit is contained in:
Laura Klünder 2018-11-22 19:45:12 +01:00
parent fcebc5f5ec
commit be0531415d
2 changed files with 5 additions and 3 deletions

View file

@ -112,6 +112,8 @@ class APIHybridMessageRedirectResponse(APIHybridResponse):
self.level = level
self.message = message
self.redirect_to = redirect_to
if self.level == 'error' and status_code is None:
raise Exception('Error with HTTP 200 makes no sense!')
self.status_code = status_code
def get_api_response(self, request):

View file

@ -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'], status_code=403,
redirect_to=ctx['back_url'], status_code=409,
)
elif obj.pk not in model_changes:
messages.warning(request, _('You can not edit this object because your changeset is full.'))
@ -286,7 +286,7 @@ 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, status_code=403,
redirect_to=request.path, status_code=409,
)
if not can_edit:
@ -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, status_code=403,
redirect_to=request.path, status_code=409,
)
if request.POST.get('delete_confirm') == '1' or delete: