mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Extend GetReturnURLMixin to automatically resolve default return URL for querysets
This commit is contained in:
@ -60,19 +60,16 @@ class ProviderEditView(ObjectEditView):
|
||||
queryset = Provider.objects.all()
|
||||
model_form = forms.ProviderForm
|
||||
template_name = 'circuits/provider_edit.html'
|
||||
default_return_url = 'circuits:provider_list'
|
||||
|
||||
|
||||
class ProviderDeleteView(ObjectDeleteView):
|
||||
queryset = Provider.objects.all()
|
||||
default_return_url = 'circuits:provider_list'
|
||||
|
||||
|
||||
class ProviderBulkImportView(BulkImportView):
|
||||
queryset = Provider.objects.all()
|
||||
model_form = forms.ProviderCSVForm
|
||||
table = tables.ProviderTable
|
||||
default_return_url = 'circuits:provider_list'
|
||||
|
||||
|
||||
class ProviderBulkEditView(BulkEditView):
|
||||
@ -80,14 +77,12 @@ class ProviderBulkEditView(BulkEditView):
|
||||
filterset = filters.ProviderFilterSet
|
||||
table = tables.ProviderTable
|
||||
form = forms.ProviderBulkEditForm
|
||||
default_return_url = 'circuits:provider_list'
|
||||
|
||||
|
||||
class ProviderBulkDeleteView(BulkDeleteView):
|
||||
queryset = Provider.objects.annotate(count_circuits=Count('circuits'))
|
||||
filterset = filters.ProviderFilterSet
|
||||
table = tables.ProviderTable
|
||||
default_return_url = 'circuits:provider_list'
|
||||
|
||||
|
||||
#
|
||||
@ -102,20 +97,17 @@ class CircuitTypeListView(ObjectListView):
|
||||
class CircuitTypeEditView(ObjectEditView):
|
||||
queryset = CircuitType.objects.all()
|
||||
model_form = forms.CircuitTypeForm
|
||||
default_return_url = 'circuits:circuittype_list'
|
||||
|
||||
|
||||
class CircuitTypeBulkImportView(BulkImportView):
|
||||
queryset = CircuitType.objects.all()
|
||||
model_form = forms.CircuitTypeCSVForm
|
||||
table = tables.CircuitTypeTable
|
||||
default_return_url = 'circuits:circuittype_list'
|
||||
|
||||
|
||||
class CircuitTypeBulkDeleteView(BulkDeleteView):
|
||||
queryset = CircuitType.objects.annotate(circuit_count=Count('circuits'))
|
||||
table = tables.CircuitTypeTable
|
||||
default_return_url = 'circuits:circuittype_list'
|
||||
|
||||
|
||||
#
|
||||
@ -165,19 +157,16 @@ class CircuitEditView(ObjectEditView):
|
||||
queryset = Circuit.objects.all()
|
||||
model_form = forms.CircuitForm
|
||||
template_name = 'circuits/circuit_edit.html'
|
||||
default_return_url = 'circuits:circuit_list'
|
||||
|
||||
|
||||
class CircuitDeleteView(ObjectDeleteView):
|
||||
queryset = Circuit.objects.all()
|
||||
default_return_url = 'circuits:circuit_list'
|
||||
|
||||
|
||||
class CircuitBulkImportView(BulkImportView):
|
||||
queryset = Circuit.objects.all()
|
||||
model_form = forms.CircuitCSVForm
|
||||
table = tables.CircuitTable
|
||||
default_return_url = 'circuits:circuit_list'
|
||||
|
||||
|
||||
class CircuitBulkEditView(BulkEditView):
|
||||
@ -185,14 +174,12 @@ class CircuitBulkEditView(BulkEditView):
|
||||
filterset = filters.CircuitFilterSet
|
||||
table = tables.CircuitTable
|
||||
form = forms.CircuitBulkEditForm
|
||||
default_return_url = 'circuits:circuit_list'
|
||||
|
||||
|
||||
class CircuitBulkDeleteView(BulkDeleteView):
|
||||
queryset = Circuit.objects.prefetch_related('provider', 'type', 'tenant').prefetch_related('terminations__site')
|
||||
filterset = filters.CircuitFilterSet
|
||||
table = tables.CircuitTable
|
||||
default_return_url = 'circuits:circuit_list'
|
||||
|
||||
|
||||
class CircuitSwapTerminations(ObjectEditView):
|
||||
|
@ -120,21 +120,18 @@ class RegionListView(ObjectListView):
|
||||
class RegionEditView(ObjectEditView):
|
||||
queryset = Region.objects.all()
|
||||
model_form = forms.RegionForm
|
||||
default_return_url = 'dcim:region_list'
|
||||
|
||||
|
||||
class RegionBulkImportView(BulkImportView):
|
||||
queryset = Region.objects.all()
|
||||
model_form = forms.RegionCSVForm
|
||||
table = tables.RegionTable
|
||||
default_return_url = 'dcim:region_list'
|
||||
|
||||
|
||||
class RegionBulkDeleteView(BulkDeleteView):
|
||||
queryset = Region.objects.all()
|
||||
filterset = filters.RegionFilterSet
|
||||
table = tables.RegionTable
|
||||
default_return_url = 'dcim:region_list'
|
||||
|
||||
|
||||
#
|
||||
@ -179,19 +176,16 @@ class SiteEditView(ObjectEditView):
|
||||
queryset = Site.objects.all()
|
||||
model_form = forms.SiteForm
|
||||
template_name = 'dcim/site_edit.html'
|
||||
default_return_url = 'dcim:site_list'
|
||||
|
||||
|
||||
class SiteDeleteView(ObjectDeleteView):
|
||||
queryset = Site.objects.all()
|
||||
default_return_url = 'dcim:site_list'
|
||||
|
||||
|
||||
class SiteBulkImportView(BulkImportView):
|
||||
queryset = Site.objects.all()
|
||||
model_form = forms.SiteCSVForm
|
||||
table = tables.SiteTable
|
||||
default_return_url = 'dcim:site_list'
|
||||
|
||||
|
||||
class SiteBulkEditView(BulkEditView):
|
||||
@ -199,14 +193,12 @@ class SiteBulkEditView(BulkEditView):
|
||||
filterset = filters.SiteFilterSet
|
||||
table = tables.SiteTable
|
||||
form = forms.SiteBulkEditForm
|
||||
default_return_url = 'dcim:site_list'
|
||||
|
||||
|
||||
class SiteBulkDeleteView(BulkDeleteView):
|
||||
queryset = Site.objects.prefetch_related('region', 'tenant')
|
||||
filterset = filters.SiteFilterSet
|
||||
table = tables.SiteTable
|
||||
default_return_url = 'dcim:site_list'
|
||||
|
||||
|
||||
#
|
||||
@ -229,21 +221,18 @@ class RackGroupListView(ObjectListView):
|
||||
class RackGroupEditView(ObjectEditView):
|
||||
queryset = RackGroup.objects.all()
|
||||
model_form = forms.RackGroupForm
|
||||
default_return_url = 'dcim:rackgroup_list'
|
||||
|
||||
|
||||
class RackGroupBulkImportView(BulkImportView):
|
||||
queryset = RackGroup.objects.all()
|
||||
model_form = forms.RackGroupCSVForm
|
||||
table = tables.RackGroupTable
|
||||
default_return_url = 'dcim:rackgroup_list'
|
||||
|
||||
|
||||
class RackGroupBulkDeleteView(BulkDeleteView):
|
||||
queryset = RackGroup.objects.prefetch_related('site').annotate(rack_count=Count('racks'))
|
||||
filterset = filters.RackGroupFilterSet
|
||||
table = tables.RackGroupTable
|
||||
default_return_url = 'dcim:rackgroup_list'
|
||||
|
||||
|
||||
#
|
||||
@ -258,20 +247,17 @@ class RackRoleListView(ObjectListView):
|
||||
class RackRoleEditView(ObjectEditView):
|
||||
queryset = RackRole.objects.all()
|
||||
model_form = forms.RackRoleForm
|
||||
default_return_url = 'dcim:rackrole_list'
|
||||
|
||||
|
||||
class RackRoleBulkImportView(BulkImportView):
|
||||
queryset = RackRole.objects.all()
|
||||
model_form = forms.RackRoleCSVForm
|
||||
table = tables.RackRoleTable
|
||||
default_return_url = 'dcim:rackrole_list'
|
||||
|
||||
|
||||
class RackRoleBulkDeleteView(BulkDeleteView):
|
||||
queryset = RackRole.objects.annotate(rack_count=Count('racks'))
|
||||
table = tables.RackRoleTable
|
||||
default_return_url = 'dcim:rackrole_list'
|
||||
|
||||
|
||||
#
|
||||
@ -363,19 +349,16 @@ class RackEditView(ObjectEditView):
|
||||
queryset = Rack.objects.all()
|
||||
model_form = forms.RackForm
|
||||
template_name = 'dcim/rack_edit.html'
|
||||
default_return_url = 'dcim:rack_list'
|
||||
|
||||
|
||||
class RackDeleteView(ObjectDeleteView):
|
||||
queryset = Rack.objects.all()
|
||||
default_return_url = 'dcim:rack_list'
|
||||
|
||||
|
||||
class RackBulkImportView(BulkImportView):
|
||||
queryset = Rack.objects.all()
|
||||
model_form = forms.RackCSVForm
|
||||
table = tables.RackTable
|
||||
default_return_url = 'dcim:rack_list'
|
||||
|
||||
|
||||
class RackBulkEditView(BulkEditView):
|
||||
@ -383,14 +366,12 @@ class RackBulkEditView(BulkEditView):
|
||||
filterset = filters.RackFilterSet
|
||||
table = tables.RackTable
|
||||
form = forms.RackBulkEditForm
|
||||
default_return_url = 'dcim:rack_list'
|
||||
|
||||
|
||||
class RackBulkDeleteView(BulkDeleteView):
|
||||
queryset = Rack.objects.prefetch_related('site', 'group', 'tenant', 'role')
|
||||
filterset = filters.RackFilterSet
|
||||
table = tables.RackTable
|
||||
default_return_url = 'dcim:rack_list'
|
||||
|
||||
|
||||
#
|
||||
@ -421,7 +402,6 @@ class RackReservationEditView(ObjectEditView):
|
||||
queryset = RackReservation.objects.all()
|
||||
model_form = forms.RackReservationForm
|
||||
template_name = 'dcim/rackreservation_edit.html'
|
||||
default_return_url = 'dcim:rackreservation_list'
|
||||
|
||||
def alter_obj(self, obj, request, args, kwargs):
|
||||
if not obj.pk:
|
||||
@ -433,14 +413,12 @@ class RackReservationEditView(ObjectEditView):
|
||||
|
||||
class RackReservationDeleteView(ObjectDeleteView):
|
||||
queryset = RackReservation.objects.all()
|
||||
default_return_url = 'dcim:rackreservation_list'
|
||||
|
||||
|
||||
class RackReservationImportView(BulkImportView):
|
||||
queryset = RackReservation.objects.all()
|
||||
model_form = forms.RackReservationCSVForm
|
||||
table = tables.RackReservationTable
|
||||
default_return_url = 'dcim:rackreservation_list'
|
||||
|
||||
def _save_obj(self, obj_form, request):
|
||||
"""
|
||||
@ -458,14 +436,12 @@ class RackReservationBulkEditView(BulkEditView):
|
||||
filterset = filters.RackReservationFilterSet
|
||||
table = tables.RackReservationTable
|
||||
form = forms.RackReservationBulkEditForm
|
||||
default_return_url = 'dcim:rackreservation_list'
|
||||
|
||||
|
||||
class RackReservationBulkDeleteView(BulkDeleteView):
|
||||
queryset = RackReservation.objects.prefetch_related('rack', 'user')
|
||||
filterset = filters.RackReservationFilterSet
|
||||
table = tables.RackReservationTable
|
||||
default_return_url = 'dcim:rackreservation_list'
|
||||
|
||||
|
||||
#
|
||||
@ -484,20 +460,17 @@ class ManufacturerListView(ObjectListView):
|
||||
class ManufacturerEditView(ObjectEditView):
|
||||
queryset = Manufacturer.objects.all()
|
||||
model_form = forms.ManufacturerForm
|
||||
default_return_url = 'dcim:manufacturer_list'
|
||||
|
||||
|
||||
class ManufacturerBulkImportView(BulkImportView):
|
||||
queryset = Manufacturer.objects.all()
|
||||
model_form = forms.ManufacturerCSVForm
|
||||
table = tables.ManufacturerTable
|
||||
default_return_url = 'dcim:manufacturer_list'
|
||||
|
||||
|
||||
class ManufacturerBulkDeleteView(BulkDeleteView):
|
||||
queryset = Manufacturer.objects.annotate(devicetype_count=Count('device_types'))
|
||||
table = tables.ManufacturerTable
|
||||
default_return_url = 'dcim:manufacturer_list'
|
||||
|
||||
|
||||
#
|
||||
@ -580,12 +553,10 @@ class DeviceTypeEditView(ObjectEditView):
|
||||
queryset = DeviceType.objects.all()
|
||||
model_form = forms.DeviceTypeForm
|
||||
template_name = 'dcim/devicetype_edit.html'
|
||||
default_return_url = 'dcim:devicetype_list'
|
||||
|
||||
|
||||
class DeviceTypeDeleteView(ObjectDeleteView):
|
||||
queryset = DeviceType.objects.all()
|
||||
default_return_url = 'dcim:devicetype_list'
|
||||
|
||||
|
||||
class DeviceTypeImportView(ObjectImportView):
|
||||
@ -612,7 +583,6 @@ class DeviceTypeImportView(ObjectImportView):
|
||||
('front-ports', forms.FrontPortTemplateImportForm),
|
||||
('device-bays', forms.DeviceBayTemplateImportForm),
|
||||
))
|
||||
default_return_url = 'dcim:devicetype_import'
|
||||
|
||||
|
||||
class DeviceTypeBulkEditView(BulkEditView):
|
||||
@ -620,14 +590,12 @@ class DeviceTypeBulkEditView(BulkEditView):
|
||||
filterset = filters.DeviceTypeFilterSet
|
||||
table = tables.DeviceTypeTable
|
||||
form = forms.DeviceTypeBulkEditForm
|
||||
default_return_url = 'dcim:devicetype_list'
|
||||
|
||||
|
||||
class DeviceTypeBulkDeleteView(BulkDeleteView):
|
||||
queryset = DeviceType.objects.prefetch_related('manufacturer').annotate(instance_count=Count('instances'))
|
||||
filterset = filters.DeviceTypeFilterSet
|
||||
table = tables.DeviceTypeTable
|
||||
default_return_url = 'dcim:devicetype_list'
|
||||
|
||||
|
||||
#
|
||||
@ -890,20 +858,17 @@ class DeviceRoleListView(ObjectListView):
|
||||
class DeviceRoleEditView(ObjectEditView):
|
||||
queryset = DeviceRole.objects.all()
|
||||
model_form = forms.DeviceRoleForm
|
||||
default_return_url = 'dcim:devicerole_list'
|
||||
|
||||
|
||||
class DeviceRoleBulkImportView(BulkImportView):
|
||||
queryset = DeviceRole.objects.all()
|
||||
model_form = forms.DeviceRoleCSVForm
|
||||
table = tables.DeviceRoleTable
|
||||
default_return_url = 'dcim:devicerole_list'
|
||||
|
||||
|
||||
class DeviceRoleBulkDeleteView(BulkDeleteView):
|
||||
queryset = DeviceRole.objects.all()
|
||||
table = tables.DeviceRoleTable
|
||||
default_return_url = 'dcim:devicerole_list'
|
||||
|
||||
|
||||
#
|
||||
@ -918,20 +883,17 @@ class PlatformListView(ObjectListView):
|
||||
class PlatformEditView(ObjectEditView):
|
||||
queryset = Platform.objects.all()
|
||||
model_form = forms.PlatformForm
|
||||
default_return_url = 'dcim:platform_list'
|
||||
|
||||
|
||||
class PlatformBulkImportView(BulkImportView):
|
||||
queryset = Platform.objects.all()
|
||||
model_form = forms.PlatformCSVForm
|
||||
table = tables.PlatformTable
|
||||
default_return_url = 'dcim:platform_list'
|
||||
|
||||
|
||||
class PlatformBulkDeleteView(BulkDeleteView):
|
||||
queryset = Platform.objects.all()
|
||||
table = tables.PlatformTable
|
||||
default_return_url = 'dcim:platform_list'
|
||||
|
||||
|
||||
#
|
||||
@ -1118,12 +1080,10 @@ class DeviceEditView(ObjectEditView):
|
||||
queryset = Device.objects.all()
|
||||
model_form = forms.DeviceForm
|
||||
template_name = 'dcim/device_edit.html'
|
||||
default_return_url = 'dcim:device_list'
|
||||
|
||||
|
||||
class DeviceDeleteView(ObjectDeleteView):
|
||||
queryset = Device.objects.all()
|
||||
default_return_url = 'dcim:device_list'
|
||||
|
||||
|
||||
class DeviceBulkImportView(BulkImportView):
|
||||
@ -1131,7 +1091,6 @@ class DeviceBulkImportView(BulkImportView):
|
||||
model_form = forms.DeviceCSVForm
|
||||
table = tables.DeviceImportTable
|
||||
template_name = 'dcim/device_import.html'
|
||||
default_return_url = 'dcim:device_list'
|
||||
|
||||
|
||||
class ChildDeviceBulkImportView(BulkImportView):
|
||||
@ -1139,7 +1098,6 @@ class ChildDeviceBulkImportView(BulkImportView):
|
||||
model_form = forms.ChildDeviceCSVForm
|
||||
table = tables.DeviceImportTable
|
||||
template_name = 'dcim/device_import_child.html'
|
||||
default_return_url = 'dcim:device_list'
|
||||
|
||||
def _save_obj(self, obj_form, request):
|
||||
|
||||
@ -1158,14 +1116,12 @@ class DeviceBulkEditView(BulkEditView):
|
||||
filterset = filters.DeviceFilterSet
|
||||
table = tables.DeviceTable
|
||||
form = forms.DeviceBulkEditForm
|
||||
default_return_url = 'dcim:device_list'
|
||||
|
||||
|
||||
class DeviceBulkDeleteView(BulkDeleteView):
|
||||
queryset = Device.objects.prefetch_related('tenant', 'site', 'rack', 'device_role', 'device_type__manufacturer')
|
||||
filterset = filters.DeviceFilterSet
|
||||
table = tables.DeviceTable
|
||||
default_return_url = 'dcim:device_list'
|
||||
|
||||
|
||||
#
|
||||
@ -1204,7 +1160,6 @@ class ConsolePortBulkImportView(BulkImportView):
|
||||
queryset = ConsolePort.objects.all()
|
||||
model_form = forms.ConsolePortCSVForm
|
||||
table = tables.ConsolePortTable
|
||||
default_return_url = 'dcim:consoleport_list'
|
||||
|
||||
|
||||
class ConsolePortBulkEditView(BulkEditView):
|
||||
@ -1226,7 +1181,6 @@ class ConsolePortBulkDeleteView(BulkDeleteView):
|
||||
queryset = ConsolePort.objects.all()
|
||||
filterset = filters.ConsolePortFilterSet
|
||||
table = tables.ConsolePortTable
|
||||
default_return_url = 'dcim:consoleport_list'
|
||||
|
||||
|
||||
#
|
||||
@ -1265,7 +1219,6 @@ class ConsoleServerPortBulkImportView(BulkImportView):
|
||||
queryset = ConsoleServerPort.objects.all()
|
||||
model_form = forms.ConsoleServerPortCSVForm
|
||||
table = tables.ConsoleServerPortTable
|
||||
default_return_url = 'dcim:consoleserverport_list'
|
||||
|
||||
|
||||
class ConsoleServerPortBulkEditView(BulkEditView):
|
||||
@ -1287,7 +1240,6 @@ class ConsoleServerPortBulkDeleteView(BulkDeleteView):
|
||||
queryset = ConsoleServerPort.objects.all()
|
||||
filterset = filters.ConsoleServerPortFilterSet
|
||||
table = tables.ConsoleServerPortTable
|
||||
default_return_url = 'dcim:consoleserverport_list'
|
||||
|
||||
|
||||
#
|
||||
@ -1326,7 +1278,6 @@ class PowerPortBulkImportView(BulkImportView):
|
||||
queryset = PowerPort.objects.all()
|
||||
model_form = forms.PowerPortCSVForm
|
||||
table = tables.PowerPortTable
|
||||
default_return_url = 'dcim:powerport_list'
|
||||
|
||||
|
||||
class PowerPortBulkEditView(BulkEditView):
|
||||
@ -1348,7 +1299,6 @@ class PowerPortBulkDeleteView(BulkDeleteView):
|
||||
queryset = PowerPort.objects.all()
|
||||
filterset = filters.PowerPortFilterSet
|
||||
table = tables.PowerPortTable
|
||||
default_return_url = 'dcim:powerport_list'
|
||||
|
||||
|
||||
#
|
||||
@ -1387,7 +1337,6 @@ class PowerOutletBulkImportView(BulkImportView):
|
||||
queryset = PowerOutlet.objects.all()
|
||||
model_form = forms.PowerOutletCSVForm
|
||||
table = tables.PowerOutletTable
|
||||
default_return_url = 'dcim:poweroutlet_list'
|
||||
|
||||
|
||||
class PowerOutletBulkEditView(BulkEditView):
|
||||
@ -1409,7 +1358,6 @@ class PowerOutletBulkDeleteView(BulkDeleteView):
|
||||
queryset = PowerOutlet.objects.all()
|
||||
filterset = filters.PowerOutletFilterSet
|
||||
table = tables.PowerOutletTable
|
||||
default_return_url = 'dcim:poweroutlet_list'
|
||||
|
||||
|
||||
#
|
||||
@ -1481,7 +1429,6 @@ class InterfaceBulkImportView(BulkImportView):
|
||||
queryset = Interface.objects.all()
|
||||
model_form = forms.InterfaceCSVForm
|
||||
table = tables.InterfaceTable
|
||||
default_return_url = 'dcim:interface_list'
|
||||
|
||||
|
||||
class InterfaceBulkEditView(BulkEditView):
|
||||
@ -1503,7 +1450,6 @@ class InterfaceBulkDeleteView(BulkDeleteView):
|
||||
queryset = Interface.objects.all()
|
||||
filterset = filters.InterfaceFilterSet
|
||||
table = tables.InterfaceTable
|
||||
default_return_url = 'dcim:interface_list'
|
||||
|
||||
|
||||
#
|
||||
@ -1542,7 +1488,6 @@ class FrontPortBulkImportView(BulkImportView):
|
||||
queryset = FrontPort.objects.all()
|
||||
model_form = forms.FrontPortCSVForm
|
||||
table = tables.FrontPortTable
|
||||
default_return_url = 'dcim:frontport_list'
|
||||
|
||||
|
||||
class FrontPortBulkEditView(BulkEditView):
|
||||
@ -1564,7 +1509,6 @@ class FrontPortBulkDeleteView(BulkDeleteView):
|
||||
queryset = FrontPort.objects.all()
|
||||
filterset = filters.FrontPortFilterSet
|
||||
table = tables.FrontPortTable
|
||||
default_return_url = 'dcim:frontport_list'
|
||||
|
||||
|
||||
#
|
||||
@ -1603,7 +1547,6 @@ class RearPortBulkImportView(BulkImportView):
|
||||
queryset = RearPort.objects.all()
|
||||
model_form = forms.RearPortCSVForm
|
||||
table = tables.RearPortTable
|
||||
default_return_url = 'dcim:rearport_list'
|
||||
|
||||
|
||||
class RearPortBulkEditView(BulkEditView):
|
||||
@ -1625,7 +1568,6 @@ class RearPortBulkDeleteView(BulkDeleteView):
|
||||
queryset = RearPort.objects.all()
|
||||
filterset = filters.RearPortFilterSet
|
||||
table = tables.RearPortTable
|
||||
default_return_url = 'dcim:rearport_list'
|
||||
|
||||
|
||||
#
|
||||
@ -1731,7 +1673,6 @@ class DeviceBayBulkImportView(BulkImportView):
|
||||
queryset = DeviceBay.objects.all()
|
||||
model_form = forms.DeviceBayCSVForm
|
||||
table = tables.DeviceBayTable
|
||||
default_return_url = 'dcim:devicebay_list'
|
||||
|
||||
|
||||
class DeviceBayBulkEditView(BulkEditView):
|
||||
@ -1749,7 +1690,6 @@ class DeviceBayBulkDeleteView(BulkDeleteView):
|
||||
queryset = DeviceBay.objects.all()
|
||||
filterset = filters.DeviceBayFilterSet
|
||||
table = tables.DeviceBayTable
|
||||
default_return_url = 'dcim:devicebay_list'
|
||||
|
||||
|
||||
#
|
||||
@ -1901,7 +1841,6 @@ class CableTraceView(ObjectView):
|
||||
class CableCreateView(ObjectEditView):
|
||||
queryset = Cable.objects.all()
|
||||
template_name = 'dcim/cable_connect.html'
|
||||
default_return_url = 'dcim:cable_list'
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
|
||||
@ -1959,19 +1898,16 @@ class CableEditView(ObjectEditView):
|
||||
queryset = Cable.objects.all()
|
||||
model_form = forms.CableForm
|
||||
template_name = 'dcim/cable_edit.html'
|
||||
default_return_url = 'dcim:cable_list'
|
||||
|
||||
|
||||
class CableDeleteView(ObjectDeleteView):
|
||||
queryset = Cable.objects.all()
|
||||
default_return_url = 'dcim:cable_list'
|
||||
|
||||
|
||||
class CableBulkImportView(BulkImportView):
|
||||
queryset = Cable.objects.all()
|
||||
model_form = forms.CableCSVForm
|
||||
table = tables.CableTable
|
||||
default_return_url = 'dcim:cable_list'
|
||||
|
||||
|
||||
class CableBulkEditView(BulkEditView):
|
||||
@ -1979,14 +1915,12 @@ class CableBulkEditView(BulkEditView):
|
||||
filterset = filters.CableFilterSet
|
||||
table = tables.CableTable
|
||||
form = forms.CableBulkEditForm
|
||||
default_return_url = 'dcim:cable_list'
|
||||
|
||||
|
||||
class CableBulkDeleteView(BulkDeleteView):
|
||||
queryset = Cable.objects.prefetch_related('termination_a', 'termination_b')
|
||||
filterset = filters.CableFilterSet
|
||||
table = tables.CableTable
|
||||
default_return_url = 'dcim:cable_list'
|
||||
|
||||
|
||||
#
|
||||
@ -2122,7 +2056,6 @@ class InventoryItemBulkImportView(BulkImportView):
|
||||
queryset = InventoryItem.objects.all()
|
||||
model_form = forms.InventoryItemCSVForm
|
||||
table = tables.InventoryItemTable
|
||||
default_return_url = 'dcim:inventoryitem_list'
|
||||
|
||||
|
||||
class InventoryItemBulkEditView(BulkEditView):
|
||||
@ -2130,14 +2063,12 @@ class InventoryItemBulkEditView(BulkEditView):
|
||||
filterset = filters.InventoryItemFilterSet
|
||||
table = tables.InventoryItemTable
|
||||
form = forms.InventoryItemBulkEditForm
|
||||
default_return_url = 'dcim:inventoryitem_list'
|
||||
|
||||
|
||||
class InventoryItemBulkDeleteView(BulkDeleteView):
|
||||
queryset = InventoryItem.objects.prefetch_related('device', 'manufacturer')
|
||||
table = tables.InventoryItemTable
|
||||
template_name = 'dcim/inventoryitem_bulk_delete.html'
|
||||
default_return_url = 'dcim:inventoryitem_list'
|
||||
|
||||
|
||||
#
|
||||
@ -2169,7 +2100,6 @@ class VirtualChassisCreateView(ObjectEditView):
|
||||
queryset = VirtualChassis.objects.all()
|
||||
model_form = forms.VirtualChassisCreateForm
|
||||
template_name = 'dcim/virtualchassis_add.html'
|
||||
default_return_url = 'dcim:virtualchassis_list'
|
||||
|
||||
|
||||
class VirtualChassisEditView(ObjectPermissionRequiredMixin, GetReturnURLMixin, View):
|
||||
@ -2242,7 +2172,6 @@ class VirtualChassisEditView(ObjectPermissionRequiredMixin, GetReturnURLMixin, V
|
||||
|
||||
class VirtualChassisDeleteView(ObjectDeleteView):
|
||||
queryset = VirtualChassis.objects.all()
|
||||
default_return_url = 'dcim:device_list'
|
||||
|
||||
|
||||
class VirtualChassisAddMemberView(ObjectPermissionRequiredMixin, GetReturnURLMixin, View):
|
||||
@ -2356,7 +2285,6 @@ class VirtualChassisBulkImportView(BulkImportView):
|
||||
queryset = VirtualChassis.objects.all()
|
||||
model_form = forms.VirtualChassisCSVForm
|
||||
table = tables.VirtualChassisTable
|
||||
default_return_url = 'dcim:virtualchassis_list'
|
||||
|
||||
|
||||
class VirtualChassisBulkEditView(BulkEditView):
|
||||
@ -2364,14 +2292,12 @@ class VirtualChassisBulkEditView(BulkEditView):
|
||||
filterset = filters.VirtualChassisFilterSet
|
||||
table = tables.VirtualChassisTable
|
||||
form = forms.VirtualChassisBulkEditForm
|
||||
default_return_url = 'dcim:virtualchassis_list'
|
||||
|
||||
|
||||
class VirtualChassisBulkDeleteView(BulkDeleteView):
|
||||
queryset = VirtualChassis.objects.all()
|
||||
filterset = filters.VirtualChassisFilterSet
|
||||
table = tables.VirtualChassisTable
|
||||
default_return_url = 'dcim:virtualchassis_list'
|
||||
|
||||
|
||||
#
|
||||
@ -2411,19 +2337,16 @@ class PowerPanelView(ObjectView):
|
||||
class PowerPanelEditView(ObjectEditView):
|
||||
queryset = PowerPanel.objects.all()
|
||||
model_form = forms.PowerPanelForm
|
||||
default_return_url = 'dcim:powerpanel_list'
|
||||
|
||||
|
||||
class PowerPanelDeleteView(ObjectDeleteView):
|
||||
queryset = PowerPanel.objects.all()
|
||||
default_return_url = 'dcim:powerpanel_list'
|
||||
|
||||
|
||||
class PowerPanelBulkImportView(BulkImportView):
|
||||
queryset = PowerPanel.objects.all()
|
||||
model_form = forms.PowerPanelCSVForm
|
||||
table = tables.PowerPanelTable
|
||||
default_return_url = 'dcim:powerpanel_list'
|
||||
|
||||
|
||||
class PowerPanelBulkEditView(BulkEditView):
|
||||
@ -2431,7 +2354,6 @@ class PowerPanelBulkEditView(BulkEditView):
|
||||
filterset = filters.PowerPanelFilterSet
|
||||
table = tables.PowerPanelTable
|
||||
form = forms.PowerPanelBulkEditForm
|
||||
default_return_url = 'dcim:powerpanel_list'
|
||||
|
||||
|
||||
class PowerPanelBulkDeleteView(BulkDeleteView):
|
||||
@ -2442,7 +2364,6 @@ class PowerPanelBulkDeleteView(BulkDeleteView):
|
||||
)
|
||||
filterset = filters.PowerPanelFilterSet
|
||||
table = tables.PowerPanelTable
|
||||
default_return_url = 'dcim:powerpanel_list'
|
||||
|
||||
|
||||
#
|
||||
@ -2474,19 +2395,16 @@ class PowerFeedEditView(ObjectEditView):
|
||||
queryset = PowerFeed.objects.all()
|
||||
model_form = forms.PowerFeedForm
|
||||
template_name = 'dcim/powerfeed_edit.html'
|
||||
default_return_url = 'dcim:powerfeed_list'
|
||||
|
||||
|
||||
class PowerFeedDeleteView(ObjectDeleteView):
|
||||
queryset = PowerFeed.objects.all()
|
||||
default_return_url = 'dcim:powerfeed_list'
|
||||
|
||||
|
||||
class PowerFeedBulkImportView(BulkImportView):
|
||||
queryset = PowerFeed.objects.all()
|
||||
model_form = forms.PowerFeedCSVForm
|
||||
table = tables.PowerFeedTable
|
||||
default_return_url = 'dcim:powerfeed_list'
|
||||
|
||||
|
||||
class PowerFeedBulkEditView(BulkEditView):
|
||||
@ -2494,11 +2412,9 @@ class PowerFeedBulkEditView(BulkEditView):
|
||||
filterset = filters.PowerFeedFilterSet
|
||||
table = tables.PowerFeedTable
|
||||
form = forms.PowerFeedBulkEditForm
|
||||
default_return_url = 'dcim:powerfeed_list'
|
||||
|
||||
|
||||
class PowerFeedBulkDeleteView(BulkDeleteView):
|
||||
queryset = PowerFeed.objects.prefetch_related('power_panel', 'rack')
|
||||
filterset = filters.PowerFeedFilterSet
|
||||
table = tables.PowerFeedTable
|
||||
default_return_url = 'dcim:powerfeed_list'
|
||||
|
@ -70,20 +70,17 @@ class TagView(ObjectView):
|
||||
class TagEditView(ObjectEditView):
|
||||
queryset = Tag.objects.all()
|
||||
model_form = forms.TagForm
|
||||
default_return_url = 'extras:tag_list'
|
||||
template_name = 'extras/tag_edit.html'
|
||||
|
||||
|
||||
class TagDeleteView(ObjectDeleteView):
|
||||
queryset = Tag.objects.all()
|
||||
default_return_url = 'extras:tag_list'
|
||||
|
||||
|
||||
class TagBulkImportView(BulkImportView):
|
||||
queryset = Tag.objects.all()
|
||||
model_form = forms.TagCSVForm
|
||||
table = tables.TagTable
|
||||
default_return_url = 'extras:tag_list'
|
||||
|
||||
|
||||
class TagBulkEditView(BulkEditView):
|
||||
@ -94,7 +91,6 @@ class TagBulkEditView(BulkEditView):
|
||||
)
|
||||
table = tables.TagTable
|
||||
form = forms.TagBulkEditForm
|
||||
default_return_url = 'extras:tag_list'
|
||||
|
||||
|
||||
class TagBulkDeleteView(BulkDeleteView):
|
||||
@ -104,7 +100,6 @@ class TagBulkDeleteView(BulkDeleteView):
|
||||
'name'
|
||||
)
|
||||
table = tables.TagTable
|
||||
default_return_url = 'extras:tag_list'
|
||||
|
||||
|
||||
#
|
||||
@ -156,7 +151,6 @@ class ConfigContextView(ObjectView):
|
||||
class ConfigContextEditView(ObjectEditView):
|
||||
queryset = ConfigContext.objects.all()
|
||||
model_form = forms.ConfigContextForm
|
||||
default_return_url = 'extras:configcontext_list'
|
||||
template_name = 'extras/configcontext_edit.html'
|
||||
|
||||
|
||||
@ -165,18 +159,15 @@ class ConfigContextBulkEditView(BulkEditView):
|
||||
filterset = filters.ConfigContextFilterSet
|
||||
table = tables.ConfigContextTable
|
||||
form = forms.ConfigContextBulkEditForm
|
||||
default_return_url = 'extras:configcontext_list'
|
||||
|
||||
|
||||
class ConfigContextDeleteView(ObjectDeleteView):
|
||||
queryset = ConfigContext.objects.all()
|
||||
default_return_url = 'extras:configcontext_list'
|
||||
|
||||
|
||||
class ConfigContextBulkDeleteView(BulkDeleteView):
|
||||
queryset = ConfigContext.objects.all()
|
||||
table = tables.ConfigContextTable
|
||||
default_return_url = 'extras:configcontext_list'
|
||||
|
||||
|
||||
class ObjectConfigContextView(ObjectView):
|
||||
|
@ -48,19 +48,16 @@ class VRFEditView(ObjectEditView):
|
||||
queryset = VRF.objects.all()
|
||||
model_form = forms.VRFForm
|
||||
template_name = 'ipam/vrf_edit.html'
|
||||
default_return_url = 'ipam:vrf_list'
|
||||
|
||||
|
||||
class VRFDeleteView(ObjectDeleteView):
|
||||
queryset = VRF.objects.all()
|
||||
default_return_url = 'ipam:vrf_list'
|
||||
|
||||
|
||||
class VRFBulkImportView(BulkImportView):
|
||||
queryset = VRF.objects.all()
|
||||
model_form = forms.VRFCSVForm
|
||||
table = tables.VRFTable
|
||||
default_return_url = 'ipam:vrf_list'
|
||||
|
||||
|
||||
class VRFBulkEditView(BulkEditView):
|
||||
@ -68,14 +65,12 @@ class VRFBulkEditView(BulkEditView):
|
||||
filterset = filters.VRFFilterSet
|
||||
table = tables.VRFTable
|
||||
form = forms.VRFBulkEditForm
|
||||
default_return_url = 'ipam:vrf_list'
|
||||
|
||||
|
||||
class VRFBulkDeleteView(BulkDeleteView):
|
||||
queryset = VRF.objects.prefetch_related('tenant')
|
||||
filterset = filters.VRFFilterSet
|
||||
table = tables.VRFTable
|
||||
default_return_url = 'ipam:vrf_list'
|
||||
|
||||
|
||||
#
|
||||
@ -163,21 +158,18 @@ class RIRListView(ObjectListView):
|
||||
class RIREditView(ObjectEditView):
|
||||
queryset = RIR.objects.all()
|
||||
model_form = forms.RIRForm
|
||||
default_return_url = 'ipam:rir_list'
|
||||
|
||||
|
||||
class RIRBulkImportView(BulkImportView):
|
||||
queryset = RIR.objects.all()
|
||||
model_form = forms.RIRCSVForm
|
||||
table = tables.RIRTable
|
||||
default_return_url = 'ipam:rir_list'
|
||||
|
||||
|
||||
class RIRBulkDeleteView(BulkDeleteView):
|
||||
queryset = RIR.objects.annotate(aggregate_count=Count('aggregates'))
|
||||
filterset = filters.RIRFilterSet
|
||||
table = tables.RIRTable
|
||||
default_return_url = 'ipam:rir_list'
|
||||
|
||||
|
||||
#
|
||||
@ -259,19 +251,16 @@ class AggregateEditView(ObjectEditView):
|
||||
queryset = Aggregate.objects.all()
|
||||
model_form = forms.AggregateForm
|
||||
template_name = 'ipam/aggregate_edit.html'
|
||||
default_return_url = 'ipam:aggregate_list'
|
||||
|
||||
|
||||
class AggregateDeleteView(ObjectDeleteView):
|
||||
queryset = Aggregate.objects.all()
|
||||
default_return_url = 'ipam:aggregate_list'
|
||||
|
||||
|
||||
class AggregateBulkImportView(BulkImportView):
|
||||
queryset = Aggregate.objects.all()
|
||||
model_form = forms.AggregateCSVForm
|
||||
table = tables.AggregateTable
|
||||
default_return_url = 'ipam:aggregate_list'
|
||||
|
||||
|
||||
class AggregateBulkEditView(BulkEditView):
|
||||
@ -279,14 +268,12 @@ class AggregateBulkEditView(BulkEditView):
|
||||
filterset = filters.AggregateFilterSet
|
||||
table = tables.AggregateTable
|
||||
form = forms.AggregateBulkEditForm
|
||||
default_return_url = 'ipam:aggregate_list'
|
||||
|
||||
|
||||
class AggregateBulkDeleteView(BulkDeleteView):
|
||||
queryset = Aggregate.objects.prefetch_related('rir')
|
||||
filterset = filters.AggregateFilterSet
|
||||
table = tables.AggregateTable
|
||||
default_return_url = 'ipam:aggregate_list'
|
||||
|
||||
|
||||
#
|
||||
@ -301,20 +288,17 @@ class RoleListView(ObjectListView):
|
||||
class RoleEditView(ObjectEditView):
|
||||
queryset = Role.objects.all()
|
||||
model_form = forms.RoleForm
|
||||
default_return_url = 'ipam:role_list'
|
||||
|
||||
|
||||
class RoleBulkImportView(BulkImportView):
|
||||
queryset = Role.objects.all()
|
||||
model_form = forms.RoleCSVForm
|
||||
table = tables.RoleTable
|
||||
default_return_url = 'ipam:role_list'
|
||||
|
||||
|
||||
class RoleBulkDeleteView(BulkDeleteView):
|
||||
queryset = Role.objects.all()
|
||||
table = tables.RoleTable
|
||||
default_return_url = 'ipam:role_list'
|
||||
|
||||
|
||||
#
|
||||
@ -470,20 +454,17 @@ class PrefixEditView(ObjectEditView):
|
||||
queryset = Prefix.objects.all()
|
||||
model_form = forms.PrefixForm
|
||||
template_name = 'ipam/prefix_edit.html'
|
||||
default_return_url = 'ipam:prefix_list'
|
||||
|
||||
|
||||
class PrefixDeleteView(ObjectDeleteView):
|
||||
queryset = Prefix.objects.all()
|
||||
template_name = 'ipam/prefix_delete.html'
|
||||
default_return_url = 'ipam:prefix_list'
|
||||
|
||||
|
||||
class PrefixBulkImportView(BulkImportView):
|
||||
queryset = Prefix.objects.all()
|
||||
model_form = forms.PrefixCSVForm
|
||||
table = tables.PrefixTable
|
||||
default_return_url = 'ipam:prefix_list'
|
||||
|
||||
|
||||
class PrefixBulkEditView(BulkEditView):
|
||||
@ -491,14 +472,12 @@ class PrefixBulkEditView(BulkEditView):
|
||||
filterset = filters.PrefixFilterSet
|
||||
table = tables.PrefixTable
|
||||
form = forms.PrefixBulkEditForm
|
||||
default_return_url = 'ipam:prefix_list'
|
||||
|
||||
|
||||
class PrefixBulkDeleteView(BulkDeleteView):
|
||||
queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role')
|
||||
filterset = filters.PrefixFilterSet
|
||||
table = tables.PrefixTable
|
||||
default_return_url = 'ipam:prefix_list'
|
||||
|
||||
|
||||
#
|
||||
@ -569,7 +548,6 @@ class IPAddressEditView(ObjectEditView):
|
||||
queryset = IPAddress.objects.all()
|
||||
model_form = forms.IPAddressForm
|
||||
template_name = 'ipam/ipaddress_edit.html'
|
||||
default_return_url = 'ipam:ipaddress_list'
|
||||
|
||||
def alter_obj(self, obj, request, url_args, url_kwargs):
|
||||
|
||||
@ -630,7 +608,6 @@ class IPAddressAssignView(ObjectView):
|
||||
|
||||
class IPAddressDeleteView(ObjectDeleteView):
|
||||
queryset = IPAddress.objects.all()
|
||||
default_return_url = 'ipam:ipaddress_list'
|
||||
|
||||
|
||||
class IPAddressBulkCreateView(BulkCreateView):
|
||||
@ -639,14 +616,12 @@ class IPAddressBulkCreateView(BulkCreateView):
|
||||
model_form = forms.IPAddressBulkAddForm
|
||||
pattern_target = 'address'
|
||||
template_name = 'ipam/ipaddress_bulk_add.html'
|
||||
default_return_url = 'ipam:ipaddress_list'
|
||||
|
||||
|
||||
class IPAddressBulkImportView(BulkImportView):
|
||||
queryset = IPAddress.objects.all()
|
||||
model_form = forms.IPAddressCSVForm
|
||||
table = tables.IPAddressTable
|
||||
default_return_url = 'ipam:ipaddress_list'
|
||||
|
||||
|
||||
class IPAddressBulkEditView(BulkEditView):
|
||||
@ -654,14 +629,12 @@ class IPAddressBulkEditView(BulkEditView):
|
||||
filterset = filters.IPAddressFilterSet
|
||||
table = tables.IPAddressTable
|
||||
form = forms.IPAddressBulkEditForm
|
||||
default_return_url = 'ipam:ipaddress_list'
|
||||
|
||||
|
||||
class IPAddressBulkDeleteView(BulkDeleteView):
|
||||
queryset = IPAddress.objects.prefetch_related('vrf__tenant', 'tenant')
|
||||
filterset = filters.IPAddressFilterSet
|
||||
table = tables.IPAddressTable
|
||||
default_return_url = 'ipam:ipaddress_list'
|
||||
|
||||
|
||||
#
|
||||
@ -678,21 +651,18 @@ class VLANGroupListView(ObjectListView):
|
||||
class VLANGroupEditView(ObjectEditView):
|
||||
queryset = VLANGroup.objects.all()
|
||||
model_form = forms.VLANGroupForm
|
||||
default_return_url = 'ipam:vlangroup_list'
|
||||
|
||||
|
||||
class VLANGroupBulkImportView(BulkImportView):
|
||||
queryset = VLANGroup.objects.all()
|
||||
model_form = forms.VLANGroupCSVForm
|
||||
table = tables.VLANGroupTable
|
||||
default_return_url = 'ipam:vlangroup_list'
|
||||
|
||||
|
||||
class VLANGroupBulkDeleteView(BulkDeleteView):
|
||||
queryset = VLANGroup.objects.prefetch_related('site').annotate(vlan_count=Count('vlans'))
|
||||
filterset = filters.VLANGroupFilterSet
|
||||
table = tables.VLANGroupTable
|
||||
default_return_url = 'ipam:vlangroup_list'
|
||||
|
||||
|
||||
class VLANGroupVLANsView(ObjectView):
|
||||
@ -789,19 +759,16 @@ class VLANEditView(ObjectEditView):
|
||||
queryset = VLAN.objects.all()
|
||||
model_form = forms.VLANForm
|
||||
template_name = 'ipam/vlan_edit.html'
|
||||
default_return_url = 'ipam:vlan_list'
|
||||
|
||||
|
||||
class VLANDeleteView(ObjectDeleteView):
|
||||
queryset = VLAN.objects.all()
|
||||
default_return_url = 'ipam:vlan_list'
|
||||
|
||||
|
||||
class VLANBulkImportView(BulkImportView):
|
||||
queryset = VLAN.objects.all()
|
||||
model_form = forms.VLANCSVForm
|
||||
table = tables.VLANTable
|
||||
default_return_url = 'ipam:vlan_list'
|
||||
|
||||
|
||||
class VLANBulkEditView(BulkEditView):
|
||||
@ -809,14 +776,12 @@ class VLANBulkEditView(BulkEditView):
|
||||
filterset = filters.VLANFilterSet
|
||||
table = tables.VLANTable
|
||||
form = forms.VLANBulkEditForm
|
||||
default_return_url = 'ipam:vlan_list'
|
||||
|
||||
|
||||
class VLANBulkDeleteView(BulkDeleteView):
|
||||
queryset = VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role')
|
||||
filterset = filters.VLANFilterSet
|
||||
table = tables.VLANTable
|
||||
default_return_url = 'ipam:vlan_list'
|
||||
|
||||
|
||||
#
|
||||
@ -863,7 +828,6 @@ class ServiceBulkImportView(BulkImportView):
|
||||
queryset = Service.objects.all()
|
||||
model_form = forms.ServiceCSVForm
|
||||
table = tables.ServiceTable
|
||||
default_return_url = 'ipam:service_list'
|
||||
|
||||
|
||||
class ServiceDeleteView(ObjectDeleteView):
|
||||
@ -875,11 +839,9 @@ class ServiceBulkEditView(BulkEditView):
|
||||
filterset = filters.ServiceFilterSet
|
||||
table = tables.ServiceTable
|
||||
form = forms.ServiceBulkEditForm
|
||||
default_return_url = 'ipam:service_list'
|
||||
|
||||
|
||||
class ServiceBulkDeleteView(BulkDeleteView):
|
||||
queryset = Service.objects.prefetch_related('device', 'virtual_machine')
|
||||
filterset = filters.ServiceFilterSet
|
||||
table = tables.ServiceTable
|
||||
default_return_url = 'ipam:service_list'
|
||||
|
@ -36,20 +36,17 @@ class SecretRoleListView(ObjectListView):
|
||||
class SecretRoleEditView(ObjectEditView):
|
||||
queryset = SecretRole.objects.all()
|
||||
model_form = forms.SecretRoleForm
|
||||
default_return_url = 'secrets:secretrole_list'
|
||||
|
||||
|
||||
class SecretRoleBulkImportView(BulkImportView):
|
||||
queryset = SecretRole.objects.all()
|
||||
model_form = forms.SecretRoleCSVForm
|
||||
table = tables.SecretRoleTable
|
||||
default_return_url = 'secrets:secretrole_list'
|
||||
|
||||
|
||||
class SecretRoleBulkDeleteView(BulkDeleteView):
|
||||
queryset = SecretRole.objects.annotate(secret_count=Count('secrets'))
|
||||
table = tables.SecretRoleTable
|
||||
default_return_url = 'secrets:secretrole_list'
|
||||
|
||||
|
||||
#
|
||||
@ -147,7 +144,6 @@ class SecretEditView(ObjectEditView):
|
||||
|
||||
class SecretDeleteView(ObjectDeleteView):
|
||||
queryset = Secret.objects.all()
|
||||
default_return_url = 'secrets:secret_list'
|
||||
|
||||
|
||||
class SecretBulkImportView(BulkImportView):
|
||||
@ -155,7 +151,6 @@ class SecretBulkImportView(BulkImportView):
|
||||
model_form = forms.SecretCSVForm
|
||||
table = tables.SecretTable
|
||||
template_name = 'secrets/secret_import.html'
|
||||
default_return_url = 'secrets:secret_list'
|
||||
widget_attrs = {'class': 'requires-session-key'}
|
||||
|
||||
master_key = None
|
||||
@ -203,11 +198,9 @@ class SecretBulkEditView(BulkEditView):
|
||||
filterset = filters.SecretFilterSet
|
||||
table = tables.SecretTable
|
||||
form = forms.SecretBulkEditForm
|
||||
default_return_url = 'secrets:secret_list'
|
||||
|
||||
|
||||
class SecretBulkDeleteView(BulkDeleteView):
|
||||
queryset = Secret.objects.prefetch_related('role', 'device')
|
||||
filterset = filters.SecretFilterSet
|
||||
table = tables.SecretTable
|
||||
default_return_url = 'secrets:secret_list'
|
||||
|
@ -30,20 +30,17 @@ class TenantGroupListView(ObjectListView):
|
||||
class TenantGroupEditView(ObjectEditView):
|
||||
queryset = TenantGroup.objects.all()
|
||||
model_form = forms.TenantGroupForm
|
||||
default_return_url = 'tenancy:tenantgroup_list'
|
||||
|
||||
|
||||
class TenantGroupBulkImportView(BulkImportView):
|
||||
queryset = TenantGroup.objects.all()
|
||||
model_form = forms.TenantGroupCSVForm
|
||||
table = tables.TenantGroupTable
|
||||
default_return_url = 'tenancy:tenantgroup_list'
|
||||
|
||||
|
||||
class TenantGroupBulkDeleteView(BulkDeleteView):
|
||||
queryset = TenantGroup.objects.annotate(tenant_count=Count('tenants'))
|
||||
table = tables.TenantGroupTable
|
||||
default_return_url = 'tenancy:tenantgroup_list'
|
||||
|
||||
|
||||
#
|
||||
@ -87,19 +84,16 @@ class TenantEditView(ObjectEditView):
|
||||
queryset = Tenant.objects.all()
|
||||
model_form = forms.TenantForm
|
||||
template_name = 'tenancy/tenant_edit.html'
|
||||
default_return_url = 'tenancy:tenant_list'
|
||||
|
||||
|
||||
class TenantDeleteView(ObjectDeleteView):
|
||||
queryset = Tenant.objects.all()
|
||||
default_return_url = 'tenancy:tenant_list'
|
||||
|
||||
|
||||
class TenantBulkImportView(BulkImportView):
|
||||
queryset = Tenant.objects.all()
|
||||
model_form = forms.TenantCSVForm
|
||||
table = tables.TenantTable
|
||||
default_return_url = 'tenancy:tenant_list'
|
||||
|
||||
|
||||
class TenantBulkEditView(BulkEditView):
|
||||
@ -107,11 +101,9 @@ class TenantBulkEditView(BulkEditView):
|
||||
filterset = filters.TenantFilterSet
|
||||
table = tables.TenantTable
|
||||
form = forms.TenantBulkEditForm
|
||||
default_return_url = 'tenancy:tenant_list'
|
||||
|
||||
|
||||
class TenantBulkDeleteView(BulkDeleteView):
|
||||
queryset = Tenant.objects.prefetch_related('group')
|
||||
filterset = filters.TenantFilterSet
|
||||
table = tables.TenantTable
|
||||
default_return_url = 'tenancy:tenant_list'
|
||||
|
@ -16,6 +16,7 @@ from django.shortcuts import get_object_or_404, redirect, render
|
||||
from django.template import loader
|
||||
from django.template.exceptions import TemplateDoesNotExist
|
||||
from django.urls import reverse
|
||||
from django.urls.exceptions import NoReverseMatch
|
||||
from django.utils.decorators import method_decorator
|
||||
from django.utils.html import escape
|
||||
from django.utils.http import is_safe_url
|
||||
@ -86,7 +87,7 @@ class ObjectPermissionRequiredMixin(AccessMixin):
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
|
||||
class GetReturnURLMixin(object):
|
||||
class GetReturnURLMixin:
|
||||
"""
|
||||
Provides logic for determining where a user should be redirected after processing a form.
|
||||
"""
|
||||
@ -101,13 +102,21 @@ class GetReturnURLMixin(object):
|
||||
return query_param
|
||||
|
||||
# Next, check if the object being modified (if any) has an absolute URL.
|
||||
elif obj is not None and obj.pk and hasattr(obj, 'get_absolute_url'):
|
||||
if obj is not None and obj.pk and hasattr(obj, 'get_absolute_url'):
|
||||
return obj.get_absolute_url()
|
||||
|
||||
# Fall back to the default URL (if specified) for the view.
|
||||
elif self.default_return_url is not None:
|
||||
if self.default_return_url is not None:
|
||||
return reverse(self.default_return_url)
|
||||
|
||||
# Attempt to dynamically resolve the list view for the object
|
||||
if hasattr(self, 'queryset'):
|
||||
model_opts = self.queryset.model._meta
|
||||
try:
|
||||
return reverse(f'{model_opts.app_label}:{model_opts.model_name}_list')
|
||||
except NoReverseMatch:
|
||||
pass
|
||||
|
||||
# If all else fails, return home. Ideally this should never happen.
|
||||
return reverse('home')
|
||||
|
||||
|
@ -29,20 +29,17 @@ class ClusterTypeListView(ObjectListView):
|
||||
class ClusterTypeEditView(ObjectEditView):
|
||||
queryset = ClusterType.objects.all()
|
||||
model_form = forms.ClusterTypeForm
|
||||
default_return_url = 'virtualization:clustertype_list'
|
||||
|
||||
|
||||
class ClusterTypeBulkImportView(BulkImportView):
|
||||
queryset = ClusterType.objects.all()
|
||||
model_form = forms.ClusterTypeCSVForm
|
||||
table = tables.ClusterTypeTable
|
||||
default_return_url = 'virtualization:clustertype_list'
|
||||
|
||||
|
||||
class ClusterTypeBulkDeleteView(BulkDeleteView):
|
||||
queryset = ClusterType.objects.annotate(cluster_count=Count('clusters'))
|
||||
table = tables.ClusterTypeTable
|
||||
default_return_url = 'virtualization:clustertype_list'
|
||||
|
||||
|
||||
#
|
||||
@ -57,20 +54,17 @@ class ClusterGroupListView(ObjectListView):
|
||||
class ClusterGroupEditView(ObjectEditView):
|
||||
queryset = ClusterGroup.objects.all()
|
||||
model_form = forms.ClusterGroupForm
|
||||
default_return_url = 'virtualization:clustergroup_list'
|
||||
|
||||
|
||||
class ClusterGroupBulkImportView(BulkImportView):
|
||||
queryset = ClusterGroup.objects.all()
|
||||
model_form = forms.ClusterGroupCSVForm
|
||||
table = tables.ClusterGroupTable
|
||||
default_return_url = 'virtualization:clustergroup_list'
|
||||
|
||||
|
||||
class ClusterGroupBulkDeleteView(BulkDeleteView):
|
||||
queryset = ClusterGroup.objects.annotate(cluster_count=Count('clusters'))
|
||||
table = tables.ClusterGroupTable
|
||||
default_return_url = 'virtualization:clustergroup_list'
|
||||
|
||||
|
||||
#
|
||||
@ -114,14 +108,12 @@ class ClusterEditView(ObjectEditView):
|
||||
|
||||
class ClusterDeleteView(ObjectDeleteView):
|
||||
queryset = Cluster.objects.all()
|
||||
default_return_url = 'virtualization:cluster_list'
|
||||
|
||||
|
||||
class ClusterBulkImportView(BulkImportView):
|
||||
queryset = Cluster.objects.all()
|
||||
model_form = forms.ClusterCSVForm
|
||||
table = tables.ClusterTable
|
||||
default_return_url = 'virtualization:cluster_list'
|
||||
|
||||
|
||||
class ClusterBulkEditView(BulkEditView):
|
||||
@ -129,14 +121,12 @@ class ClusterBulkEditView(BulkEditView):
|
||||
filterset = filters.ClusterFilterSet
|
||||
table = tables.ClusterTable
|
||||
form = forms.ClusterBulkEditForm
|
||||
default_return_url = 'virtualization:cluster_list'
|
||||
|
||||
|
||||
class ClusterBulkDeleteView(BulkDeleteView):
|
||||
queryset = Cluster.objects.prefetch_related('type', 'group', 'site')
|
||||
filterset = filters.ClusterFilterSet
|
||||
table = tables.ClusterTable
|
||||
default_return_url = 'virtualization:cluster_list'
|
||||
|
||||
|
||||
class ClusterAddDevicesView(ObjectEditView):
|
||||
@ -266,19 +256,16 @@ class VirtualMachineEditView(ObjectEditView):
|
||||
queryset = VirtualMachine.objects.all()
|
||||
model_form = forms.VirtualMachineForm
|
||||
template_name = 'virtualization/virtualmachine_edit.html'
|
||||
default_return_url = 'virtualization:virtualmachine_list'
|
||||
|
||||
|
||||
class VirtualMachineDeleteView(ObjectDeleteView):
|
||||
queryset = VirtualMachine.objects.all()
|
||||
default_return_url = 'virtualization:virtualmachine_list'
|
||||
|
||||
|
||||
class VirtualMachineBulkImportView(BulkImportView):
|
||||
queryset = VirtualMachine.objects.all()
|
||||
model_form = forms.VirtualMachineCSVForm
|
||||
table = tables.VirtualMachineTable
|
||||
default_return_url = 'virtualization:virtualmachine_list'
|
||||
|
||||
|
||||
class VirtualMachineBulkEditView(BulkEditView):
|
||||
@ -286,14 +273,12 @@ class VirtualMachineBulkEditView(BulkEditView):
|
||||
filterset = filters.VirtualMachineFilterSet
|
||||
table = tables.VirtualMachineTable
|
||||
form = forms.VirtualMachineBulkEditForm
|
||||
default_return_url = 'virtualization:virtualmachine_list'
|
||||
|
||||
|
||||
class VirtualMachineBulkDeleteView(BulkDeleteView):
|
||||
queryset = VirtualMachine.objects.prefetch_related('cluster', 'tenant', 'role')
|
||||
filterset = filters.VirtualMachineFilterSet
|
||||
table = tables.VirtualMachineTable
|
||||
default_return_url = 'virtualization:virtualmachine_list'
|
||||
|
||||
|
||||
#
|
||||
@ -364,7 +349,6 @@ class VMInterfaceBulkImportView(BulkImportView):
|
||||
queryset = VMInterface.objects.all()
|
||||
model_form = forms.VMInterfaceCSVForm
|
||||
table = tables.VMInterfaceTable
|
||||
default_return_url = 'virtualization:vminterface_list'
|
||||
|
||||
|
||||
class VMInterfaceBulkEditView(BulkEditView):
|
||||
@ -395,4 +379,3 @@ class VirtualMachineBulkAddInterfaceView(BulkComponentCreateView):
|
||||
model_form = forms.VMInterfaceForm
|
||||
filterset = filters.VirtualMachineFilterSet
|
||||
table = tables.VirtualMachineTable
|
||||
default_return_url = 'virtualization:virtualmachine_list'
|
||||
|
Reference in New Issue
Block a user