Extend GetReturnURLMixin to automatically resolve default return URL for querysets

This commit is contained in:
Jeremy Stretch 2020-07-01 11:50:31 -04:00
parent 7fab929194
commit 4613b69c28
8 changed files with 12 additions and 179 deletions

View File

@ -60,19 +60,16 @@ class ProviderEditView(ObjectEditView):
queryset = Provider.objects.all() queryset = Provider.objects.all()
model_form = forms.ProviderForm model_form = forms.ProviderForm
template_name = 'circuits/provider_edit.html' template_name = 'circuits/provider_edit.html'
default_return_url = 'circuits:provider_list'
class ProviderDeleteView(ObjectDeleteView): class ProviderDeleteView(ObjectDeleteView):
queryset = Provider.objects.all() queryset = Provider.objects.all()
default_return_url = 'circuits:provider_list'
class ProviderBulkImportView(BulkImportView): class ProviderBulkImportView(BulkImportView):
queryset = Provider.objects.all() queryset = Provider.objects.all()
model_form = forms.ProviderCSVForm model_form = forms.ProviderCSVForm
table = tables.ProviderTable table = tables.ProviderTable
default_return_url = 'circuits:provider_list'
class ProviderBulkEditView(BulkEditView): class ProviderBulkEditView(BulkEditView):
@ -80,14 +77,12 @@ class ProviderBulkEditView(BulkEditView):
filterset = filters.ProviderFilterSet filterset = filters.ProviderFilterSet
table = tables.ProviderTable table = tables.ProviderTable
form = forms.ProviderBulkEditForm form = forms.ProviderBulkEditForm
default_return_url = 'circuits:provider_list'
class ProviderBulkDeleteView(BulkDeleteView): class ProviderBulkDeleteView(BulkDeleteView):
queryset = Provider.objects.annotate(count_circuits=Count('circuits')) queryset = Provider.objects.annotate(count_circuits=Count('circuits'))
filterset = filters.ProviderFilterSet filterset = filters.ProviderFilterSet
table = tables.ProviderTable table = tables.ProviderTable
default_return_url = 'circuits:provider_list'
# #
@ -102,20 +97,17 @@ class CircuitTypeListView(ObjectListView):
class CircuitTypeEditView(ObjectEditView): class CircuitTypeEditView(ObjectEditView):
queryset = CircuitType.objects.all() queryset = CircuitType.objects.all()
model_form = forms.CircuitTypeForm model_form = forms.CircuitTypeForm
default_return_url = 'circuits:circuittype_list'
class CircuitTypeBulkImportView(BulkImportView): class CircuitTypeBulkImportView(BulkImportView):
queryset = CircuitType.objects.all() queryset = CircuitType.objects.all()
model_form = forms.CircuitTypeCSVForm model_form = forms.CircuitTypeCSVForm
table = tables.CircuitTypeTable table = tables.CircuitTypeTable
default_return_url = 'circuits:circuittype_list'
class CircuitTypeBulkDeleteView(BulkDeleteView): class CircuitTypeBulkDeleteView(BulkDeleteView):
queryset = CircuitType.objects.annotate(circuit_count=Count('circuits')) queryset = CircuitType.objects.annotate(circuit_count=Count('circuits'))
table = tables.CircuitTypeTable table = tables.CircuitTypeTable
default_return_url = 'circuits:circuittype_list'
# #
@ -165,19 +157,16 @@ class CircuitEditView(ObjectEditView):
queryset = Circuit.objects.all() queryset = Circuit.objects.all()
model_form = forms.CircuitForm model_form = forms.CircuitForm
template_name = 'circuits/circuit_edit.html' template_name = 'circuits/circuit_edit.html'
default_return_url = 'circuits:circuit_list'
class CircuitDeleteView(ObjectDeleteView): class CircuitDeleteView(ObjectDeleteView):
queryset = Circuit.objects.all() queryset = Circuit.objects.all()
default_return_url = 'circuits:circuit_list'
class CircuitBulkImportView(BulkImportView): class CircuitBulkImportView(BulkImportView):
queryset = Circuit.objects.all() queryset = Circuit.objects.all()
model_form = forms.CircuitCSVForm model_form = forms.CircuitCSVForm
table = tables.CircuitTable table = tables.CircuitTable
default_return_url = 'circuits:circuit_list'
class CircuitBulkEditView(BulkEditView): class CircuitBulkEditView(BulkEditView):
@ -185,14 +174,12 @@ class CircuitBulkEditView(BulkEditView):
filterset = filters.CircuitFilterSet filterset = filters.CircuitFilterSet
table = tables.CircuitTable table = tables.CircuitTable
form = forms.CircuitBulkEditForm form = forms.CircuitBulkEditForm
default_return_url = 'circuits:circuit_list'
class CircuitBulkDeleteView(BulkDeleteView): class CircuitBulkDeleteView(BulkDeleteView):
queryset = Circuit.objects.prefetch_related('provider', 'type', 'tenant').prefetch_related('terminations__site') queryset = Circuit.objects.prefetch_related('provider', 'type', 'tenant').prefetch_related('terminations__site')
filterset = filters.CircuitFilterSet filterset = filters.CircuitFilterSet
table = tables.CircuitTable table = tables.CircuitTable
default_return_url = 'circuits:circuit_list'
class CircuitSwapTerminations(ObjectEditView): class CircuitSwapTerminations(ObjectEditView):

View File

