mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-16 12:12:53 -06:00
Standardized the use of return_url for ObjectDeleteView
This commit is contained in:
parent
9ff59ab686
commit
3eb969de0c
@ -52,7 +52,7 @@ class ProviderEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
class ProviderDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class ProviderDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
permission_required = 'circuits.delete_provider'
|
permission_required = 'circuits.delete_provider'
|
||||||
model = Provider
|
model = Provider
|
||||||
redirect_url = 'circuits:provider_list'
|
default_return_url = 'circuits:provider_list'
|
||||||
|
|
||||||
|
|
||||||
class ProviderBulkImportView(PermissionRequiredMixin, BulkImportView):
|
class ProviderBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||||
@ -140,7 +140,7 @@ class CircuitEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
class CircuitDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class CircuitDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
permission_required = 'circuits.delete_circuit'
|
permission_required = 'circuits.delete_circuit'
|
||||||
model = Circuit
|
model = Circuit
|
||||||
redirect_url = 'circuits:circuit_list'
|
default_return_url = 'circuits:circuit_list'
|
||||||
|
|
||||||
|
|
||||||
class CircuitBulkImportView(PermissionRequiredMixin, BulkImportView):
|
class CircuitBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||||
|
@ -163,7 +163,7 @@ class SiteEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
class SiteDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class SiteDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
permission_required = 'dcim.delete_site'
|
permission_required = 'dcim.delete_site'
|
||||||
model = Site
|
model = Site
|
||||||
redirect_url = 'dcim:site_list'
|
default_return_url = 'dcim:site_list'
|
||||||
|
|
||||||
|
|
||||||
class SiteBulkImportView(PermissionRequiredMixin, BulkImportView):
|
class SiteBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||||
@ -278,7 +278,7 @@ class RackEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
class RackDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class RackDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
permission_required = 'dcim.delete_rack'
|
permission_required = 'dcim.delete_rack'
|
||||||
model = Rack
|
model = Rack
|
||||||
redirect_url = 'dcim:rack_list'
|
default_return_url = 'dcim:rack_list'
|
||||||
|
|
||||||
|
|
||||||
class RackBulkImportView(PermissionRequiredMixin, BulkImportView):
|
class RackBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||||
@ -401,7 +401,7 @@ class DeviceTypeEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
class DeviceTypeDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class DeviceTypeDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
permission_required = 'dcim.delete_devicetype'
|
permission_required = 'dcim.delete_devicetype'
|
||||||
model = DeviceType
|
model = DeviceType
|
||||||
redirect_url = 'dcim:devicetype_list'
|
default_return_url = 'dcim:devicetype_list'
|
||||||
|
|
||||||
|
|
||||||
class DeviceTypeBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class DeviceTypeBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||||
@ -671,7 +671,7 @@ class DeviceEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
class DeviceDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class DeviceDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
permission_required = 'dcim.delete_device'
|
permission_required = 'dcim.delete_device'
|
||||||
model = Device
|
model = Device
|
||||||
redirect_url = 'dcim:device_list'
|
default_return_url = 'dcim:device_list'
|
||||||
|
|
||||||
|
|
||||||
class DeviceBulkImportView(PermissionRequiredMixin, BulkImportView):
|
class DeviceBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||||
|
@ -124,7 +124,7 @@ class VRFEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
class VRFDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class VRFDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
permission_required = 'ipam.delete_vrf'
|
permission_required = 'ipam.delete_vrf'
|
||||||
model = VRF
|
model = VRF
|
||||||
redirect_url = 'ipam:vrf_list'
|
default_return_url = 'ipam:vrf_list'
|
||||||
|
|
||||||
|
|
||||||
class VRFBulkImportView(PermissionRequiredMixin, BulkImportView):
|
class VRFBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||||
@ -313,7 +313,7 @@ class AggregateEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
class AggregateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class AggregateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
permission_required = 'ipam.delete_aggregate'
|
permission_required = 'ipam.delete_aggregate'
|
||||||
model = Aggregate
|
model = Aggregate
|
||||||
redirect_url = 'ipam:aggregate_list'
|
default_return_url = 'ipam:aggregate_list'
|
||||||
|
|
||||||
|
|
||||||
class AggregateBulkImportView(PermissionRequiredMixin, BulkImportView):
|
class AggregateBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||||
@ -443,7 +443,7 @@ class PrefixEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
class PrefixDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class PrefixDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
permission_required = 'ipam.delete_prefix'
|
permission_required = 'ipam.delete_prefix'
|
||||||
model = Prefix
|
model = Prefix
|
||||||
redirect_url = 'ipam:prefix_list'
|
default_return_url = 'ipam:prefix_list'
|
||||||
template_name = 'ipam/prefix_delete.html'
|
template_name = 'ipam/prefix_delete.html'
|
||||||
|
|
||||||
|
|
||||||
@ -609,7 +609,7 @@ class IPAddressEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
class IPAddressDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class IPAddressDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
permission_required = 'ipam.delete_ipaddress'
|
permission_required = 'ipam.delete_ipaddress'
|
||||||
model = IPAddress
|
model = IPAddress
|
||||||
redirect_url = 'ipam:ipaddress_list'
|
default_return_url = 'ipam:ipaddress_list'
|
||||||
|
|
||||||
|
|
||||||
class IPAddressBulkAddView(PermissionRequiredMixin, BulkAddView):
|
class IPAddressBulkAddView(PermissionRequiredMixin, BulkAddView):
|
||||||
@ -720,7 +720,7 @@ class VLANEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
class VLANDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class VLANDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
permission_required = 'ipam.delete_vlan'
|
permission_required = 'ipam.delete_vlan'
|
||||||
model = VLAN
|
model = VLAN
|
||||||
redirect_url = 'ipam:vlan_list'
|
default_return_url = 'ipam:vlan_list'
|
||||||
|
|
||||||
|
|
||||||
class VLANBulkImportView(PermissionRequiredMixin, BulkImportView):
|
class VLANBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||||
|
@ -151,7 +151,7 @@ def secret_edit(request, pk):
|
|||||||
class SecretDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class SecretDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
permission_required = 'secrets.delete_secret'
|
permission_required = 'secrets.delete_secret'
|
||||||
model = Secret
|
model = Secret
|
||||||
redirect_url = 'secrets:secret_list'
|
default_return_url = 'secrets:secret_list'
|
||||||
|
|
||||||
|
|
||||||
@permission_required('secrets.add_secret')
|
@permission_required('secrets.add_secret')
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if termination and perms.circuits.delete_circuittermination %}
|
{% if termination and perms.circuits.delete_circuittermination %}
|
||||||
<a href="{% url 'circuits:circuittermination_delete' pk=termination.pk %}" class="btn btn-xs btn-danger">
|
<a href="{% url 'circuits:circuittermination_delete' pk=termination.pk %}?return_url={{ circuit.get_absolute_url }}" class="btn btn-xs btn-danger">
|
||||||
<span class="fa fa-trash" aria-hidden="true"></span> Delete
|
<span class="fa fa-trash" aria-hidden="true"></span> Delete
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -67,7 +67,7 @@
|
|||||||
<a href="{% url 'dcim:module_edit' pk=m.pk %}" class="btn btn-xs btn-warning"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></a>
|
<a href="{% url 'dcim:module_edit' pk=m.pk %}" class="btn btn-xs btn-warning"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if perms.dcim.delete_module %}
|
{% if perms.dcim.delete_module %}
|
||||||
<a href="{% url 'dcim:module_delete' pk=m.pk %}" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a>
|
<a href="{% url 'dcim:module_delete' pk=m.pk %}?return_url={% url 'dcim:device_inventory' pk=device.pk %}" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -80,10 +80,10 @@
|
|||||||
<td>{{ m2.serial }}</td>
|
<td>{{ m2.serial }}</td>
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
{% if perms.dcim.change_module %}
|
{% if perms.dcim.change_module %}
|
||||||
<a href="{% url 'dcim:module_edit' pk=m.pk %}" class="btn btn-xs btn-warning"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></a>
|
<a href="{% url 'dcim:module_edit' pk=m2.pk %}" class="btn btn-xs btn-warning"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if perms.dcim.delete_module %}
|
{% if perms.dcim.delete_module %}
|
||||||
<a href="{% url 'dcim:module_delete' pk=m.pk %}" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a>
|
<a href="{% url 'dcim:module_delete' pk=m2.pk %}?return_url={% url 'dcim:device_inventory' pk=device.pk %}" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -96,10 +96,10 @@
|
|||||||
<td>{{ m3.serial }}</td>
|
<td>{{ m3.serial }}</td>
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
{% if perms.dcim.change_module %}
|
{% if perms.dcim.change_module %}
|
||||||
<a href="{% url 'dcim:module_edit' pk=m.pk %}" class="btn btn-xs btn-warning"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></a>
|
<a href="{% url 'dcim:module_edit' pk=m3.pk %}" class="btn btn-xs btn-warning"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if perms.dcim.delete_module %}
|
{% if perms.dcim.delete_module %}
|
||||||
<a href="{% url 'dcim:module_delete' pk=m.pk %}" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a>
|
<a href="{% url 'dcim:module_delete' pk=m3.pk %}?return_url={% url 'dcim:device_inventory' pk=device.pk %}" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -112,10 +112,10 @@
|
|||||||
<td>{{ m4.serial }}</td>
|
<td>{{ m4.serial }}</td>
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
{% if perms.dcim.change_module %}
|
{% if perms.dcim.change_module %}
|
||||||
<a href="{% url 'dcim:module_edit' pk=m.pk %}" class="btn btn-xs btn-warning"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></a>
|
<a href="{% url 'dcim:module_edit' pk=m4.pk %}" class="btn btn-xs btn-warning"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if perms.dcim.delete_module %}
|
{% if perms.dcim.delete_module %}
|
||||||
<a href="{% url 'dcim:module_delete' pk=m.pk %}" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a>
|
<a href="{% url 'dcim:module_delete' pk=m4.pk %}?return_url={% url 'dcim:device_inventory' pk=device.pk %}" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
||||||
</button>
|
</button>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{% url 'dcim:consoleport_delete' pk=cp.pk %}" class="btn btn-danger btn-xs">
|
<a href="{% url 'dcim:consoleport_delete' pk=cp.pk %}?return_url={{ device.get_absolute_url }}" class="btn btn-danger btn-xs">
|
||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete port"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete port"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
||||||
</button>
|
</button>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{% url 'dcim:consoleserverport_delete' pk=csp.pk %}" class="btn btn-danger btn-xs">
|
<a href="{% url 'dcim:consoleserverport_delete' pk=csp.pk %}?return_url={{ device.get_absolute_url }}" class="btn btn-danger btn-xs">
|
||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete port"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete port"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
||||||
</button>
|
</button>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{% url 'dcim:devicebay_delete' pk=devicebay.pk %}" class="btn btn-danger btn-xs">
|
<a href="{% url 'dcim:devicebay_delete' pk=devicebay.pk %}?return_url={{ device.get_absolute_url }}" class="btn btn-danger btn-xs">
|
||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete device bay"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete device bay"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -85,7 +85,7 @@
|
|||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
||||||
</button>
|
</button>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{% url 'dcim:interface_delete' pk=iface.pk %}" class="btn btn-danger btn-xs" title="Delete interface">
|
<a href="{% url 'dcim:interface_delete' pk=iface.pk %}?return_url={{ device.get_absolute_url }}" class="btn btn-danger btn-xs" title="Delete interface">
|
||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
||||||
</button>
|
</button>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{% url 'dcim:poweroutlet_delete' pk=po.pk %}" class="btn btn-danger btn-xs">
|
<a href="{% url 'dcim:poweroutlet_delete' pk=po.pk %}?return_url={{ device.get_absolute_url }}" class="btn btn-danger btn-xs">
|
||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete outlet"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete outlet"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
||||||
</button>
|
</button>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{% url 'dcim:powerport_delete' pk=pp.pk %}" class="btn btn-danger btn-xs">
|
<a href="{% url 'dcim:powerport_delete' pk=pp.pk %}?return_url={{ device.get_absolute_url }}" class="btn btn-danger btn-xs">
|
||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete port"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete port"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if perms.ipam.delete_service %}
|
{% if perms.ipam.delete_service %}
|
||||||
<a href="{% url 'ipam:service_delete' pk=service.pk %}" class="btn btn-danger btn-xs">
|
<a href="{% url 'ipam:service_delete' pk=service.pk %}?return_url={{ device.get_absolute_url }}" class="btn btn-danger btn-xs">
|
||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete service"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete service"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -89,7 +89,7 @@ class TenantEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
class TenantDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class TenantDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
permission_required = 'tenancy.delete_tenant'
|
permission_required = 'tenancy.delete_tenant'
|
||||||
model = Tenant
|
model = Tenant
|
||||||
redirect_url = 'tenancy:tenant_list'
|
default_return_url = 'tenancy:tenant_list'
|
||||||
|
|
||||||
|
|
||||||
class TenantBulkImportView(PermissionRequiredMixin, BulkImportView):
|
class TenantBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||||
|
@ -216,11 +216,11 @@ class ObjectDeleteView(View):
|
|||||||
|
|
||||||
model: The model of the object being edited
|
model: The model of the object being edited
|
||||||
template_name: The name of the template
|
template_name: The name of the template
|
||||||
redirect_url: Name of the URL to which the user is redirected after deleting the object
|
default_return_url: Name of the URL to which the user is redirected after deleting the object
|
||||||
"""
|
"""
|
||||||
model = None
|
model = None
|
||||||
template_name = 'utilities/obj_delete.html'
|
template_name = 'utilities/obj_delete.html'
|
||||||
redirect_url = None
|
default_return_url = 'home'
|
||||||
|
|
||||||
def get_object(self, kwargs):
|
def get_object(self, kwargs):
|
||||||
# Look up object by slug if one has been provided. Otherwise, use PK.
|
# Look up object by slug if one has been provided. Otherwise, use PK.
|
||||||
@ -232,8 +232,6 @@ class ObjectDeleteView(View):
|
|||||||
def get_cancel_url(self, obj):
|
def get_cancel_url(self, obj):
|
||||||
if hasattr(obj, 'get_absolute_url'):
|
if hasattr(obj, 'get_absolute_url'):
|
||||||
return obj.get_absolute_url()
|
return obj.get_absolute_url()
|
||||||
if hasattr(obj, 'get_parent_url'):
|
|
||||||
return obj.get_parent_url()
|
|
||||||
return reverse('home')
|
return reverse('home')
|
||||||
|
|
||||||
def get(self, request, **kwargs):
|
def get(self, request, **kwargs):
|
||||||
@ -256,23 +254,22 @@ class ObjectDeleteView(View):
|
|||||||
obj = self.get_object(kwargs)
|
obj = self.get_object(kwargs)
|
||||||
form = ConfirmationForm(request.POST)
|
form = ConfirmationForm(request.POST)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
|
|
||||||
try:
|
try:
|
||||||
obj.delete()
|
obj.delete()
|
||||||
except ProtectedError as e:
|
except ProtectedError as e:
|
||||||
handle_protectederror(obj, request, e)
|
handle_protectederror(obj, request, e)
|
||||||
return redirect(obj.get_absolute_url())
|
return redirect(obj.get_absolute_url())
|
||||||
|
|
||||||
msg = u'Deleted {} {}'.format(self.model._meta.verbose_name, obj)
|
msg = u'Deleted {} {}'.format(self.model._meta.verbose_name, obj)
|
||||||
messages.success(request, msg)
|
messages.success(request, msg)
|
||||||
UserAction.objects.log_delete(request.user, obj, msg)
|
UserAction.objects.log_delete(request.user, obj, msg)
|
||||||
|
|
||||||
return_url = form.cleaned_data['return_url']
|
return_url = form.cleaned_data['return_url']
|
||||||
if return_url and is_safe_url(url=return_url, host=request.get_host()):
|
if return_url and is_safe_url(url=return_url, host=request.get_host()):
|
||||||
return redirect(return_url)
|
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())
|
|
||||||
else:
|
else:
|
||||||
return redirect('home')
|
return redirect(self.default_return_url)
|
||||||
|
|
||||||
return render(request, self.template_name, {
|
return render(request, self.template_name, {
|
||||||
'obj': obj,
|
'obj': obj,
|
||||||
|
Loading…
Reference in New Issue
Block a user