mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
#4624: Refactor ObjectDeleteView to use a queryset
This commit is contained in:
@ -74,7 +74,7 @@ class ProviderEditView(ProviderCreateView):
|
||||
|
||||
class ProviderDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'circuits.delete_provider'
|
||||
model = Provider
|
||||
queryset = Provider.objects.all()
|
||||
default_return_url = 'circuits:provider_list'
|
||||
|
||||
|
||||
@ -190,7 +190,7 @@ class CircuitEditView(CircuitCreateView):
|
||||
|
||||
class CircuitDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'circuits.delete_circuit'
|
||||
model = Circuit
|
||||
queryset = Circuit.objects.all()
|
||||
default_return_url = 'circuits:circuit_list'
|
||||
|
||||
|
||||
@ -292,4 +292,4 @@ class CircuitTerminationEditView(CircuitTerminationCreateView):
|
||||
|
||||
class CircuitTerminationDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'circuits.delete_circuittermination'
|
||||
model = CircuitTermination
|
||||
queryset = CircuitTermination.objects.all()
|
||||
|
@ -232,7 +232,7 @@ class SiteEditView(SiteCreateView):
|
||||
|
||||
class SiteDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_site'
|
||||
model = Site
|
||||
queryset = Site.objects.all()
|
||||
default_return_url = 'dcim:site_list'
|
||||
|
||||
|
||||
@ -438,7 +438,7 @@ class RackEditView(RackCreateView):
|
||||
|
||||
class RackDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_rack'
|
||||
model = Rack
|
||||
queryset = Rack.objects.all()
|
||||
default_return_url = 'dcim:rack_list'
|
||||
|
||||
|
||||
@ -512,7 +512,7 @@ class RackReservationEditView(RackReservationCreateView):
|
||||
|
||||
class RackReservationDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_rackreservation'
|
||||
model = RackReservation
|
||||
queryset = RackReservation.objects.all()
|
||||
default_return_url = 'dcim:rackreservation_list'
|
||||
|
||||
|
||||
@ -678,7 +678,7 @@ class DeviceTypeEditView(DeviceTypeCreateView):
|
||||
|
||||
class DeviceTypeDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_devicetype'
|
||||
model = DeviceType
|
||||
queryset = DeviceType.objects.all()
|
||||
default_return_url = 'dcim:devicetype_list'
|
||||
|
||||
|
||||
@ -746,7 +746,7 @@ class ConsolePortTemplateEditView(PermissionRequiredMixin, ObjectEditView):
|
||||
|
||||
class ConsolePortTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_consoleporttemplate'
|
||||
model = ConsolePortTemplate
|
||||
queryset = ConsolePortTemplate.objects.all()
|
||||
|
||||
|
||||
class ConsolePortTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||
@ -782,7 +782,7 @@ class ConsoleServerPortTemplateEditView(PermissionRequiredMixin, ObjectEditView)
|
||||
|
||||
class ConsoleServerPortTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_consoleserverporttemplate'
|
||||
model = ConsoleServerPortTemplate
|
||||
queryset = ConsoleServerPortTemplate.objects.all()
|
||||
|
||||
|
||||
class ConsoleServerPortTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||
@ -818,7 +818,7 @@ class PowerPortTemplateEditView(PermissionRequiredMixin, ObjectEditView):
|
||||
|
||||
class PowerPortTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_powerporttemplate'
|
||||
model = PowerPortTemplate
|
||||
queryset = PowerPortTemplate.objects.all()
|
||||
|
||||
|
||||
class PowerPortTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||
@ -854,7 +854,7 @@ class PowerOutletTemplateEditView(PermissionRequiredMixin, ObjectEditView):
|
||||
|
||||
class PowerOutletTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_poweroutlettemplate'
|
||||
model = PowerOutletTemplate
|
||||
queryset = PowerOutletTemplate.objects.all()
|
||||
|
||||
|
||||
class PowerOutletTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||
@ -890,7 +890,7 @@ class InterfaceTemplateEditView(PermissionRequiredMixin, ObjectEditView):
|
||||
|
||||
class InterfaceTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_interfacetemplate'
|
||||
model = InterfaceTemplate
|
||||
queryset = InterfaceTemplate.objects.all()
|
||||
|
||||
|
||||
class InterfaceTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||
@ -926,7 +926,7 @@ class FrontPortTemplateEditView(PermissionRequiredMixin, ObjectEditView):
|
||||
|
||||
class FrontPortTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_frontporttemplate'
|
||||
model = FrontPortTemplate
|
||||
queryset = FrontPortTemplate.objects.all()
|
||||
|
||||
|
||||
class FrontPortTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||
@ -962,7 +962,7 @@ class RearPortTemplateEditView(PermissionRequiredMixin, ObjectEditView):
|
||||
|
||||
class RearPortTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_rearporttemplate'
|
||||
model = RearPortTemplate
|
||||
queryset = RearPortTemplate.objects.all()
|
||||
|
||||
|
||||
class RearPortTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||
@ -998,7 +998,7 @@ class DeviceBayTemplateEditView(PermissionRequiredMixin, ObjectEditView):
|
||||
|
||||
class DeviceBayTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_devicebaytemplate'
|
||||
model = DeviceBayTemplate
|
||||
queryset = DeviceBayTemplate.objects.all()
|
||||
|
||||
|
||||
# class DeviceBayTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||
@ -1259,7 +1259,7 @@ class DeviceEditView(DeviceCreateView):
|
||||
|
||||
class DeviceDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_device'
|
||||
model = Device
|
||||
queryset = Device.objects.all()
|
||||
default_return_url = 'dcim:device_list'
|
||||
|
||||
|
||||
@ -1336,7 +1336,7 @@ class ConsolePortEditView(PermissionRequiredMixin, ObjectEditView):
|
||||
|
||||
class ConsolePortDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_consoleport'
|
||||
model = ConsolePort
|
||||
queryset = ConsolePort.objects.all()
|
||||
|
||||
|
||||
class ConsolePortBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||
@ -1391,7 +1391,7 @@ class ConsoleServerPortEditView(PermissionRequiredMixin, ObjectEditView):
|
||||
|
||||
class ConsoleServerPortDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_consoleserverport'
|
||||
model = ConsoleServerPort
|
||||
queryset = ConsoleServerPort.objects.all()
|
||||
|
||||
|
||||
class ConsoleServerPortBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||
@ -1458,7 +1458,7 @@ class PowerPortEditView(PermissionRequiredMixin, ObjectEditView):
|
||||
|
||||
class PowerPortDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_powerport'
|
||||
model = PowerPort
|
||||
queryset = PowerPort.objects.all()
|
||||
|
||||
|
||||
class PowerPortBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||
@ -1513,7 +1513,7 @@ class PowerOutletEditView(PermissionRequiredMixin, ObjectEditView):
|
||||
|
||||
class PowerOutletDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_poweroutlet'
|
||||
model = PowerOutlet
|
||||
queryset = PowerOutlet.objects.all()
|
||||
|
||||
|
||||
class PowerOutletBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||
@ -1617,7 +1617,7 @@ class InterfaceEditView(PermissionRequiredMixin, ObjectEditView):
|
||||
|
||||
class InterfaceDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_interface'
|
||||
model = Interface
|
||||
queryset = Interface.objects.all()
|
||||
|
||||
|
||||
class InterfaceBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||
@ -1684,7 +1684,7 @@ class FrontPortEditView(PermissionRequiredMixin, ObjectEditView):
|
||||
|
||||
class FrontPortDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_frontport'
|
||||
model = FrontPort
|
||||
queryset = FrontPort.objects.all()
|
||||
|
||||
|
||||
class FrontPortBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||
@ -1751,7 +1751,7 @@ class RearPortEditView(PermissionRequiredMixin, ObjectEditView):
|
||||
|
||||
class RearPortDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_rearport'
|
||||
model = RearPort
|
||||
queryset = RearPort.objects.all()
|
||||
|
||||
|
||||
class RearPortBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||
@ -1820,7 +1820,7 @@ class DeviceBayEditView(PermissionRequiredMixin, ObjectEditView):
|
||||
|
||||
class DeviceBayDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_devicebay'
|
||||
model = DeviceBay
|
||||
queryset = DeviceBay.objects.all()
|
||||
|
||||
|
||||
class DeviceBayPopulateView(PermissionRequiredMixin, View):
|
||||
@ -2162,7 +2162,7 @@ class CableEditView(PermissionRequiredMixin, ObjectEditView):
|
||||
|
||||
class CableDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_cable'
|
||||
model = Cable
|
||||
queryset = Cable.objects.all()
|
||||
default_return_url = 'dcim:cable_list'
|
||||
|
||||
|
||||
@ -2323,7 +2323,7 @@ class InventoryItemCreateView(PermissionRequiredMixin, ComponentCreateView):
|
||||
|
||||
class InventoryItemDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_inventoryitem'
|
||||
model = InventoryItem
|
||||
queryset = InventoryItem.objects.all()
|
||||
|
||||
|
||||
class InventoryItemBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||
@ -2496,7 +2496,7 @@ class VirtualChassisEditView(PermissionRequiredMixin, GetReturnURLMixin, View):
|
||||
|
||||
class VirtualChassisDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_virtualchassis'
|
||||
model = VirtualChassis
|
||||
queryset = VirtualChassis.objects.all()
|
||||
default_return_url = 'dcim:device_list'
|
||||
|
||||
|
||||
@ -2665,7 +2665,7 @@ class PowerPanelEditView(PowerPanelCreateView):
|
||||
|
||||
class PowerPanelDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_powerpanel'
|
||||
model = PowerPanel
|
||||
queryset = PowerPanel.objects.all()
|
||||
default_return_url = 'dcim:powerpanel_list'
|
||||
|
||||
|
||||
@ -2737,7 +2737,7 @@ class PowerFeedEditView(PowerFeedCreateView):
|
||||
|
||||
class PowerFeedDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_powerfeed'
|
||||
model = PowerFeed
|
||||
queryset = PowerFeed.objects.all()
|
||||
default_return_url = 'dcim:powerfeed_list'
|
||||
|
||||
|
||||
|
@ -75,7 +75,7 @@ class TagEditView(PermissionRequiredMixin, ObjectEditView):
|
||||
|
||||
class TagDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'extras.delete_tag'
|
||||
model = Tag
|
||||
queryset = Tag.objects.all()
|
||||
default_return_url = 'extras:tag_list'
|
||||
|
||||
|
||||
@ -157,7 +157,7 @@ class ConfigContextBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||
|
||||
class ConfigContextDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'extras.delete_configcontext'
|
||||
model = ConfigContext
|
||||
queryset = ConfigContext.objects.all()
|
||||
default_return_url = 'extras:configcontext_list'
|
||||
|
||||
|
||||
@ -322,7 +322,7 @@ class ImageAttachmentEditView(PermissionRequiredMixin, ObjectEditView):
|
||||
|
||||
class ImageAttachmentDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'extras.delete_imageattachment'
|
||||
model = ImageAttachment
|
||||
queryset = ImageAttachment.objects.all()
|
||||
|
||||
def get_return_url(self, request, imageattachment):
|
||||
return imageattachment.parent.get_absolute_url()
|
||||
|
@ -148,7 +148,7 @@ class VRFEditView(VRFCreateView):
|
||||
|
||||
class VRFDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'ipam.delete_vrf'
|
||||
model = VRF
|
||||
queryset = VRF.objects.all()
|
||||
default_return_url = 'ipam:vrf_list'
|
||||
|
||||
|
||||
@ -373,7 +373,7 @@ class AggregateEditView(AggregateCreateView):
|
||||
|
||||
class AggregateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'ipam.delete_aggregate'
|
||||
model = Aggregate
|
||||
queryset = Aggregate.objects.all()
|
||||
default_return_url = 'ipam:aggregate_list'
|
||||
|
||||
|
||||
@ -600,7 +600,7 @@ class PrefixEditView(PrefixCreateView):
|
||||
|
||||
class PrefixDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'ipam.delete_prefix'
|
||||
model = Prefix
|
||||
queryset = Prefix.objects.all()
|
||||
template_name = 'ipam/prefix_delete.html'
|
||||
default_return_url = 'ipam:prefix_list'
|
||||
|
||||
@ -766,7 +766,7 @@ class IPAddressAssignView(PermissionRequiredMixin, View):
|
||||
|
||||
class IPAddressDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'ipam.delete_ipaddress'
|
||||
model = IPAddress
|
||||
queryset = IPAddress.objects.all()
|
||||
default_return_url = 'ipam:ipaddress_list'
|
||||
|
||||
|
||||
@ -945,7 +945,7 @@ class VLANEditView(VLANCreateView):
|
||||
|
||||
class VLANDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'ipam.delete_vlan'
|
||||
model = VLAN
|
||||
queryset = VLAN.objects.all()
|
||||
default_return_url = 'ipam:vlan_list'
|
||||
|
||||
|
||||
@ -1028,7 +1028,7 @@ class ServiceEditView(ServiceCreateView):
|
||||
|
||||
class ServiceDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'ipam.delete_service'
|
||||
model = Service
|
||||
queryset = Service.objects.all()
|
||||
|
||||
|
||||
class ServiceBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||
|
@ -191,7 +191,7 @@ def secret_edit(request, pk):
|
||||
|
||||
class SecretDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'secrets.delete_secret'
|
||||
model = Secret
|
||||
queryset = Secret.objects.all()
|
||||
default_return_url = 'secrets:secret_list'
|
||||
|
||||
|
||||
|
@ -107,7 +107,7 @@ class TenantEditView(TenantCreateView):
|
||||
|
||||
class TenantDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'tenancy.delete_tenant'
|
||||
model = Tenant
|
||||
queryset = Tenant.objects.all()
|
||||
default_return_url = 'tenancy:tenant_list'
|
||||
|
||||
|
||||
|
@ -216,7 +216,7 @@ class ObjectEditView(GetReturnURLMixin, View):
|
||||
"""
|
||||
Create or edit a single object.
|
||||
|
||||
queryset: The base queryset for the model being modified
|
||||
queryset: The base queryset for the object being modified
|
||||
model_form: The form used to create or edit the object
|
||||
template_name: The name of the template
|
||||
"""
|
||||
@ -304,18 +304,18 @@ class ObjectDeleteView(GetReturnURLMixin, View):
|
||||
"""
|
||||
Delete a single object.
|
||||
|
||||
model: The model of the object being deleted
|
||||
queryset: The base queryset for the object being deleted
|
||||
template_name: The name of the template
|
||||
"""
|
||||
model = None
|
||||
queryset = None
|
||||
template_name = 'utilities/obj_delete.html'
|
||||
|
||||
def get_object(self, kwargs):
|
||||
# Look up object by slug if one has been provided. Otherwise, use PK.
|
||||
if 'slug' in kwargs:
|
||||
return get_object_or_404(self.model, slug=kwargs['slug'])
|
||||
return get_object_or_404(self.queryset, slug=kwargs['slug'])
|
||||
else:
|
||||
return get_object_or_404(self.model, pk=kwargs['pk'])
|
||||
return get_object_or_404(self.queryset, pk=kwargs['pk'])
|
||||
|
||||
def get(self, request, **kwargs):
|
||||
obj = self.get_object(kwargs)
|
||||
@ -324,7 +324,7 @@ class ObjectDeleteView(GetReturnURLMixin, View):
|
||||
return render(request, self.template_name, {
|
||||
'obj': obj,
|
||||
'form': form,
|
||||
'obj_type': self.model._meta.verbose_name,
|
||||
'obj_type': self.queryset.model._meta.verbose_name,
|
||||
'return_url': self.get_return_url(request, obj),
|
||||
})
|
||||
|
||||
@ -343,7 +343,7 @@ class ObjectDeleteView(GetReturnURLMixin, View):
|
||||
handle_protectederror(obj, request, e)
|
||||
return redirect(obj.get_absolute_url())
|
||||
|
||||
msg = 'Deleted {} {}'.format(self.model._meta.verbose_name, obj)
|
||||
msg = 'Deleted {} {}'.format(self.queryset.model._meta.verbose_name, obj)
|
||||
logger.info(msg)
|
||||
messages.success(request, msg)
|
||||
|
||||
@ -359,7 +359,7 @@ class ObjectDeleteView(GetReturnURLMixin, View):
|
||||
return render(request, self.template_name, {
|
||||
'obj': obj,
|
||||
'form': form,
|
||||
'obj_type': self.model._meta.verbose_name,
|
||||
'obj_type': self.queryset.model._meta.verbose_name,
|
||||
'return_url': self.get_return_url(request, obj),
|
||||
})
|
||||
|
||||
|
@ -132,7 +132,7 @@ class ClusterEditView(ClusterCreateView):
|
||||
|
||||
class ClusterDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'virtualization.delete_cluster'
|
||||
model = Cluster
|
||||
queryset = Cluster.objects.all()
|
||||
default_return_url = 'virtualization:cluster_list'
|
||||
|
||||
|
||||
@ -293,7 +293,7 @@ class VirtualMachineEditView(VirtualMachineCreateView):
|
||||
|
||||
class VirtualMachineDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'virtualization.delete_virtualmachine'
|
||||
model = VirtualMachine
|
||||
queryset = VirtualMachine.objects.all()
|
||||
default_return_url = 'virtualization:virtualmachine_list'
|
||||
|
||||
|
||||
@ -342,7 +342,7 @@ class InterfaceEditView(PermissionRequiredMixin, ObjectEditView):
|
||||
|
||||
class InterfaceDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||
permission_required = 'dcim.delete_interface'
|
||||
model = Interface
|
||||
queryset = Interface.objects.all()
|
||||
|
||||
|
||||
class InterfaceBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||
|
Reference in New Issue
Block a user