@ -120,21 +120,18 @@ class RegionListView(ObjectListView):
class RegionEditView(ObjectEditView): class RegionEditView(ObjectEditView):
queryset = Region.objects.all() queryset = Region.objects.all()
model_form = forms.RegionForm model_form = forms.RegionForm
default_return_url = 'dcim:region_list'
class RegionBulkImportView(BulkImportView): class RegionBulkImportView(BulkImportView):
queryset = Region.objects.all() queryset = Region.objects.all()
model_form = forms.RegionCSVForm model_form = forms.RegionCSVForm
table = tables.RegionTable table = tables.RegionTable
default_return_url = 'dcim:region_list'
class RegionBulkDeleteView(BulkDeleteView): class RegionBulkDeleteView(BulkDeleteView):
queryset = Region.objects.all() queryset = Region.objects.all()
filterset = filters.RegionFilterSet filterset = filters.RegionFilterSet
table = tables.RegionTable table = tables.RegionTable
default_return_url = 'dcim:region_list'
# #
@ -179,19 +176,16 @@ class SiteEditView(ObjectEditView):
queryset = Site.objects.all() queryset = Site.objects.all()
model_form = forms.SiteForm model_form = forms.SiteForm
template_name = 'dcim/site_edit.html' template_name = 'dcim/site_edit.html'
default_return_url = 'dcim:site_list'
class SiteDeleteView(ObjectDeleteView): class SiteDeleteView(ObjectDeleteView):
queryset = Site.objects.all() queryset = Site.objects.all()
default_return_url = 'dcim:site_list'
class SiteBulkImportView(BulkImportView): class SiteBulkImportView(BulkImportView):
queryset = Site.objects.all() queryset = Site.objects.all()
model_form = forms.SiteCSVForm model_form = forms.SiteCSVForm
table = tables.SiteTable table = tables.SiteTable
default_return_url = 'dcim:site_list'
class SiteBulkEditView(BulkEditView): class SiteBulkEditView(BulkEditView):
@ -199,14 +193,12 @@ class SiteBulkEditView(BulkEditView):
filterset = filters.SiteFilterSet filterset = filters.SiteFilterSet
table = tables.SiteTable table = tables.SiteTable
form = forms.SiteBulkEditForm form = forms.SiteBulkEditForm
default_return_url = 'dcim:site_list'
class SiteBulkDeleteView(BulkDeleteView): class SiteBulkDeleteView(BulkDeleteView):
queryset = Site.objects.prefetch_related('region', 'tenant') queryset = Site.objects.prefetch_related('region', 'tenant')
filterset = filters.SiteFilterSet filterset = filters.SiteFilterSet
table = tables.SiteTable table = tables.SiteTable
default_return_url = 'dcim:site_list'
# #
@ -229,21 +221,18 @@ class RackGroupListView(ObjectListView):
class RackGroupEditView(ObjectEditView): class RackGroupEditView(ObjectEditView):
queryset = RackGroup.objects.all() queryset = RackGroup.objects.all()
model_form = forms.RackGroupForm model_form = forms.RackGroupForm
default_return_url = 'dcim:rackgroup_list'
class RackGroupBulkImportView(BulkImportView): class RackGroupBulkImportView(BulkImportView):
queryset = RackGroup.objects.all() queryset = RackGroup.objects.all()
model_form = forms.RackGroupCSVForm model_form = forms.RackGroupCSVForm
table = tables.RackGroupTable table = tables.RackGroupTable
default_return_url = 'dcim:rackgroup_list'
class RackGroupBulkDeleteView(BulkDeleteView): class RackGroupBulkDeleteView(BulkDeleteView):
queryset = RackGroup.objects.prefetch_related('site').annotate(rack_count=Count('racks')) queryset = RackGroup.objects.prefetch_related('site').annotate(rack_count=Count('racks'))
filterset = filters.RackGroupFilterSet filterset = filters.RackGroupFilterSet
table = tables.RackGroupTable table = tables.RackGroupTable
default_return_url = 'dcim:rackgroup_list'
# #
@ -258,20 +247,17 @@ class RackRoleListView(ObjectListView):
class RackRoleEditView(ObjectEditView): class RackRoleEditView(ObjectEditView):
queryset = RackRole.objects.all() queryset = RackRole.objects.all()
model_form = forms.RackRoleForm model_form = forms.RackRoleForm
default_return_url = 'dcim:rackrole_list'
class RackRoleBulkImportView(BulkImportView): class RackRoleBulkImportView(BulkImportView):
queryset = RackRole.objects.all() queryset = RackRole.objects.all()
model_form = forms.RackRoleCSVForm model_form = forms.RackRoleCSVForm
table = tables.RackRoleTable table = tables.RackRoleTable
default_return_url = 'dcim:rackrole_list'
class RackRoleBulkDeleteView(BulkDeleteView): class RackRoleBulkDeleteView(BulkDeleteView):
queryset = RackRole.objects.annotate(rack_count=Count('racks')) queryset = RackRole.objects.annotate(rack_count=Count('racks'))
table = tables.RackRoleTable table = tables.RackRoleTable
default_return_url = 'dcim:rackrole_list'
# #
@ -363,19 +349,16 @@ class RackEditView(ObjectEditView):
queryset = Rack.objects.all() queryset = Rack.objects.all()
model_form = forms.RackForm model_form = forms.RackForm
template_name = 'dcim/rack_edit.html' template_name = 'dcim/rack_edit.html'
default_return_url = 'dcim:rack_list'
class RackDeleteView(ObjectDeleteView): class RackDeleteView(ObjectDeleteView):
queryset = Rack.objects.all() queryset = Rack.objects.all()
default_return_url = 'dcim:rack_list'
class RackBulkImportView(BulkImportView): class RackBulkImportView(BulkImportView):
queryset = Rack.objects.all() queryset = Rack.objects.all()
model_form = forms.RackCSVForm model_form = forms.RackCSVForm
table = tables.RackTable table = tables.RackTable
default_return_url = 'dcim:rack_list'
class RackBulkEditView(BulkEditView): class RackBulkEditView(BulkEditView):
@ -383,14 +366,12 @@ class RackBulkEditView(BulkEditView):
filterset = filters.RackFilterSet filterset = filters.RackFilterSet
table = tables.RackTable table = tables.RackTable
form = forms.RackBulkEditForm form = forms.RackBulkEditForm
default_return_url = 'dcim:rack_list'
class RackBulkDeleteView(BulkDeleteView): class RackBulkDeleteView(BulkDeleteView):
queryset = Rack.objects.prefetch_related('site', 'group', 'tenant', 'role') queryset = Rack.objects.prefetch_related('site', 'group', 'tenant', 'role')
filterset = filters.RackFilterSet filterset = filters.RackFilterSet
table = tables.RackTable table = tables.RackTable
default_return_url = 'dcim:rack_list'
# #
@ -421,7 +402,6 @@ class RackReservationEditView(ObjectEditView):
queryset = RackReservation.objects.all() queryset = RackReservation.objects.all()
model_form = forms.RackReservationForm model_form = forms.RackReservationForm
template_name = 'dcim/rackreservation_edit.html' template_name = 'dcim/rackreservation_edit.html'
default_return_url = 'dcim:rackreservation_list'
def alter_obj(self, obj, request, args, kwargs): def alter_obj(self, obj, request, args, kwargs):
if not obj.pk: if not obj.pk:
@ -433,14 +413,12 @@ class RackReservationEditView(ObjectEditView):
class RackReservationDeleteView(ObjectDeleteView): class RackReservationDeleteView(ObjectDeleteView):
queryset = RackReservation.objects.all() queryset = RackReservation.objects.all()
default_return_url = 'dcim:rackreservation_list'
class RackReservationImportView(BulkImportView): class RackReservationImportView(BulkImportView):
queryset = RackReservation.objects.all() queryset = RackReservation.objects.all()
model_form = forms.RackReservationCSVForm model_form = forms.RackReservationCSVForm
table = tables.RackReservationTable table = tables.RackReservationTable
default_return_url = 'dcim:rackreservation_list'
def _save_obj(self, obj_form, request): def _save_obj(self, obj_form, request):
""" """
@ -458,14 +436,12 @@ class RackReservationBulkEditView(BulkEditView):
filterset = filters.RackReservationFilterSet filterset = filters.RackReservationFilterSet
table = tables.RackReservationTable table = tables.RackReservationTable
form = forms.RackReservationBulkEditForm form = forms.RackReservationBulkEditForm
default_return_url = 'dcim:rackreservation_list'
class RackReservationBulkDeleteView(BulkDeleteView): class RackReservationBulkDeleteView(BulkDeleteView):
queryset = RackReservation.objects.prefetch_related('rack', 'user') queryset = RackReservation.objects.prefetch_related('rack', 'user')
filterset = filters.RackReservationFilterSet filterset = filters.RackReservationFilterSet
table = tables.RackReservationTable table = tables.RackReservationTable
default_return_url = 'dcim:rackreservation_list'
# #
@ -484,20 +460,17 @@ class ManufacturerListView(ObjectListView):
class ManufacturerEditView(ObjectEditView): class ManufacturerEditView(ObjectEditView):
queryset = Manufacturer.objects.all() queryset = Manufacturer.objects.all()
model_form = forms.ManufacturerForm model_form = forms.ManufacturerForm
default_return_url = 'dcim:manufacturer_list'
class ManufacturerBulkImportView(BulkImportView): class ManufacturerBulkImportView(BulkImportView):
queryset = Manufacturer.objects.all() queryset = Manufacturer.objects.all()
model_form = forms.ManufacturerCSVForm model_form = forms.ManufacturerCSVForm
table = tables.ManufacturerTable table = tables.ManufacturerTable
default_return_url = 'dcim:manufacturer_list'
class ManufacturerBulkDeleteView(BulkDeleteView): class ManufacturerBulkDeleteView(BulkDeleteView):
queryset = Manufacturer.objects.annotate(devicetype_count=Count('device_types')) queryset = Manufacturer.objects.annotate(devicetype_count=Count('device_types'))
table = tables.ManufacturerTable table = tables.ManufacturerTable
default_return_url = 'dcim:manufacturer_list'
# #
@ -580,12 +553,10 @@ class DeviceTypeEditView(ObjectEditView):
queryset = DeviceType.objects.all() queryset = DeviceType.objects.all()
model_form = forms.DeviceTypeForm model_form = forms.DeviceTypeForm
template_name = 'dcim/devicetype_edit.html' template_name = 'dcim/devicetype_edit.html'
default_return_url = 'dcim:devicetype_list'
class DeviceTypeDeleteView(ObjectDeleteView): class DeviceTypeDeleteView(ObjectDeleteView):
queryset = DeviceType.objects.all() queryset = DeviceType.objects.all()
default_return_url = 'dcim:devicetype_list'
class DeviceTypeImportView(ObjectImportView): class DeviceTypeImportView(ObjectImportView):
@ -612,7 +583,6 @@ class DeviceTypeImportView(ObjectImportView):
('front-ports', forms.FrontPortTemplateImportForm), ('front-ports', forms.FrontPortTemplateImportForm),
('device-bays', forms.DeviceBayTemplateImportForm), ('device-bays', forms.DeviceBayTemplateImportForm),
)) ))
default_return_url = 'dcim:devicetype_import'
class DeviceTypeBulkEditView(BulkEditView): class DeviceTypeBulkEditView(BulkEditView):
@ -620,14 +590,12 @@ class DeviceTypeBulkEditView(BulkEditView):
filterset = filters.DeviceTypeFilterSet filterset = filters.DeviceTypeFilterSet
table = tables.DeviceTypeTable table = tables.DeviceTypeTable
form = forms.DeviceTypeBulkEditForm form = forms.DeviceTypeBulkEditForm
default_return_url = 'dcim:devicetype_list'
class DeviceTypeBulkDeleteView(BulkDeleteView): class DeviceTypeBulkDeleteView(BulkDeleteView):
queryset = DeviceType.objects.prefetch_related('manufacturer').annotate(instance_count=Count('instances')) queryset = DeviceType.objects.prefetch_related('manufacturer').annotate(instance_count=Count('instances'))
filterset = filters.DeviceTypeFilterSet filterset = filters.DeviceTypeFilterSet
table = tables.DeviceTypeTable table = tables.DeviceTypeTable
default_return_url = 'dcim:devicetype_list'
# #
@ -890,20 +858,17 @@ class DeviceRoleListView(ObjectListView):
class DeviceRoleEditView(ObjectEditView): class DeviceRoleEditView(ObjectEditView):
queryset = DeviceRole.objects.all() queryset = DeviceRole.objects.all()
model_form = forms.DeviceRoleForm model_form = forms.DeviceRoleForm
default_return_url = 'dcim:devicerole_list'
class DeviceRoleBulkImportView(BulkImportView): class DeviceRoleBulkImportView(BulkImportView):
queryset = DeviceRole.objects.all() queryset = DeviceRole.objects.all()
model_form = forms.DeviceRoleCSVForm model_form = forms.DeviceRoleCSVForm
table = tables.DeviceRoleTable table = tables.DeviceRoleTable
default_return_url = 'dcim:devicerole_list'
class DeviceRoleBulkDeleteView(BulkDeleteView): class DeviceRoleBulkDeleteView(BulkDeleteView):
queryset = DeviceRole.objects.all() queryset = DeviceRole.objects.all()
table = tables.DeviceRoleTable table = tables.DeviceRoleTable
default_return_url = 'dcim:devicerole_list'
# #
@ -918,20 +883,17 @@ class PlatformListView(ObjectListView):
class PlatformEditView(ObjectEditView): class PlatformEditView(ObjectEditView):
queryset = Platform.objects.all() queryset = Platform.objects.all()
model_form = forms.PlatformForm model_form = forms.PlatformForm
default_return_url = 'dcim:platform_list'
class PlatformBulkImportView(BulkImportView): class PlatformBulkImportView(BulkImportView):
queryset = Platform.objects.all() queryset = Platform.objects.all()
model_form = forms.PlatformCSVForm model_form = forms.PlatformCSVForm
table = tables.PlatformTable table = tables.PlatformTable
default_return_url = 'dcim:platform_list'
class PlatformBulkDeleteView(BulkDeleteView): class PlatformBulkDeleteView(BulkDeleteView):
queryset = Platform.objects.all() queryset = Platform.objects.all()
table = tables.PlatformTable table = tables.PlatformTable
default_return_url = 'dcim:platform_list'
# #
@ -1118,12 +1080,10 @@ class DeviceEditView(ObjectEditView):
queryset = Device.objects.all() queryset = Device.objects.all()
model_form = forms.DeviceForm model_form = forms.DeviceForm
template_name = 'dcim/device_edit.html' template_name = 'dcim/device_edit.html'
default_return_url = 'dcim:device_list'
class DeviceDeleteView(ObjectDeleteView): class DeviceDeleteView(ObjectDeleteView):
queryset = Device.objects.all() queryset = Device.objects.all()
default_return_url = 'dcim:device_list'
class DeviceBulkImportView(BulkImportView): class DeviceBulkImportView(BulkImportView):
@ -1131,7 +1091,6 @@ class DeviceBulkImportView(BulkImportView):
model_form = forms.DeviceCSVForm model_form = forms.DeviceCSVForm
table = tables.DeviceImportTable table = tables.DeviceImportTable
template_name = 'dcim/device_import.html' template_name = 'dcim/device_import.html'
default_return_url = 'dcim:device_list'
class ChildDeviceBulkImportView(BulkImportView): class ChildDeviceBulkImportView(BulkImportView):
@ -1139,7 +1098,6 @@ class ChildDeviceBulkImportView(BulkImportView):
model_form = forms.ChildDeviceCSVForm model_form = forms.ChildDeviceCSVForm
table = tables.DeviceImportTable table = tables.DeviceImportTable
template_name = 'dcim/device_import_child.html' template_name = 'dcim/device_import_child.html'
default_return_url = 'dcim:device_list'
def _save_obj(self, obj_form, request): def _save_obj(self, obj_form, request):
@ -1158,14 +1116,12 @@ class DeviceBulkEditView(BulkEditView):
filterset = filters.DeviceFilterSet filterset = filters.DeviceFilterSet
table = tables.DeviceTable table = tables.DeviceTable
form = forms.DeviceBulkEditForm form = forms.DeviceBulkEditForm
default_return_url = 'dcim:device_list'
class DeviceBulkDeleteView(BulkDeleteView): class DeviceBulkDeleteView(BulkDeleteView):
queryset = Device.objects.prefetch_related('tenant', 'site', 'rack', 'device_role', 'device_type__manufacturer') queryset = Device.objects.prefetch_related('tenant', 'site', 'rack', 'device_role', 'device_type__manufacturer')
filterset = filters.DeviceFilterSet filterset = filters.DeviceFilterSet
table = tables.DeviceTable table = tables.DeviceTable
default_return_url = 'dcim:device_list'
# #
@ -1204,7 +1160,6 @@ class ConsolePortBulkImportView(BulkImportView):
queryset = ConsolePort.objects.all() queryset = ConsolePort.objects.all()
model_form = forms.ConsolePortCSVForm model_form = forms.ConsolePortCSVForm
table = tables.ConsolePortTable table = tables.ConsolePortTable
default_return_url = 'dcim:consoleport_list'
class ConsolePortBulkEditView(BulkEditView): class ConsolePortBulkEditView(BulkEditView):
@ -1226,7 +1181,6 @@ class ConsolePortBulkDeleteView(BulkDeleteView):
queryset = ConsolePort.objects.all() queryset = ConsolePort.objects.all()
filterset = filters.ConsolePortFilterSet filterset = filters.ConsolePortFilterSet
table = tables.ConsolePortTable table = tables.ConsolePortTable
default_return_url = 'dcim:consoleport_list'
# #
@ -1265,7 +1219,6 @@ class ConsoleServerPortBulkImportView(BulkImportView):
queryset = ConsoleServerPort.objects.all() queryset = ConsoleServerPort.objects.all()
model_form = forms.ConsoleServerPortCSVForm model_form = forms.ConsoleServerPortCSVForm
table = tables.ConsoleServerPortTable table = tables.ConsoleServerPortTable
default_return_url = 'dcim:consoleserverport_list'
class ConsoleServerPortBulkEditView(BulkEditView): class ConsoleServerPortBulkEditView(BulkEditView):
@ -1287,7 +1240,6 @@ class ConsoleServerPortBulkDeleteView(BulkDeleteView):
queryset = ConsoleServerPort.objects.all() queryset = ConsoleServerPort.objects.all()
filterset = filters.ConsoleServerPortFilterSet filterset = filters.ConsoleServerPortFilterSet
table = tables.ConsoleServerPortTable table = tables.ConsoleServerPortTable
default_return_url = 'dcim:consoleserverport_list'
# #
@ -1326,7 +1278,6 @@ class PowerPortBulkImportView(BulkImportView):
queryset = PowerPort.objects.all() queryset = PowerPort.objects.all()
model_form = forms.PowerPortCSVForm model_form = forms.PowerPortCSVForm
table = tables.PowerPortTable table = tables.PowerPortTable
default_return_url = 'dcim:powerport_list'
class PowerPortBulkEditView(BulkEditView): class PowerPortBulkEditView(BulkEditView):
@ -1348,7 +1299,6 @@ class PowerPortBulkDeleteView(BulkDeleteView):
queryset = PowerPort.objects.all() queryset = PowerPort.objects.all()
filterset = filters.PowerPortFilterSet filterset = filters.PowerPortFilterSet
table = tables.PowerPortTable table = tables.PowerPortTable
default_return_url = 'dcim:powerport_list'
# #
@ -1387,7 +1337,6 @@ class PowerOutletBulkImportView(BulkImportView):
queryset = PowerOutlet.objects.all() queryset = PowerOutlet.objects.all()
model_form = forms.PowerOutletCSVForm model_form = forms.PowerOutletCSVForm
table = tables.PowerOutletTable table = tables.PowerOutletTable
default_return_url = 'dcim:poweroutlet_list'
class PowerOutletBulkEditView(BulkEditView): class PowerOutletBulkEditView(BulkEditView):
@ -1409,7 +1358,6 @@ class PowerOutletBulkDeleteView(BulkDeleteView):
queryset = PowerOutlet.objects.all() queryset = PowerOutlet.objects.all()
filterset = filters.PowerOutletFilterSet filterset = filters.PowerOutletFilterSet
table = tables.PowerOutletTable table = tables.PowerOutletTable
default_return_url = 'dcim:poweroutlet_list'
# #
@ -1481,7 +1429,6 @@ class InterfaceBulkImportView(BulkImportView):
queryset = Interface.objects.all() queryset = Interface.objects.all()
model_form = forms.InterfaceCSVForm model_form = forms.InterfaceCSVForm
table = tables.InterfaceTable table = tables.InterfaceTable
default_return_url = 'dcim:interface_list'
class InterfaceBulkEditView(BulkEditView): class InterfaceBulkEditView(BulkEditView):
@ -1503,7 +1450,6 @@ class InterfaceBulkDeleteView(BulkDeleteView):
queryset = Interface.objects.all() queryset = Interface.objects.all()
filterset = filters.InterfaceFilterSet filterset = filters.InterfaceFilterSet
table = tables.InterfaceTable table = tables.InterfaceTable
default_return_url = 'dcim:interface_list'
# #
@ -1542,7 +1488,6 @@ class FrontPortBulkImportView(BulkImportView):
queryset = FrontPort.objects.all() queryset = FrontPort.objects.all()
model_form = forms.FrontPortCSVForm model_form = forms.FrontPortCSVForm
table = tables.FrontPortTable table = tables.FrontPortTable
default_return_url = 'dcim:frontport_list'
class FrontPortBulkEditView(BulkEditView): class FrontPortBulkEditView(BulkEditView):
@ -1564,7 +1509,6 @@ class FrontPortBulkDeleteView(BulkDeleteView):
queryset = FrontPort.objects.all() queryset = FrontPort.objects.all()
filterset = filters.FrontPortFilterSet filterset = filters.FrontPortFilterSet
table = tables.FrontPortTable table = tables.FrontPortTable
default_return_url = 'dcim:frontport_list'
# #
@ -1603,7 +1547,6 @@ class RearPortBulkImportView(BulkImportView):
queryset = RearPort.objects.all() queryset = RearPort.objects.all()
model_form = forms.RearPortCSVForm model_form = forms.RearPortCSVForm
table = tables.RearPortTable table = tables.RearPortTable
default_return_url = 'dcim:rearport_list'
class RearPortBulkEditView(BulkEditView): class RearPortBulkEditView(BulkEditView):
@ -1625,7 +1568,6 @@ class RearPortBulkDeleteView(BulkDeleteView):
queryset = RearPort.objects.all() queryset = RearPort.objects.all()
filterset = filters.RearPortFilterSet filterset = filters.RearPortFilterSet
table = tables.RearPortTable table = tables.RearPortTable
default_return_url = 'dcim:rearport_list'
# #
@ -1731,7 +1673,6 @@ class DeviceBayBulkImportView(BulkImportView):
queryset = DeviceBay.objects.all() queryset = DeviceBay.objects.all()
model_form = forms.DeviceBayCSVForm model_form = forms.DeviceBayCSVForm
table = tables.DeviceBayTable table = tables.DeviceBayTable
default_return_url = 'dcim:devicebay_list'
class DeviceBayBulkEditView(BulkEditView): class DeviceBayBulkEditView(BulkEditView):
@ -1749,7 +1690,6 @@ class DeviceBayBulkDeleteView(BulkDeleteView):
queryset = DeviceBay.objects.all() queryset = DeviceBay.objects.all()
filterset = filters.DeviceBayFilterSet filterset = filters.DeviceBayFilterSet
table = tables.DeviceBayTable table = tables.DeviceBayTable
default_return_url = 'dcim:devicebay_list'
# #
@ -1901,7 +1841,6 @@ class CableTraceView(ObjectView):
class CableCreateView(ObjectEditView): class CableCreateView(ObjectEditView):
queryset = Cable.objects.all() queryset = Cable.objects.all()
template_name = 'dcim/cable_connect.html' template_name = 'dcim/cable_connect.html'
default_return_url = 'dcim:cable_list'
def dispatch(self, request, *args, **kwargs): def dispatch(self, request, *args, **kwargs):
@ -1959,19 +1898,16 @@ class CableEditView(ObjectEditView):
queryset = Cable.objects.all() queryset = Cable.objects.all()
model_form = forms.CableForm model_form = forms.CableForm
template_name = 'dcim/cable_edit.html' template_name = 'dcim/cable_edit.html'
default_return_url = 'dcim:cable_list'
class CableDeleteView(ObjectDeleteView): class CableDeleteView(ObjectDeleteView):
queryset = Cable.objects.all() queryset = Cable.objects.all()
default_return_url = 'dcim:cable_list'
class CableBulkImportView(BulkImportView): class CableBulkImportView(BulkImportView):
queryset = Cable.objects.all() queryset = Cable.objects.all()
model_form = forms.CableCSVForm model_form = forms.CableCSVForm
table = tables.CableTable table = tables.CableTable
default_return_url = 'dcim:cable_list'
class CableBulkEditView(BulkEditView): class CableBulkEditView(BulkEditView):
@ -1979,14 +1915,12 @@ class CableBulkEditView(BulkEditView):
filterset = filters.CableFilterSet filterset = filters.CableFilterSet
table = tables.CableTable table = tables.CableTable
form = forms.CableBulkEditForm form = forms.CableBulkEditForm
default_return_url = 'dcim:cable_list'
class CableBulkDeleteView(BulkDeleteView): class CableBulkDeleteView(BulkDeleteView):
queryset = Cable.objects.prefetch_related('termination_a', 'termination_b') queryset = Cable.objects.prefetch_related('termination_a', 'termination_b')
filterset = filters.CableFilterSet filterset = filters.CableFilterSet
table = tables.CableTable table = tables.CableTable
default_return_url = 'dcim:cable_list'
# #
@ -2122,7 +2056,6 @@ class InventoryItemBulkImportView(BulkImportView):
queryset = InventoryItem.objects.all() queryset = InventoryItem.objects.all()
model_form = forms.InventoryItemCSVForm model_form = forms.InventoryItemCSVForm
table = tables.InventoryItemTable table = tables.InventoryItemTable
default_return_url = 'dcim:inventoryitem_list'
class InventoryItemBulkEditView(BulkEditView): class InventoryItemBulkEditView(BulkEditView):
@ -2130,14 +2063,12 @@ class InventoryItemBulkEditView(BulkEditView):
filterset = filters.InventoryItemFilterSet filterset = filters.InventoryItemFilterSet
table = tables.InventoryItemTable table = tables.InventoryItemTable
form = forms.InventoryItemBulkEditForm form = forms.InventoryItemBulkEditForm
default_return_url = 'dcim:inventoryitem_list'
class InventoryItemBulkDeleteView(BulkDeleteView): class InventoryItemBulkDeleteView(BulkDeleteView):
queryset = InventoryItem.objects.prefetch_related('device', 'manufacturer') queryset = InventoryItem.objects.prefetch_related('device', 'manufacturer')
table = tables.InventoryItemTable table = tables.InventoryItemTable
template_name = 'dcim/inventoryitem_bulk_delete.html' template_name = 'dcim/inventoryitem_bulk_delete.html'
default_return_url = 'dcim:inventoryitem_list'
# #
@ -2169,7 +2100,6 @@ class VirtualChassisCreateView(ObjectEditView):
queryset = VirtualChassis.objects.all() queryset = VirtualChassis.objects.all()
model_form = forms.VirtualChassisCreateForm model_form = forms.VirtualChassisCreateForm
template_name = 'dcim/virtualchassis_add.html' template_name = 'dcim/virtualchassis_add.html'
default_return_url = 'dcim:virtualchassis_list'
class VirtualChassisEditView(ObjectPermissionRequiredMixin, GetReturnURLMixin, View): class VirtualChassisEditView(ObjectPermissionRequiredMixin, GetReturnURLMixin, View):
@ -2242,7 +2172,6 @@ class VirtualChassisEditView(ObjectPermissionRequiredMixin, GetReturnURLMixin, V
class VirtualChassisDeleteView(ObjectDeleteView): class VirtualChassisDeleteView(ObjectDeleteView):
queryset = VirtualChassis.objects.all() queryset = VirtualChassis.objects.all()
default_return_url = 'dcim:device_list'
class VirtualChassisAddMemberView(ObjectPermissionRequiredMixin, GetReturnURLMixin, View): class VirtualChassisAddMemberView(ObjectPermissionRequiredMixin, GetReturnURLMixin, View):
@ -2356,7 +2285,6 @@ class VirtualChassisBulkImportView(BulkImportView):
queryset = VirtualChassis.objects.all() queryset = VirtualChassis.objects.all()
model_form = forms.VirtualChassisCSVForm model_form = forms.VirtualChassisCSVForm
table = tables.VirtualChassisTable table = tables.VirtualChassisTable
default_return_url = 'dcim:virtualchassis_list'
class VirtualChassisBulkEditView(BulkEditView): class VirtualChassisBulkEditView(BulkEditView):
@ -2364,14 +2292,12 @@ class VirtualChassisBulkEditView(BulkEditView):
filterset = filters.VirtualChassisFilterSet filterset = filters.VirtualChassisFilterSet
table = tables.VirtualChassisTable table = tables.VirtualChassisTable
form = forms.VirtualChassisBulkEditForm form = forms.VirtualChassisBulkEditForm
default_return_url = 'dcim:virtualchassis_list'
class VirtualChassisBulkDeleteView(BulkDeleteView): class VirtualChassisBulkDeleteView(BulkDeleteView):
queryset = VirtualChassis.objects.all() queryset = VirtualChassis.objects.all()
filterset = filters.VirtualChassisFilterSet filterset = filters.VirtualChassisFilterSet
table = tables.VirtualChassisTable table = tables.VirtualChassisTable
default_return_url = 'dcim:virtualchassis_list'
# #
@ -2411,19 +2337,16 @@ class PowerPanelView(ObjectView):
class PowerPanelEditView(ObjectEditView): class PowerPanelEditView(ObjectEditView):
queryset = PowerPanel.objects.all() queryset = PowerPanel.objects.all()
model_form = forms.PowerPanelForm model_form = forms.PowerPanelForm
default_return_url = 'dcim:powerpanel_list'
class PowerPanelDeleteView(ObjectDeleteView): class PowerPanelDeleteView(ObjectDeleteView):
queryset = PowerPanel.objects.all() queryset = PowerPanel.objects.all()
default_return_url = 'dcim:powerpanel_list'
class PowerPanelBulkImportView(BulkImportView): class PowerPanelBulkImportView(BulkImportView):
queryset = PowerPanel.objects.all() queryset = PowerPanel.objects.all()
model_form = forms.PowerPanelCSVForm model_form = forms.PowerPanelCSVForm
table = tables.PowerPanelTable table = tables.PowerPanelTable
default_return_url = 'dcim:powerpanel_list'
class PowerPanelBulkEditView(BulkEditView): class PowerPanelBulkEditView(BulkEditView):
@ -2431,7 +2354,6 @@ class PowerPanelBulkEditView(BulkEditView):
filterset = filters.PowerPanelFilterSet filterset = filters.PowerPanelFilterSet
table = tables.PowerPanelTable table = tables.PowerPanelTable
form = forms.PowerPanelBulkEditForm form = forms.PowerPanelBulkEditForm
default_return_url = 'dcim:powerpanel_list'
class PowerPanelBulkDeleteView(BulkDeleteView): class PowerPanelBulkDeleteView(BulkDeleteView):
@ -2442,7 +2364,6 @@ class PowerPanelBulkDeleteView(BulkDeleteView):
) )
filterset = filters.PowerPanelFilterSet filterset = filters.PowerPanelFilterSet
table = tables.PowerPanelTable table = tables.PowerPanelTable
default_return_url = 'dcim:powerpanel_list'
# #
@ -2474,19 +2395,16 @@ class PowerFeedEditView(ObjectEditView):
queryset = PowerFeed.objects.all() queryset = PowerFeed.objects.all()
model_form = forms.PowerFeedForm model_form = forms.PowerFeedForm
template_name = 'dcim/powerfeed_edit.html' template_name = 'dcim/powerfeed_edit.html'
default_return_url = 'dcim:powerfeed_list'
class PowerFeedDeleteView(ObjectDeleteView): class PowerFeedDeleteView(ObjectDeleteView):
queryset = PowerFeed.objects.all() queryset = PowerFeed.objects.all()
default_return_url = 'dcim:powerfeed_list'
class PowerFeedBulkImportView(BulkImportView): class PowerFeedBulkImportView(BulkImportView):
queryset = PowerFeed.objects.all() queryset = PowerFeed.objects.all()
model_form = forms.PowerFeedCSVForm model_form = forms.PowerFeedCSVForm
table = tables.PowerFeedTable table = tables.PowerFeedTable
default_return_url = 'dcim:powerfeed_list'
class PowerFeedBulkEditView(BulkEditView): class PowerFeedBulkEditView(BulkEditView):
@ -2494,11 +2412,9 @@ class PowerFeedBulkEditView(BulkEditView):
filterset = filters.PowerFeedFilterSet filterset = filters.PowerFeedFilterSet
table = tables.PowerFeedTable table = tables.PowerFeedTable
form = forms.PowerFeedBulkEditForm form = forms.PowerFeedBulkEditForm
default_return_url = 'dcim:powerfeed_list'
class PowerFeedBulkDeleteView(BulkDeleteView): class PowerFeedBulkDeleteView(BulkDeleteView):
queryset = PowerFeed.objects.prefetch_related('power_panel', 'rack') queryset = PowerFeed.objects.prefetch_related('power_panel', 'rack')
filterset = filters.PowerFeedFilterSet filterset = filters.PowerFeedFilterSet
table = tables.PowerFeedTable table = tables.PowerFeedTable
default_return_url = 'dcim:powerfeed_list'

