1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Closes #760: Redirect user back to device view after deleting an assigned IP address

This commit is contained in:
Jeremy Stretch
2017-01-18 12:25:07 -05:00
parent fc7f88d2a2
commit 9ff59ab686
3 changed files with 16 additions and 5 deletions

View File

@@ -239,13 +239,16 @@ class ObjectDeleteView(View):
def get(self, request, **kwargs):
obj = self.get_object(kwargs)
form = ConfirmationForm()
initial_data = {
'return_url': request.GET.get('return_url'),
}
form = ConfirmationForm(initial=initial_data)
return render(request, self.template_name, {
'obj': obj,
'form': form,
'obj_type': self.model._meta.verbose_name,
'cancel_url': self.get_cancel_url(obj),
'cancel_url': request.GET.get('return_url') or self.get_cancel_url(obj),
})
def post(self, request, **kwargs):
@@ -261,7 +264,10 @@ class ObjectDeleteView(View):
msg = u'Deleted {} {}'.format(self.model._meta.verbose_name, obj)
messages.success(request, msg)
UserAction.objects.log_delete(request.user, obj, msg)
if self.redirect_url:
return_url = form.cleaned_data['return_url']
if return_url and is_safe_url(url=return_url, host=request.get_host()):
return redirect(return_url)
elif self.redirect_url:
return redirect(self.redirect_url)
elif hasattr(obj, 'get_parent_url'):
return redirect(obj.get_parent_url())
@@ -272,7 +278,7 @@ class ObjectDeleteView(View):
'obj': obj,
'form': form,
'obj_type': self.model._meta.verbose_name,
'cancel_url': self.get_cancel_url(obj),
'cancel_url': request.GET.get('return_url') or self.get_cancel_url(obj),
})