View File

@ -70,20 +70,17 @@ class TagView(ObjectView):
class TagEditView(ObjectEditView): class TagEditView(ObjectEditView):
queryset = Tag.objects.all() queryset = Tag.objects.all()
model_form = forms.TagForm model_form = forms.TagForm
default_return_url = 'extras:tag_list'
template_name = 'extras/tag_edit.html' template_name = 'extras/tag_edit.html'
class TagDeleteView(ObjectDeleteView): class TagDeleteView(ObjectDeleteView):
queryset = Tag.objects.all() queryset = Tag.objects.all()
default_return_url = 'extras:tag_list'
class TagBulkImportView(BulkImportView): class TagBulkImportView(BulkImportView):
queryset = Tag.objects.all() queryset = Tag.objects.all()
model_form = forms.TagCSVForm model_form = forms.TagCSVForm
table = tables.TagTable table = tables.TagTable
default_return_url = 'extras:tag_list'
class TagBulkEditView(BulkEditView): class TagBulkEditView(BulkEditView):
@ -94,7 +91,6 @@ class TagBulkEditView(BulkEditView):
) )
table = tables.TagTable table = tables.TagTable
form = forms.TagBulkEditForm form = forms.TagBulkEditForm
default_return_url = 'extras:tag_list'
class TagBulkDeleteView(BulkDeleteView): class TagBulkDeleteView(BulkDeleteView):
@ -104,7 +100,6 @@ class TagBulkDeleteView(BulkDeleteView):
'name' 'name'
) )
table = tables.TagTable table = tables.TagTable
default_return_url = 'extras:tag_list'
# #
@ -156,7 +151,6 @@ class ConfigContextView(ObjectView):
class ConfigContextEditView(ObjectEditView): class ConfigContextEditView(ObjectEditView):
queryset = ConfigContext.objects.all() queryset = ConfigContext.objects.all()
model_form = forms.ConfigContextForm model_form = forms.ConfigContextForm
default_return_url = 'extras:configcontext_list'
template_name = 'extras/configcontext_edit.html' template_name = 'extras/configcontext_edit.html'
@ -165,18 +159,15 @@ class ConfigContextBulkEditView(BulkEditView):
filterset = filters.ConfigContextFilterSet filterset = filters.ConfigContextFilterSet
table = tables.ConfigContextTable table = tables.ConfigContextTable
form = forms.ConfigContextBulkEditForm form = forms.ConfigContextBulkEditForm
default_return_url = 'extras:configcontext_list'
class ConfigContextDeleteView(ObjectDeleteView): class ConfigContextDeleteView(ObjectDeleteView):
queryset = ConfigContext.objects.all() queryset = ConfigContext.objects.all()
default_return_url = 'extras:configcontext_list'
class ConfigContextBulkDeleteView(BulkDeleteView): class ConfigContextBulkDeleteView(BulkDeleteView):
queryset = ConfigContext.objects.all() queryset = ConfigContext.objects.all()
table = tables.ConfigContextTable table = tables.ConfigContextTable
default_return_url = 'extras:configcontext_list'
class ObjectConfigContextView(ObjectView): class ObjectConfigContextView(ObjectView):

View File

@ -48,19 +48,16 @@ class VRFEditView(ObjectEditView):
queryset = VRF.objects.all() queryset = VRF.objects.all()
model_form = forms.VRFForm model_form = forms.VRFForm
template_name = 'ipam/vrf_edit.html' template_name = 'ipam/vrf_edit.html'
default_return_url = 'ipam:vrf_list'
class VRFDeleteView(ObjectDeleteView): class VRFDeleteView(ObjectDeleteView):
queryset = VRF.objects.all() queryset = VRF.objects.all()
default_return_url = 'ipam:vrf_list'
class VRFBulkImportView(BulkImportView): class VRFBulkImportView(BulkImportView):
queryset = VRF.objects.all() queryset = VRF.objects.all()
model_form = forms.VRFCSVForm model_form = forms.VRFCSVForm
table = tables.VRFTable table = tables.VRFTable
default_return_url = 'ipam:vrf_list'
class VRFBulkEditView(BulkEditView): class VRFBulkEditView(BulkEditView):
@ -68,14 +65,12 @@ class VRFBulkEditView(BulkEditView):
filterset = filters.VRFFilterSet filterset = filters.VRFFilterSet
table = tables.VRFTable table = tables.VRFTable
form = forms.VRFBulkEditForm form = forms.VRFBulkEditForm
default_return_url = 'ipam:vrf_list'
class VRFBulkDeleteView(BulkDeleteView): class VRFBulkDeleteView(BulkDeleteView):
queryset = VRF.objects.prefetch_related('tenant') queryset = VRF.objects.prefetch_related('tenant')
filterset = filters.VRFFilterSet filterset = filters.VRFFilterSet
table = tables.VRFTable table = tables.VRFTable
default_return_url = 'ipam:vrf_list'
# #
@ -163,21 +158,18 @@ class RIRListView(ObjectListView):
class RIREditView(ObjectEditView): class RIREditView(ObjectEditView):
queryset = RIR.objects.all() queryset = RIR.objects.all()
model_form = forms.RIRForm model_form = forms.RIRForm
default_return_url = 'ipam:rir_list'
class RIRBulkImportView(BulkImportView): class RIRBulkImportView(BulkImportView):
queryset = RIR.objects.all() queryset = RIR.objects.all()
model_form = forms.RIRCSVForm model_form = forms.RIRCSVForm
table = tables.RIRTable table = tables.RIRTable
default_return_url = 'ipam:rir_list'
class RIRBulkDeleteView(BulkDeleteView): class RIRBulkDeleteView(BulkDeleteView):
queryset = RIR.objects.annotate(aggregate_count=Count('aggregates')) queryset = RIR.objects.annotate(aggregate_count=Count('aggregates'))
filterset = filters.RIRFilterSet filterset = filters.RIRFilterSet
table = tables.RIRTable table = tables.RIRTable
default_return_url = 'ipam:rir_list'
# #
@ -259,19 +251,16 @@ class AggregateEditView(ObjectEditView):
queryset = Aggregate.objects.all() queryset = Aggregate.objects.all()
model_form = forms.AggregateForm model_form = forms.AggregateForm
template_name = 'ipam/aggregate_edit.html' template_name = 'ipam/aggregate_edit.html'
default_return_url = 'ipam:aggregate_list'
class AggregateDeleteView(ObjectDeleteView): class AggregateDeleteView(ObjectDeleteView):
queryset = Aggregate.objects.all() queryset = Aggregate.objects.all()
default_return_url = 'ipam:aggregate_list'
class AggregateBulkImportView(BulkImportView): class AggregateBulkImportView(BulkImportView):
queryset = Aggregate.objects.all() queryset = Aggregate.objects.all()
model_form = forms.AggregateCSVForm model_form = forms.AggregateCSVForm
table = tables.AggregateTable table = tables.AggregateTable
default_return_url = 'ipam:aggregate_list'
class AggregateBulkEditView(BulkEditView): class AggregateBulkEditView(BulkEditView):
@ -279,14 +268,12 @@ class AggregateBulkEditView(BulkEditView):
filterset = filters.AggregateFilterSet filterset = filters.AggregateFilterSet
table = tables.AggregateTable table = tables.AggregateTable
form = forms.AggregateBulkEditForm form = forms.AggregateBulkEditForm
default_return_url = 'ipam:aggregate_list'
class AggregateBulkDeleteView(BulkDeleteView): class AggregateBulkDeleteView(BulkDeleteView):
queryset = Aggregate.objects.prefetch_related('rir') queryset = Aggregate.objects.prefetch_related('rir')
filterset = filters.AggregateFilterSet filterset = filters.AggregateFilterSet
table = tables.AggregateTable table = tables.AggregateTable
default_return_url = 'ipam:aggregate_list'
# #
@ -301,20 +288,17 @@ class RoleListView(ObjectListView):
class RoleEditView(ObjectEditView): class RoleEditView(ObjectEditView):
queryset = Role.objects.all() queryset = Role.objects.all()
model_form = forms.RoleForm model_form = forms.RoleForm
default_return_url = 'ipam:role_list'
class RoleBulkImportView(BulkImportView): class RoleBulkImportView(BulkImportView):
queryset = Role.objects.all() queryset = Role.objects.all()
model_form = forms.RoleCSVForm model_form = forms.RoleCSVForm
table = tables.RoleTable table = tables.RoleTable
default_return_url = 'ipam:role_list'
class RoleBulkDeleteView(BulkDeleteView): class RoleBulkDeleteView(BulkDeleteView):
queryset = Role.objects.all() queryset = Role.objects.all()
table = tables.RoleTable table = tables.RoleTable
default_return_url = 'ipam:role_list'
# #
@ -470,20 +454,17 @@ class PrefixEditView(ObjectEditView):
queryset = Prefix.objects.all() queryset = Prefix.objects.all()
model_form = forms.PrefixForm model_form = forms.PrefixForm
template_name = 'ipam/prefix_edit.html' template_name = 'ipam/prefix_edit.html'
default_return_url = 'ipam:prefix_list'
class PrefixDeleteView(ObjectDeleteView): class PrefixDeleteView(ObjectDeleteView):
queryset = Prefix.objects.all() queryset = Prefix.objects.all()
template_name = 'ipam/prefix_delete.html' template_name = 'ipam/prefix_delete.html'
default_return_url = 'ipam:prefix_list'
class PrefixBulkImportView(BulkImportView): class PrefixBulkImportView(BulkImportView):
queryset = Prefix.objects.all() queryset = Prefix.objects.all()
model_form = forms.PrefixCSVForm model_form = forms.PrefixCSVForm
table = tables.PrefixTable table = tables.PrefixTable
default_return_url = 'ipam:prefix_list'
class PrefixBulkEditView(BulkEditView): class PrefixBulkEditView(BulkEditView):
@ -491,14 +472,12 @@ class PrefixBulkEditView(BulkEditView):
filterset = filters.PrefixFilterSet filterset = filters.PrefixFilterSet
table = tables.PrefixTable table = tables.PrefixTable
form = forms.PrefixBulkEditForm form = forms.PrefixBulkEditForm
default_return_url = 'ipam:prefix_list'
class PrefixBulkDeleteView(BulkDeleteView): class PrefixBulkDeleteView(BulkDeleteView):
queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role') queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role')
filterset = filters.PrefixFilterSet filterset = filters.PrefixFilterSet
table = tables.PrefixTable table = tables.PrefixTable
default_return_url = 'ipam:prefix_list'
# #
@ -569,7 +548,6 @@ class IPAddressEditView(ObjectEditView):
queryset = IPAddress.objects.all() queryset = IPAddress.objects.all()
model_form = forms.IPAddressForm model_form = forms.IPAddressForm
template_name = 'ipam/ipaddress_edit.html' template_name = 'ipam/ipaddress_edit.html'
default_return_url = 'ipam:ipaddress_list'
def alter_obj(self, obj, request, url_args, url_kwargs): def alter_obj(self, obj, request, url_args, url_kwargs):
@ -630,7 +608,6 @@ class IPAddressAssignView(ObjectView):
class IPAddressDeleteView(ObjectDeleteView): class IPAddressDeleteView(ObjectDeleteView):
queryset = IPAddress.objects.all() queryset = IPAddress.objects.all()
default_return_url = 'ipam:ipaddress_list'
class IPAddressBulkCreateView(BulkCreateView): class IPAddressBulkCreateView(BulkCreateView):
@ -639,14 +616,12 @@ class IPAddressBulkCreateView(BulkCreateView):
model_form = forms.IPAddressBulkAddForm model_form = forms.IPAddressBulkAddForm
pattern_target = 'address' pattern_target = 'address'
template_name = 'ipam/ipaddress_bulk_add.html' template_name = 'ipam/ipaddress_bulk_add.html'
default_return_url = 'ipam:ipaddress_list'
class IPAddressBulkImportView(BulkImportView): class IPAddressBulkImportView(BulkImportView):
queryset = IPAddress.objects.all() queryset = IPAddress.objects.all()
model_form = forms.IPAddressCSVForm model_form = forms.IPAddressCSVForm
table = tables.IPAddressTable table = tables.IPAddressTable
default_return_url = 'ipam:ipaddress_list'
class IPAddressBulkEditView(BulkEditView): class IPAddressBulkEditView(BulkEditView):
@ -654,14 +629,12 @@ class IPAddressBulkEditView(BulkEditView):
filterset = filters.IPAddressFilterSet filterset = filters.IPAddressFilterSet
table = tables.IPAddressTable table = tables.IPAddressTable
form = forms.IPAddressBulkEditForm form = forms.IPAddressBulkEditForm
default_return_url = 'ipam:ipaddress_list'
class IPAddressBulkDeleteView(BulkDeleteView): class IPAddressBulkDeleteView(BulkDeleteView):
queryset = IPAddress.objects.prefetch_related('vrf__tenant', 'tenant') queryset = IPAddress.objects.prefetch_related('vrf__tenant', 'tenant')
filterset = filters.IPAddressFilterSet filterset = filters.IPAddressFilterSet
table = tables.IPAddressTable table = tables.IPAddressTable
default_return_url = 'ipam:ipaddress_list'
# #
@ -678,21 +651,18 @@ class VLANGroupListView(ObjectListView):
class VLANGroupEditView(ObjectEditView): class VLANGroupEditView(ObjectEditView):
queryset = VLANGroup.objects.all() queryset = VLANGroup.objects.all()
model_form = forms.VLANGroupForm model_form = forms.VLANGroupForm
default_return_url = 'ipam:vlangroup_list'
class VLANGroupBulkImportView(BulkImportView): class VLANGroupBulkImportView(BulkImportView):
queryset = VLANGroup.objects.all() queryset = VLANGroup.objects.all()
model_form = forms.VLANGroupCSVForm model_form = forms.VLANGroupCSVForm
table = tables.VLANGroupTable table = tables.VLANGroupTable
default_return_url = 'ipam:vlangroup_list'
class VLANGroupBulkDeleteView(BulkDeleteView): class VLANGroupBulkDeleteView(BulkDeleteView):
queryset = VLANGroup.objects.prefetch_related('site').annotate(vlan_count=Count('vlans')) queryset = VLANGroup.objects.prefetch_related('site').annotate(vlan_count=Count('vlans'))
filterset = filters.VLANGroupFilterSet filterset = filters.VLANGroupFilterSet
table = tables.VLANGroupTable table = tables.VLANGroupTable
default_return_url = 'ipam:vlangroup_list'
class VLANGroupVLANsView(ObjectView): class VLANGroupVLANsView(ObjectView):
@ -789,19 +759,16 @@ class VLANEditView(ObjectEditView):
queryset = VLAN.objects.all() queryset = VLAN.objects.all()
model_form = forms.VLANForm model_form = forms.VLANForm
template_name = 'ipam/vlan_edit.html' template_name = 'ipam/vlan_edit.html'
default_return_url = 'ipam:vlan_list'
class VLANDeleteView(ObjectDeleteView): class VLANDeleteView(ObjectDeleteView):
queryset = VLAN.objects.all() queryset = VLAN.objects.all()
default_return_url = 'ipam:vlan_list'
class VLANBulkImportView(BulkImportView): class VLANBulkImportView(BulkImportView):
queryset = VLAN.objects.all() queryset = VLAN.objects.all()
model_form = forms.VLANCSVForm model_form = forms.VLANCSVForm
table = tables.VLANTable table = tables.VLANTable
default_return_url = 'ipam:vlan_list'
class VLANBulkEditView(BulkEditView): class VLANBulkEditView(BulkEditView):
@ -809,14 +776,12 @@ class VLANBulkEditView(BulkEditView):
filterset = filters.VLANFilterSet filterset = filters.VLANFilterSet
table = tables.VLANTable table = tables.VLANTable
form = forms.VLANBulkEditForm form = forms.VLANBulkEditForm
default_return_url = 'ipam:vlan_list'
class VLANBulkDeleteView(BulkDeleteView): class VLANBulkDeleteView(BulkDeleteView):
queryset = VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role') queryset = VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role')
filterset = filters.VLANFilterSet filterset = filters.VLANFilterSet
table = tables.VLANTable table = tables.VLANTable
default_return_url = 'ipam:vlan_list'
# #
@ -863,7 +828,6 @@ class ServiceBulkImportView(BulkImportView):
queryset = Service.objects.all() queryset = Service.objects.all()
model_form = forms.ServiceCSVForm model_form = forms.ServiceCSVForm
table = tables.ServiceTable table = tables.ServiceTable
default_return_url = 'ipam:service_list'
class ServiceDeleteView(ObjectDeleteView): class ServiceDeleteView(ObjectDeleteView):
@ -875,11 +839,9 @@ class ServiceBulkEditView(BulkEditView):
filterset = filters.ServiceFilterSet filterset = filters.ServiceFilterSet
table = tables.ServiceTable table = tables.ServiceTable
form = forms.ServiceBulkEditForm form = forms.ServiceBulkEditForm
default_return_url = 'ipam:service_list'
class ServiceBulkDeleteView(BulkDeleteView): class ServiceBulkDeleteView(BulkDeleteView):
queryset = Service.objects.prefetch_related('device', 'virtual_machine') queryset = Service.objects.prefetch_related('device', 'virtual_machine')
filterset = filters.ServiceFilterSet filterset = filters.ServiceFilterSet
table = tables.ServiceTable table = tables.ServiceTable
default_return_url = 'ipam:service_list'

View File

@ -36,20 +36,17 @@ class SecretRoleListView(ObjectListView):
class SecretRoleEditView(ObjectEditView): class SecretRoleEditView(ObjectEditView):
queryset = SecretRole.objects.all() queryset = SecretRole.objects.all()
model_form = forms.SecretRoleForm model_form = forms.SecretRoleForm
default_return_url = 'secrets:secretrole_list'
class SecretRoleBulkImportView(BulkImportView): class SecretRoleBulkImportView(BulkImportView):
queryset = SecretRole.objects.all() queryset = SecretRole.objects.all()
model_form = forms.SecretRoleCSVForm model_form = forms.SecretRoleCSVForm
table = tables.SecretRoleTable table = tables.SecretRoleTable
default_return_url = 'secrets:secretrole_list'
class SecretRoleBulkDeleteView(BulkDeleteView): class SecretRoleBulkDeleteView(BulkDeleteView):
queryset = SecretRole.objects.annotate(secret_count=Count('secrets')) queryset = SecretRole.objects.annotate(secret_count=Count('secrets'))
table = tables.SecretRoleTable table = tables.SecretRoleTable
default_return_url = 'secrets:secretrole_list'
# #
@ -147,7 +144,6 @@ class SecretEditView(ObjectEditView):
class SecretDeleteView(ObjectDeleteView): class SecretDeleteView(ObjectDeleteView):
queryset = Secret.objects.all() queryset = Secret.objects.all()
default_return_url = 'secrets:secret_list'
class SecretBulkImportView(BulkImportView): class SecretBulkImportView(BulkImportView):
@ -155,7 +151,6 @@ class SecretBulkImportView(BulkImportView):
model_form = forms.SecretCSVForm model_form = forms.SecretCSVForm
table = tables.SecretTable table = tables.SecretTable
template_name = 'secrets/secret_import.html' template_name = 'secrets/secret_import.html'
default_return_url = 'secrets:secret_list'
widget_attrs = {'class': 'requires-session-key'} widget_attrs = {'class': 'requires-session-key'}
master_key = None master_key = None
@ -203,11 +198,9 @@ class SecretBulkEditView(BulkEditView):
filterset = filters.SecretFilterSet filterset = filters.SecretFilterSet
table = tables.SecretTable table = tables.SecretTable
form = forms.SecretBulkEditForm form = forms.SecretBulkEditForm
default_return_url = 'secrets:secret_list'
class SecretBulkDeleteView(BulkDeleteView): class SecretBulkDeleteView(BulkDeleteView):
queryset = Secret.objects.prefetch_related('role', 'device') queryset = Secret.objects.prefetch_related('role', 'device')
filterset = filters.SecretFilterSet filterset = filters.SecretFilterSet
table = tables.SecretTable table = tables.SecretTable
default_return_url = 'secrets:secret_list'

View File

@ -30,20 +30,17 @@ class TenantGroupListView(ObjectListView):
class TenantGroupEditView(ObjectEditView): class TenantGroupEditView(ObjectEditView):
queryset = TenantGroup.objects.all() queryset = TenantGroup.objects.all()
model_form = forms.TenantGroupForm model_form = forms.TenantGroupForm
default_return_url = 'tenancy:tenantgroup_list'
class TenantGroupBulkImportView(BulkImportView): class TenantGroupBulkImportView(BulkImportView):
queryset = TenantGroup.objects.all() queryset = TenantGroup.objects.all()
model_form = forms.TenantGroupCSVForm model_form = forms.TenantGroupCSVForm
table = tables.TenantGroupTable table = tables.TenantGroupTable
default_return_url = 'tenancy:tenantgroup_list'
class TenantGroupBulkDeleteView(BulkDeleteView): class TenantGroupBulkDeleteView(BulkDeleteView):
queryset = TenantGroup.objects.annotate(tenant_count=Count('tenants')) queryset = TenantGroup.objects.annotate(tenant_count=Count('tenants'))
table = tables.TenantGroupTable table = tables.TenantGroupTable
default_return_url = 'tenancy:tenantgroup_list'
# #
@ -87,19 +84,16 @@ class TenantEditView(ObjectEditView):
queryset = Tenant.objects.all() queryset = Tenant.objects.all()
model_form = forms.TenantForm model_form = forms.TenantForm
template_name = 'tenancy/tenant_edit.html' template_name = 'tenancy/tenant_edit.html'
default_return_url = 'tenancy:tenant_list'
class TenantDeleteView(ObjectDeleteView): class TenantDeleteView(ObjectDeleteView):
queryset = Tenant.objects.all() queryset = Tenant.objects.all()
default_return_url = 'tenancy:tenant_list'
class TenantBulkImportView(BulkImportView): class TenantBulkImportView(BulkImportView):
queryset = Tenant.objects.all() queryset = Tenant.objects.all()
model_form = forms.TenantCSVForm model_form = forms.TenantCSVForm
table = tables.TenantTable table = tables.TenantTable
default_return_url = 'tenancy:tenant_list'
class TenantBulkEditView(BulkEditView): class TenantBulkEditView(BulkEditView):
@ -107,11 +101,9 @@ class TenantBulkEditView(BulkEditView):
filterset = filters.TenantFilterSet filterset = filters.TenantFilterSet
table = tables.TenantTable table = tables.TenantTable
form = forms.TenantBulkEditForm form = forms.TenantBulkEditForm
default_return_url = 'tenancy:tenant_list'
class TenantBulkDeleteView(BulkDeleteView): class TenantBulkDeleteView(BulkDeleteView):
queryset = Tenant.objects.prefetch_related('group') queryset = Tenant.objects.prefetch_related('group')
filterset = filters.TenantFilterSet filterset = filters.TenantFilterSet
table = tables.TenantTable table = tables.TenantTable
default_return_url = 'tenancy:tenant_list'

View File

@ -16,6 +16,7 @@ from django.shortcuts import get_object_or_404, redirect, render
from django.template import loader from django.template import loader
from django.template.exceptions import TemplateDoesNotExist from django.template.exceptions import TemplateDoesNotExist
from django.urls import reverse from django.urls import reverse
from django.urls.exceptions import NoReverseMatch
from django.utils.decorators import method_decorator from django.utils.decorators import method_decorator
from django.utils.html import escape from django.utils.html import escape
from django.utils.http import is_safe_url from django.utils.http import is_safe_url
@ -86,7 +87,7 @@ class ObjectPermissionRequiredMixin(AccessMixin):
return super().dispatch(request, *args, **kwargs) 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. Provides logic for determining where a user should be redirected after processing a form.
""" """
@ -101,13 +102,21 @@ class GetReturnURLMixin(object):
return query_param return query_param
# Next, check if the object being modified (if any) has an absolute URL. # 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() return obj.get_absolute_url()
# Fall back to the default URL (if specified) for the view. # 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) 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. # If all else fails, return home. Ideally this should never happen.
return reverse('home') return reverse('home')

View File

@ -29,20 +29,17 @@ class ClusterTypeListView(ObjectListView):
class ClusterTypeEditView(ObjectEditView): class ClusterTypeEditView(ObjectEditView):
queryset = ClusterType.objects.all() queryset = ClusterType.objects.all()
model_form = forms.ClusterTypeForm model_form = forms.ClusterTypeForm
default_return_url = 'virtualization:clustertype_list'
class ClusterTypeBulkImportView(BulkImportView): class ClusterTypeBulkImportView(BulkImportView):
queryset = ClusterType.objects.all() queryset = ClusterType.objects.all()
model_form = forms.ClusterTypeCSVForm model_form = forms.ClusterTypeCSVForm
table = tables.ClusterTypeTable table = tables.ClusterTypeTable
default_return_url = 'virtualization:clustertype_list'
class ClusterTypeBulkDeleteView(BulkDeleteView): class ClusterTypeBulkDeleteView(BulkDeleteView):
queryset = ClusterType.objects.annotate(cluster_count=Count('clusters')) queryset = ClusterType.objects.annotate(cluster_count=Count('clusters'))
table = tables.ClusterTypeTable table = tables.ClusterTypeTable
default_return_url = 'virtualization:clustertype_list'
# #
@ -57,20 +54,17 @@ class ClusterGroupListView(ObjectListView):
class ClusterGroupEditView(ObjectEditView): class ClusterGroupEditView(ObjectEditView):
queryset = ClusterGroup.objects.all() queryset = ClusterGroup.objects.all()
model_form = forms.ClusterGroupForm model_form = forms.ClusterGroupForm
default_return_url = 'virtualization:clustergroup_list'
class ClusterGroupBulkImportView(BulkImportView): class ClusterGroupBulkImportView(BulkImportView):
queryset = ClusterGroup.objects.all() queryset = ClusterGroup.objects.all()
model_form = forms.ClusterGroupCSVForm model_form = forms.ClusterGroupCSVForm
table = tables.ClusterGroupTable table = tables.ClusterGroupTable
default_return_url = 'virtualization:clustergroup_list'
class ClusterGroupBulkDeleteView(BulkDeleteView): class ClusterGroupBulkDeleteView(BulkDeleteView):
queryset = ClusterGroup.objects.annotate(cluster_count=Count('clusters')) queryset = ClusterGroup.objects.annotate(cluster_count=Count('clusters'))
table = tables.ClusterGroupTable table = tables.ClusterGroupTable
default_return_url = 'virtualization:clustergroup_list'
# #
@ -114,14 +108,12 @@ class ClusterEditView(ObjectEditView):
class ClusterDeleteView(ObjectDeleteView): class ClusterDeleteView(ObjectDeleteView):
queryset = Cluster.objects.all() queryset = Cluster.objects.all()
default_return_url = 'virtualization:cluster_list'
class ClusterBulkImportView(BulkImportView): class ClusterBulkImportView(BulkImportView):
queryset = Cluster.objects.all() queryset = Cluster.objects.all()
model_form = forms.ClusterCSVForm model_form = forms.ClusterCSVForm
table = tables.ClusterTable table = tables.ClusterTable
default_return_url = 'virtualization:cluster_list'
class ClusterBulkEditView(BulkEditView): class ClusterBulkEditView(BulkEditView):
@ -129,14 +121,12 @@ class ClusterBulkEditView(BulkEditView):
filterset = filters.ClusterFilterSet filterset = filters.ClusterFilterSet
table = tables.ClusterTable table = tables.ClusterTable
form = forms.ClusterBulkEditForm form = forms.ClusterBulkEditForm
default_return_url = 'virtualization:cluster_list'
class ClusterBulkDeleteView(BulkDeleteView): class ClusterBulkDeleteView(BulkDeleteView):
queryset = Cluster.objects.prefetch_related('type', 'group', 'site') queryset = Cluster.objects.prefetch_related('type', 'group', 'site')
filterset = filters.ClusterFilterSet filterset = filters.ClusterFilterSet
table = tables.ClusterTable table = tables.ClusterTable
default_return_url = 'virtualization:cluster_list'
class ClusterAddDevicesView(ObjectEditView): class ClusterAddDevicesView(ObjectEditView):
@ -266,19 +256,16 @@ class VirtualMachineEditView(ObjectEditView):
queryset = VirtualMachine.objects.all() queryset = VirtualMachine.objects.all()
model_form = forms.VirtualMachineForm model_form = forms.VirtualMachineForm
template_name = 'virtualization/virtualmachine_edit.html' template_name = 'virtualization/virtualmachine_edit.html'
default_return_url = 'virtualization:virtualmachine_list'
class VirtualMachineDeleteView(ObjectDeleteView): class VirtualMachineDeleteView(ObjectDeleteView):
queryset = VirtualMachine.objects.all() queryset = VirtualMachine.objects.all()
default_return_url = 'virtualization:virtualmachine_list'
class VirtualMachineBulkImportView(BulkImportView): class VirtualMachineBulkImportView(BulkImportView):
queryset = VirtualMachine.objects.all() queryset = VirtualMachine.objects.all()
model_form = forms.VirtualMachineCSVForm model_form = forms.VirtualMachineCSVForm
table = tables.VirtualMachineTable table = tables.VirtualMachineTable
default_return_url = 'virtualization:virtualmachine_list'
class VirtualMachineBulkEditView(BulkEditView): class VirtualMachineBulkEditView(BulkEditView):
@ -286,14 +273,12 @@ class VirtualMachineBulkEditView(BulkEditView):
filterset = filters.VirtualMachineFilterSet filterset = filters.VirtualMachineFilterSet
table = tables.VirtualMachineTable table = tables.VirtualMachineTable
form = forms.VirtualMachineBulkEditForm form = forms.VirtualMachineBulkEditForm
default_return_url = 'virtualization:virtualmachine_list'
class VirtualMachineBulkDeleteView(BulkDeleteView): class VirtualMachineBulkDeleteView(BulkDeleteView):
queryset = VirtualMachine.objects.prefetch_related('cluster', 'tenant', 'role') queryset = VirtualMachine.objects.prefetch_related('cluster', 'tenant', 'role')
filterset = filters.VirtualMachineFilterSet filterset = filters.VirtualMachineFilterSet
table = tables.VirtualMachineTable table = tables.VirtualMachineTable
default_return_url = 'virtualization:virtualmachine_list'
# #
@ -364,7 +349,6 @@ class VMInterfaceBulkImportView(BulkImportView):
queryset = VMInterface.objects.all() queryset = VMInterface.objects.all()
model_form = forms.VMInterfaceCSVForm model_form = forms.VMInterfaceCSVForm
table = tables.VMInterfaceTable table = tables.VMInterfaceTable
default_return_url = 'virtualization:vminterface_list'
class VMInterfaceBulkEditView(BulkEditView): class VMInterfaceBulkEditView(BulkEditView):
@ -395,4 +379,3 @@ class VirtualMachineBulkAddInterfaceView(BulkComponentCreateView):
model_form = forms.VMInterfaceForm model_form = forms.VMInterfaceForm
filterset = filters.VirtualMachineFilterSet filterset = filters.VirtualMachineFilterSet
table = tables.VirtualMachineTable table = tables.VirtualMachineTable
default_return_url = 'virtualization:virtualmachine_list'