Merge branch 'develop-2.9' into 554-object-permissions

This commit is contained in:
Jeremy Stretch 2020-05-11 12:48:36 -04:00
commit 06aca2e1d5
8 changed files with 115 additions and 114 deletions

View File

@ -62,7 +62,7 @@ class ProviderView(PermissionRequiredMixin, View):
class ProviderCreateView(PermissionRequiredMixin, ObjectEditView): class ProviderCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'circuits.add_provider' permission_required = 'circuits.add_provider'
model = Provider 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' default_return_url = 'circuits:provider_list'
@ -74,7 +74,7 @@ class ProviderEditView(ProviderCreateView):
class ProviderDeleteView(PermissionRequiredMixin, ObjectDeleteView): class ProviderDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'circuits.delete_provider' permission_required = 'circuits.delete_provider'
model = Provider queryset = Provider.objects.all()
default_return_url = 'circuits:provider_list' default_return_url = 'circuits:provider_list'
@ -114,7 +114,7 @@ class CircuitTypeListView(PermissionRequiredMixin, ObjectListView):
class CircuitTypeCreateView(PermissionRequiredMixin, ObjectEditView): class CircuitTypeCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'circuits.add_circuittype' permission_required = 'circuits.add_circuittype'
model = CircuitType queryset = CircuitType.objects.all()
model_form = forms.CircuitTypeForm model_form = forms.CircuitTypeForm
default_return_url = 'circuits:circuittype_list' default_return_url = 'circuits:circuittype_list'
@ -178,7 +178,7 @@ class CircuitView(PermissionRequiredMixin, View):
class CircuitCreateView(PermissionRequiredMixin, ObjectEditView): class CircuitCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'circuits.add_circuit' permission_required = 'circuits.add_circuit'
model = Circuit 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' default_return_url = 'circuits:circuit_list'
@ -190,7 +190,7 @@ class CircuitEditView(CircuitCreateView):
class CircuitDeleteView(PermissionRequiredMixin, ObjectDeleteView): class CircuitDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'circuits.delete_circuit' permission_required = 'circuits.delete_circuit'
model = Circuit queryset = Circuit.objects.all()
default_return_url = 'circuits:circuit_list' default_return_url = 'circuits:circuit_list'
@ -273,7 +273,7 @@ def circuit_terminations_swap(request, pk):
class CircuitTerminationCreateView(PermissionRequiredMixin, ObjectEditView): class CircuitTerminationCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'circuits.add_circuittermination' permission_required = 'circuits.add_circuittermination'
model = CircuitTermination queryset = CircuitTermination.objects.all()
model_form = forms.CircuitTerminationForm model_form = forms.CircuitTerminationForm
template_name = 'circuits/circuittermination_edit.html' template_name = 'circuits/circuittermination_edit.html'
@ -292,4 +292,4 @@ class CircuitTerminationEditView(CircuitTerminationCreateView):
class CircuitTerminationDeleteView(PermissionRequiredMixin, ObjectDeleteView): class CircuitTerminationDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'circuits.delete_circuittermination' permission_required = 'circuits.delete_circuittermination'
model = CircuitTermination queryset = CircuitTermination.objects.all()

View File

@ -158,7 +158,7 @@ class RegionListView(PermissionRequiredMixin, ObjectListView):
class RegionCreateView(PermissionRequiredMixin, ObjectEditView): class RegionCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.add_region' permission_required = 'dcim.add_region'
model = Region queryset = Region.objects.all()
model_form = forms.RegionForm model_form = forms.RegionForm
default_return_url = 'dcim:region_list' default_return_url = 'dcim:region_list'
@ -221,7 +221,7 @@ class SiteView(PermissionRequiredMixin, View):
class SiteCreateView(PermissionRequiredMixin, ObjectEditView): class SiteCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.add_site' permission_required = 'dcim.add_site'
model = Site 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' default_return_url = 'dcim:site_list'
@ -233,7 +233,7 @@ class SiteEditView(SiteCreateView):
class SiteDeleteView(PermissionRequiredMixin, ObjectDeleteView): class SiteDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_site' permission_required = 'dcim.delete_site'
model = Site queryset = Site.objects.all()
default_return_url = 'dcim:site_list' default_return_url = 'dcim:site_list'
@ -281,7 +281,7 @@ class RackGroupListView(PermissionRequiredMixin, ObjectListView):
class RackGroupCreateView(PermissionRequiredMixin, ObjectEditView): class RackGroupCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.add_rackgroup' permission_required = 'dcim.add_rackgroup'
model = RackGroup queryset = RackGroup.objects.all()
model_form = forms.RackGroupForm model_form = forms.RackGroupForm
default_return_url = 'dcim:rackgroup_list' default_return_url = 'dcim:rackgroup_list'
@ -317,7 +317,7 @@ class RackRoleListView(PermissionRequiredMixin, ObjectListView):
class RackRoleCreateView(PermissionRequiredMixin, ObjectEditView): class RackRoleCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.add_rackrole' permission_required = 'dcim.add_rackrole'
model = RackRole queryset = RackRole.objects.all()
model_form = forms.RackRoleForm model_form = forms.RackRoleForm
default_return_url = 'dcim:rackrole_list' default_return_url = 'dcim:rackrole_list'
@ -427,7 +427,7 @@ class RackView(PermissionRequiredMixin, View):
class RackCreateView(PermissionRequiredMixin, ObjectEditView): class RackCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.add_rack' permission_required = 'dcim.add_rack'
model = Rack 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' default_return_url = 'dcim:rack_list'
@ -439,7 +439,7 @@ class RackEditView(RackCreateView):
class RackDeleteView(PermissionRequiredMixin, ObjectDeleteView): class RackDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_rack' permission_required = 'dcim.delete_rack'
model = Rack queryset = Rack.objects.all()
default_return_url = 'dcim:rack_list' default_return_url = 'dcim:rack_list'
@ -494,7 +494,7 @@ class RackReservationView(PermissionRequiredMixin, View):
class RackReservationCreateView(PermissionRequiredMixin, ObjectEditView): class RackReservationCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.add_rackreservation' permission_required = 'dcim.add_rackreservation'
model = RackReservation 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' default_return_url = 'dcim:rackreservation_list'
@ -513,7 +513,7 @@ class RackReservationEditView(RackReservationCreateView):
class RackReservationDeleteView(PermissionRequiredMixin, ObjectDeleteView): class RackReservationDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_rackreservation' permission_required = 'dcim.delete_rackreservation'
model = RackReservation queryset = RackReservation.objects.all()
default_return_url = 'dcim:rackreservation_list' default_return_url = 'dcim:rackreservation_list'
@ -567,7 +567,7 @@ class ManufacturerListView(PermissionRequiredMixin, ObjectListView):
class ManufacturerCreateView(PermissionRequiredMixin, ObjectEditView): class ManufacturerCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.add_manufacturer' permission_required = 'dcim.add_manufacturer'
model = Manufacturer queryset = Manufacturer.objects.all()
model_form = forms.ManufacturerForm model_form = forms.ManufacturerForm
default_return_url = 'dcim:manufacturer_list' default_return_url = 'dcim:manufacturer_list'
@ -667,7 +667,7 @@ class DeviceTypeView(PermissionRequiredMixin, View):
class DeviceTypeCreateView(PermissionRequiredMixin, ObjectEditView): class DeviceTypeCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.add_devicetype' permission_required = 'dcim.add_devicetype'
model = DeviceType 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' default_return_url = 'dcim:devicetype_list'
@ -679,7 +679,7 @@ class DeviceTypeEditView(DeviceTypeCreateView):
class DeviceTypeDeleteView(PermissionRequiredMixin, ObjectDeleteView): class DeviceTypeDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_devicetype' permission_required = 'dcim.delete_devicetype'
model = DeviceType queryset = DeviceType.objects.all()
default_return_url = 'dcim:devicetype_list' default_return_url = 'dcim:devicetype_list'
@ -741,13 +741,13 @@ class ConsolePortTemplateCreateView(PermissionRequiredMixin, ComponentCreateView
class ConsolePortTemplateEditView(PermissionRequiredMixin, ObjectEditView): class ConsolePortTemplateEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.change_consoleporttemplate' permission_required = 'dcim.change_consoleporttemplate'
model = ConsolePortTemplate queryset = ConsolePortTemplate.objects.all()
model_form = forms.ConsolePortTemplateForm model_form = forms.ConsolePortTemplateForm
class ConsolePortTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView): class ConsolePortTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_consoleporttemplate' permission_required = 'dcim.delete_consoleporttemplate'
model = ConsolePortTemplate queryset = ConsolePortTemplate.objects.all()
class ConsolePortTemplateBulkEditView(PermissionRequiredMixin, BulkEditView): class ConsolePortTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
@ -777,13 +777,13 @@ class ConsoleServerPortTemplateCreateView(PermissionRequiredMixin, ComponentCrea
class ConsoleServerPortTemplateEditView(PermissionRequiredMixin, ObjectEditView): class ConsoleServerPortTemplateEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.change_consoleserverporttemplate' permission_required = 'dcim.change_consoleserverporttemplate'
model = ConsoleServerPortTemplate queryset = ConsoleServerPortTemplate.objects.all()
model_form = forms.ConsoleServerPortTemplateForm model_form = forms.ConsoleServerPortTemplateForm
class ConsoleServerPortTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView): class ConsoleServerPortTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_consoleserverporttemplate' permission_required = 'dcim.delete_consoleserverporttemplate'
model = ConsoleServerPortTemplate queryset = ConsoleServerPortTemplate.objects.all()
class ConsoleServerPortTemplateBulkEditView(PermissionRequiredMixin, BulkEditView): class ConsoleServerPortTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
@ -813,13 +813,13 @@ class PowerPortTemplateCreateView(PermissionRequiredMixin, ComponentCreateView):
class PowerPortTemplateEditView(PermissionRequiredMixin, ObjectEditView): class PowerPortTemplateEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.change_powerporttemplate' permission_required = 'dcim.change_powerporttemplate'
model = PowerPortTemplate queryset = PowerPortTemplate.objects.all()
model_form = forms.PowerPortTemplateForm model_form = forms.PowerPortTemplateForm
class PowerPortTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView): class PowerPortTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_powerporttemplate' permission_required = 'dcim.delete_powerporttemplate'
model = PowerPortTemplate queryset = PowerPortTemplate.objects.all()
class PowerPortTemplateBulkEditView(PermissionRequiredMixin, BulkEditView): class PowerPortTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
@ -849,13 +849,13 @@ class PowerOutletTemplateCreateView(PermissionRequiredMixin, ComponentCreateView
class PowerOutletTemplateEditView(PermissionRequiredMixin, ObjectEditView): class PowerOutletTemplateEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.change_poweroutlettemplate' permission_required = 'dcim.change_poweroutlettemplate'
model = PowerOutletTemplate queryset = PowerOutletTemplate.objects.all()
model_form = forms.PowerOutletTemplateForm model_form = forms.PowerOutletTemplateForm
class PowerOutletTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView): class PowerOutletTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_poweroutlettemplate' permission_required = 'dcim.delete_poweroutlettemplate'
model = PowerOutletTemplate queryset = PowerOutletTemplate.objects.all()
class PowerOutletTemplateBulkEditView(PermissionRequiredMixin, BulkEditView): class PowerOutletTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
@ -885,13 +885,13 @@ class InterfaceTemplateCreateView(PermissionRequiredMixin, ComponentCreateView):
class InterfaceTemplateEditView(PermissionRequiredMixin, ObjectEditView): class InterfaceTemplateEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.change_interfacetemplate' permission_required = 'dcim.change_interfacetemplate'
model = InterfaceTemplate queryset = InterfaceTemplate.objects.all()
model_form = forms.InterfaceTemplateForm model_form = forms.InterfaceTemplateForm
class InterfaceTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView): class InterfaceTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_interfacetemplate' permission_required = 'dcim.delete_interfacetemplate'
model = InterfaceTemplate queryset = InterfaceTemplate.objects.all()
class InterfaceTemplateBulkEditView(PermissionRequiredMixin, BulkEditView): class InterfaceTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
@ -921,13 +921,13 @@ class FrontPortTemplateCreateView(PermissionRequiredMixin, ComponentCreateView):
class FrontPortTemplateEditView(PermissionRequiredMixin, ObjectEditView): class FrontPortTemplateEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.change_frontporttemplate' permission_required = 'dcim.change_frontporttemplate'
model = FrontPortTemplate queryset = FrontPortTemplate.objects.all()
model_form = forms.FrontPortTemplateForm model_form = forms.FrontPortTemplateForm
class FrontPortTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView): class FrontPortTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_frontporttemplate' permission_required = 'dcim.delete_frontporttemplate'
model = FrontPortTemplate queryset = FrontPortTemplate.objects.all()
class FrontPortTemplateBulkEditView(PermissionRequiredMixin, BulkEditView): class FrontPortTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
@ -957,13 +957,13 @@ class RearPortTemplateCreateView(PermissionRequiredMixin, ComponentCreateView):
class RearPortTemplateEditView(PermissionRequiredMixin, ObjectEditView): class RearPortTemplateEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.change_rearporttemplate' permission_required = 'dcim.change_rearporttemplate'
model = RearPortTemplate queryset = RearPortTemplate.objects.all()
model_form = forms.RearPortTemplateForm model_form = forms.RearPortTemplateForm
class RearPortTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView): class RearPortTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_rearporttemplate' permission_required = 'dcim.delete_rearporttemplate'
model = RearPortTemplate queryset = RearPortTemplate.objects.all()
class RearPortTemplateBulkEditView(PermissionRequiredMixin, BulkEditView): class RearPortTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
@ -993,13 +993,13 @@ class DeviceBayTemplateCreateView(PermissionRequiredMixin, ComponentCreateView):
class DeviceBayTemplateEditView(PermissionRequiredMixin, ObjectEditView): class DeviceBayTemplateEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.change_devicebaytemplate' permission_required = 'dcim.change_devicebaytemplate'
model = DeviceBayTemplate queryset = DeviceBayTemplate.objects.all()
model_form = forms.DeviceBayTemplateForm model_form = forms.DeviceBayTemplateForm
class DeviceBayTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView): class DeviceBayTemplateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_devicebaytemplate' permission_required = 'dcim.delete_devicebaytemplate'
model = DeviceBayTemplate queryset = DeviceBayTemplate.objects.all()
# class DeviceBayTemplateBulkEditView(PermissionRequiredMixin, BulkEditView): # class DeviceBayTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
@ -1027,7 +1027,7 @@ class DeviceRoleListView(PermissionRequiredMixin, ObjectListView):
class DeviceRoleCreateView(PermissionRequiredMixin, ObjectEditView): class DeviceRoleCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.add_devicerole' permission_required = 'dcim.add_devicerole'
model = DeviceRole queryset = DeviceRole.objects.all()
model_form = forms.DeviceRoleForm model_form = forms.DeviceRoleForm
default_return_url = 'dcim:devicerole_list' default_return_url = 'dcim:devicerole_list'
@ -1062,7 +1062,7 @@ class PlatformListView(PermissionRequiredMixin, ObjectListView):
class PlatformCreateView(PermissionRequiredMixin, ObjectEditView): class PlatformCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.add_platform' permission_required = 'dcim.add_platform'
model = Platform queryset = Platform.objects.all()
model_form = forms.PlatformForm model_form = forms.PlatformForm
default_return_url = 'dcim:platform_list' default_return_url = 'dcim:platform_list'
@ -1248,7 +1248,7 @@ class DeviceConfigContextView(PermissionRequiredMixin, ObjectConfigContextView):
class DeviceCreateView(PermissionRequiredMixin, ObjectEditView): class DeviceCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.add_device' permission_required = 'dcim.add_device'
model = Device 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' default_return_url = 'dcim:device_list'
@ -1260,7 +1260,7 @@ class DeviceEditView(DeviceCreateView):
class DeviceDeleteView(PermissionRequiredMixin, ObjectDeleteView): class DeviceDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_device' permission_required = 'dcim.delete_device'
model = Device queryset = Device.objects.all()
default_return_url = 'dcim:device_list' default_return_url = 'dcim:device_list'
@ -1331,13 +1331,13 @@ class ConsolePortCreateView(PermissionRequiredMixin, ComponentCreateView):
class ConsolePortEditView(PermissionRequiredMixin, ObjectEditView): class ConsolePortEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.change_consoleport' permission_required = 'dcim.change_consoleport'
model = ConsolePort queryset = ConsolePort.objects.all()
model_form = forms.ConsolePortForm model_form = forms.ConsolePortForm
class ConsolePortDeleteView(PermissionRequiredMixin, ObjectDeleteView): class ConsolePortDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_consoleport' permission_required = 'dcim.delete_consoleport'
model = ConsolePort queryset = ConsolePort.objects.all()
class ConsolePortBulkImportView(PermissionRequiredMixin, BulkImportView): class ConsolePortBulkImportView(PermissionRequiredMixin, BulkImportView):
@ -1386,13 +1386,13 @@ class ConsoleServerPortCreateView(PermissionRequiredMixin, ComponentCreateView):
class ConsoleServerPortEditView(PermissionRequiredMixin, ObjectEditView): class ConsoleServerPortEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.change_consoleserverport' permission_required = 'dcim.change_consoleserverport'
model = ConsoleServerPort queryset = ConsoleServerPort.objects.all()
model_form = forms.ConsoleServerPortForm model_form = forms.ConsoleServerPortForm
class ConsoleServerPortDeleteView(PermissionRequiredMixin, ObjectDeleteView): class ConsoleServerPortDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_consoleserverport' permission_required = 'dcim.delete_consoleserverport'
model = ConsoleServerPort queryset = ConsoleServerPort.objects.all()
class ConsoleServerPortBulkImportView(PermissionRequiredMixin, BulkImportView): class ConsoleServerPortBulkImportView(PermissionRequiredMixin, BulkImportView):
@ -1453,13 +1453,13 @@ class PowerPortCreateView(PermissionRequiredMixin, ComponentCreateView):
class PowerPortEditView(PermissionRequiredMixin, ObjectEditView): class PowerPortEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.change_powerport' permission_required = 'dcim.change_powerport'
model = PowerPort queryset = PowerPort.objects.all()
model_form = forms.PowerPortForm model_form = forms.PowerPortForm
class PowerPortDeleteView(PermissionRequiredMixin, ObjectDeleteView): class PowerPortDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_powerport' permission_required = 'dcim.delete_powerport'
model = PowerPort queryset = PowerPort.objects.all()
class PowerPortBulkImportView(PermissionRequiredMixin, BulkImportView): class PowerPortBulkImportView(PermissionRequiredMixin, BulkImportView):
@ -1508,13 +1508,13 @@ class PowerOutletCreateView(PermissionRequiredMixin, ComponentCreateView):
class PowerOutletEditView(PermissionRequiredMixin, ObjectEditView): class PowerOutletEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.change_poweroutlet' permission_required = 'dcim.change_poweroutlet'
model = PowerOutlet queryset = PowerOutlet.objects.all()
model_form = forms.PowerOutletForm model_form = forms.PowerOutletForm
class PowerOutletDeleteView(PermissionRequiredMixin, ObjectDeleteView): class PowerOutletDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_poweroutlet' permission_required = 'dcim.delete_poweroutlet'
model = PowerOutlet queryset = PowerOutlet.objects.all()
class PowerOutletBulkImportView(PermissionRequiredMixin, BulkImportView): class PowerOutletBulkImportView(PermissionRequiredMixin, BulkImportView):
@ -1611,14 +1611,14 @@ class InterfaceCreateView(PermissionRequiredMixin, ComponentCreateView):
class InterfaceEditView(PermissionRequiredMixin, ObjectEditView): class InterfaceEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.change_interface' permission_required = 'dcim.change_interface'
model = Interface queryset = Interface.objects.all()
model_form = forms.InterfaceForm model_form = forms.InterfaceForm
template_name = 'dcim/interface_edit.html' template_name = 'dcim/interface_edit.html'
class InterfaceDeleteView(PermissionRequiredMixin, ObjectDeleteView): class InterfaceDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_interface' permission_required = 'dcim.delete_interface'
model = Interface queryset = Interface.objects.all()
class InterfaceBulkImportView(PermissionRequiredMixin, BulkImportView): class InterfaceBulkImportView(PermissionRequiredMixin, BulkImportView):
@ -1679,13 +1679,13 @@ class FrontPortCreateView(PermissionRequiredMixin, ComponentCreateView):
class FrontPortEditView(PermissionRequiredMixin, ObjectEditView): class FrontPortEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.change_frontport' permission_required = 'dcim.change_frontport'
model = FrontPort queryset = FrontPort.objects.all()
model_form = forms.FrontPortForm model_form = forms.FrontPortForm
class FrontPortDeleteView(PermissionRequiredMixin, ObjectDeleteView): class FrontPortDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_frontport' permission_required = 'dcim.delete_frontport'
model = FrontPort queryset = FrontPort.objects.all()
class FrontPortBulkImportView(PermissionRequiredMixin, BulkImportView): class FrontPortBulkImportView(PermissionRequiredMixin, BulkImportView):
@ -1746,13 +1746,13 @@ class RearPortCreateView(PermissionRequiredMixin, ComponentCreateView):
class RearPortEditView(PermissionRequiredMixin, ObjectEditView): class RearPortEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.change_rearport' permission_required = 'dcim.change_rearport'
model = RearPort queryset = RearPort.objects.all()
model_form = forms.RearPortForm model_form = forms.RearPortForm
class RearPortDeleteView(PermissionRequiredMixin, ObjectDeleteView): class RearPortDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_rearport' permission_required = 'dcim.delete_rearport'
model = RearPort queryset = RearPort.objects.all()
class RearPortBulkImportView(PermissionRequiredMixin, BulkImportView): class RearPortBulkImportView(PermissionRequiredMixin, BulkImportView):
@ -1815,13 +1815,13 @@ class DeviceBayCreateView(PermissionRequiredMixin, ComponentCreateView):
class DeviceBayEditView(PermissionRequiredMixin, ObjectEditView): class DeviceBayEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.change_devicebay' permission_required = 'dcim.change_devicebay'
model = DeviceBay queryset = DeviceBay.objects.all()
model_form = forms.DeviceBayForm model_form = forms.DeviceBayForm
class DeviceBayDeleteView(PermissionRequiredMixin, ObjectDeleteView): class DeviceBayDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_devicebay' permission_required = 'dcim.delete_devicebay'
model = DeviceBay queryset = DeviceBay.objects.all()
class DeviceBayPopulateView(PermissionRequiredMixin, View): class DeviceBayPopulateView(PermissionRequiredMixin, View):
@ -2155,7 +2155,7 @@ class CableCreateView(PermissionRequiredMixin, GetReturnURLMixin, View):
class CableEditView(PermissionRequiredMixin, ObjectEditView): class CableEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.change_cable' permission_required = 'dcim.change_cable'
model = Cable 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' default_return_url = 'dcim:cable_list'
@ -2163,7 +2163,7 @@ class CableEditView(PermissionRequiredMixin, ObjectEditView):
class CableDeleteView(PermissionRequiredMixin, ObjectDeleteView): class CableDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_cable' permission_required = 'dcim.delete_cable'
model = Cable queryset = Cable.objects.all()
default_return_url = 'dcim:cable_list' default_return_url = 'dcim:cable_list'
@ -2310,7 +2310,7 @@ class InventoryItemListView(PermissionRequiredMixin, ObjectListView):
class InventoryItemEditView(PermissionRequiredMixin, ObjectEditView): class InventoryItemEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.change_inventoryitem' permission_required = 'dcim.change_inventoryitem'
model = InventoryItem queryset = InventoryItem.objects.all()
model_form = forms.InventoryItemForm model_form = forms.InventoryItemForm
@ -2324,7 +2324,7 @@ class InventoryItemCreateView(PermissionRequiredMixin, ComponentCreateView):
class InventoryItemDeleteView(PermissionRequiredMixin, ObjectDeleteView): class InventoryItemDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_inventoryitem' permission_required = 'dcim.delete_inventoryitem'
model = InventoryItem queryset = InventoryItem.objects.all()
class InventoryItemBulkImportView(PermissionRequiredMixin, BulkImportView): class InventoryItemBulkImportView(PermissionRequiredMixin, BulkImportView):
@ -2497,7 +2497,7 @@ class VirtualChassisEditView(PermissionRequiredMixin, GetReturnURLMixin, View):
class VirtualChassisDeleteView(PermissionRequiredMixin, ObjectDeleteView): class VirtualChassisDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_virtualchassis' permission_required = 'dcim.delete_virtualchassis'
model = VirtualChassis queryset = VirtualChassis.objects.all()
default_return_url = 'dcim:device_list' default_return_url = 'dcim:device_list'
@ -2655,7 +2655,7 @@ class PowerPanelView(PermissionRequiredMixin, View):
class PowerPanelCreateView(PermissionRequiredMixin, ObjectEditView): class PowerPanelCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.add_powerpanel' permission_required = 'dcim.add_powerpanel'
model = PowerPanel queryset = PowerPanel.objects.all()
model_form = forms.PowerPanelForm model_form = forms.PowerPanelForm
default_return_url = 'dcim:powerpanel_list' default_return_url = 'dcim:powerpanel_list'
@ -2666,7 +2666,7 @@ class PowerPanelEditView(PowerPanelCreateView):
class PowerPanelDeleteView(PermissionRequiredMixin, ObjectDeleteView): class PowerPanelDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_powerpanel' permission_required = 'dcim.delete_powerpanel'
model = PowerPanel queryset = PowerPanel.objects.all()
default_return_url = 'dcim:powerpanel_list' default_return_url = 'dcim:powerpanel_list'
@ -2726,7 +2726,7 @@ class PowerFeedView(PermissionRequiredMixin, View):
class PowerFeedCreateView(PermissionRequiredMixin, ObjectEditView): class PowerFeedCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.add_powerfeed' permission_required = 'dcim.add_powerfeed'
model = PowerFeed 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' default_return_url = 'dcim:powerfeed_list'
@ -2738,7 +2738,7 @@ class PowerFeedEditView(PowerFeedCreateView):
class PowerFeedDeleteView(PermissionRequiredMixin, ObjectDeleteView): class PowerFeedDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_powerfeed' permission_required = 'dcim.delete_powerfeed'
model = PowerFeed queryset = PowerFeed.objects.all()
default_return_url = 'dcim:powerfeed_list' default_return_url = 'dcim:powerfeed_list'

View File

@ -67,7 +67,7 @@ class TagView(PermissionRequiredMixin, View):
class TagEditView(PermissionRequiredMixin, ObjectEditView): class TagEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'extras.change_tag' permission_required = 'extras.change_tag'
model = Tag queryset = Tag.objects.all()
model_form = forms.TagForm model_form = forms.TagForm
default_return_url = 'extras:tag_list' default_return_url = 'extras:tag_list'
template_name = 'extras/tag_edit.html' template_name = 'extras/tag_edit.html'
@ -75,7 +75,7 @@ class TagEditView(PermissionRequiredMixin, ObjectEditView):
class TagDeleteView(PermissionRequiredMixin, ObjectDeleteView): class TagDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'extras.delete_tag' permission_required = 'extras.delete_tag'
model = Tag queryset = Tag.objects.all()
default_return_url = 'extras:tag_list' default_return_url = 'extras:tag_list'
@ -136,7 +136,7 @@ class ConfigContextView(PermissionRequiredMixin, View):
class ConfigContextCreateView(PermissionRequiredMixin, ObjectEditView): class ConfigContextCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'extras.add_configcontext' permission_required = 'extras.add_configcontext'
model = ConfigContext queryset = ConfigContext.objects.all()
model_form = forms.ConfigContextForm model_form = forms.ConfigContextForm
default_return_url = 'extras:configcontext_list' default_return_url = 'extras:configcontext_list'
template_name = 'extras/configcontext_edit.html' template_name = 'extras/configcontext_edit.html'
@ -157,7 +157,7 @@ class ConfigContextBulkEditView(PermissionRequiredMixin, BulkEditView):
class ConfigContextDeleteView(PermissionRequiredMixin, ObjectDeleteView): class ConfigContextDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'extras.delete_configcontext' permission_required = 'extras.delete_configcontext'
model = ConfigContext queryset = ConfigContext.objects.all()
default_return_url = 'extras:configcontext_list' default_return_url = 'extras:configcontext_list'
@ -306,7 +306,7 @@ class ObjectChangeLogView(View):
class ImageAttachmentEditView(PermissionRequiredMixin, ObjectEditView): class ImageAttachmentEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'extras.change_imageattachment' permission_required = 'extras.change_imageattachment'
model = ImageAttachment queryset = ImageAttachment.objects.all()
model_form = forms.ImageAttachmentForm model_form = forms.ImageAttachmentForm
def alter_obj(self, imageattachment, request, args, kwargs): def alter_obj(self, imageattachment, request, args, kwargs):
@ -322,7 +322,7 @@ class ImageAttachmentEditView(PermissionRequiredMixin, ObjectEditView):
class ImageAttachmentDeleteView(PermissionRequiredMixin, ObjectDeleteView): class ImageAttachmentDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'extras.delete_imageattachment' permission_required = 'extras.delete_imageattachment'
model = ImageAttachment queryset = ImageAttachment.objects.all()
def get_return_url(self, request, imageattachment): def get_return_url(self, request, imageattachment):
return imageattachment.parent.get_absolute_url() return imageattachment.parent.get_absolute_url()

View File

@ -136,7 +136,7 @@ class VRFView(PermissionRequiredMixin, View):
class VRFCreateView(PermissionRequiredMixin, ObjectEditView): class VRFCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'ipam.add_vrf' permission_required = 'ipam.add_vrf'
model = VRF 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' default_return_url = 'ipam:vrf_list'
@ -148,7 +148,7 @@ class VRFEditView(VRFCreateView):
class VRFDeleteView(PermissionRequiredMixin, ObjectDeleteView): class VRFDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'ipam.delete_vrf' permission_required = 'ipam.delete_vrf'
model = VRF queryset = VRF.objects.all()
default_return_url = 'ipam:vrf_list' default_return_url = 'ipam:vrf_list'
@ -259,7 +259,7 @@ class RIRListView(PermissionRequiredMixin, ObjectListView):
class RIRCreateView(PermissionRequiredMixin, ObjectEditView): class RIRCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'ipam.add_rir' permission_required = 'ipam.add_rir'
model = RIR queryset = RIR.objects.all()
model_form = forms.RIRForm model_form = forms.RIRForm
default_return_url = 'ipam:rir_list' default_return_url = 'ipam:rir_list'
@ -361,7 +361,7 @@ class AggregateView(PermissionRequiredMixin, View):
class AggregateCreateView(PermissionRequiredMixin, ObjectEditView): class AggregateCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'ipam.add_aggregate' permission_required = 'ipam.add_aggregate'
model = Aggregate 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' default_return_url = 'ipam:aggregate_list'
@ -373,7 +373,7 @@ class AggregateEditView(AggregateCreateView):
class AggregateDeleteView(PermissionRequiredMixin, ObjectDeleteView): class AggregateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'ipam.delete_aggregate' permission_required = 'ipam.delete_aggregate'
model = Aggregate queryset = Aggregate.objects.all()
default_return_url = 'ipam:aggregate_list' default_return_url = 'ipam:aggregate_list'
@ -413,7 +413,7 @@ class RoleListView(PermissionRequiredMixin, ObjectListView):
class RoleCreateView(PermissionRequiredMixin, ObjectEditView): class RoleCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'ipam.add_role' permission_required = 'ipam.add_role'
model = Role queryset = Role.objects.all()
model_form = forms.RoleForm model_form = forms.RoleForm
default_return_url = 'ipam:role_list' default_return_url = 'ipam:role_list'
@ -588,7 +588,7 @@ class PrefixIPAddressesView(PermissionRequiredMixin, View):
class PrefixCreateView(PermissionRequiredMixin, ObjectEditView): class PrefixCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'ipam.add_prefix' permission_required = 'ipam.add_prefix'
model = Prefix 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' default_return_url = 'ipam:prefix_list'
@ -600,7 +600,7 @@ class PrefixEditView(PrefixCreateView):
class PrefixDeleteView(PermissionRequiredMixin, ObjectDeleteView): class PrefixDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'ipam.delete_prefix' permission_required = 'ipam.delete_prefix'
model = Prefix queryset = Prefix.objects.all()
template_name = 'ipam/prefix_delete.html' template_name = 'ipam/prefix_delete.html'
default_return_url = 'ipam:prefix_list' default_return_url = 'ipam:prefix_list'
@ -699,7 +699,7 @@ class IPAddressView(PermissionRequiredMixin, View):
class IPAddressCreateView(PermissionRequiredMixin, ObjectEditView): class IPAddressCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'ipam.add_ipaddress' permission_required = 'ipam.add_ipaddress'
model = IPAddress 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' default_return_url = 'ipam:ipaddress_list'
@ -766,7 +766,7 @@ class IPAddressAssignView(PermissionRequiredMixin, View):
class IPAddressDeleteView(PermissionRequiredMixin, ObjectDeleteView): class IPAddressDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'ipam.delete_ipaddress' permission_required = 'ipam.delete_ipaddress'
model = IPAddress queryset = IPAddress.objects.all()
default_return_url = 'ipam:ipaddress_list' default_return_url = 'ipam:ipaddress_list'
@ -817,7 +817,7 @@ class VLANGroupListView(PermissionRequiredMixin, ObjectListView):
class VLANGroupCreateView(PermissionRequiredMixin, ObjectEditView): class VLANGroupCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'ipam.add_vlangroup' permission_required = 'ipam.add_vlangroup'
model = VLANGroup queryset = VLANGroup.objects.all()
model_form = forms.VLANGroupForm model_form = forms.VLANGroupForm
default_return_url = 'ipam:vlangroup_list' default_return_url = 'ipam:vlangroup_list'
@ -933,7 +933,7 @@ class VLANMembersView(PermissionRequiredMixin, View):
class VLANCreateView(PermissionRequiredMixin, ObjectEditView): class VLANCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'ipam.add_vlan' permission_required = 'ipam.add_vlan'
model = VLAN 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' default_return_url = 'ipam:vlan_list'
@ -945,7 +945,7 @@ class VLANEditView(VLANCreateView):
class VLANDeleteView(PermissionRequiredMixin, ObjectDeleteView): class VLANDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'ipam.delete_vlan' permission_required = 'ipam.delete_vlan'
model = VLAN queryset = VLAN.objects.all()
default_return_url = 'ipam:vlan_list' default_return_url = 'ipam:vlan_list'
@ -1000,7 +1000,7 @@ class ServiceView(PermissionRequiredMixin, View):
class ServiceCreateView(PermissionRequiredMixin, ObjectEditView): class ServiceCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'ipam.add_service' permission_required = 'ipam.add_service'
model = Service queryset = Service.objects.all()
model_form = forms.ServiceForm model_form = forms.ServiceForm
template_name = 'ipam/service_edit.html' template_name = 'ipam/service_edit.html'
@ -1028,7 +1028,7 @@ class ServiceEditView(ServiceCreateView):
class ServiceDeleteView(PermissionRequiredMixin, ObjectDeleteView): class ServiceDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'ipam.delete_service' permission_required = 'ipam.delete_service'
model = Service queryset = Service.objects.all()
class ServiceBulkEditView(PermissionRequiredMixin, BulkEditView): class ServiceBulkEditView(PermissionRequiredMixin, BulkEditView):

View File

@ -38,7 +38,7 @@ class SecretRoleListView(PermissionRequiredMixin, ObjectListView):
class SecretRoleCreateView(PermissionRequiredMixin, ObjectEditView): class SecretRoleCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'secrets.add_secretrole' permission_required = 'secrets.add_secretrole'
model = SecretRole queryset = SecretRole.objects.all()
model_form = forms.SecretRoleForm model_form = forms.SecretRoleForm
default_return_url = 'secrets:secretrole_list' default_return_url = 'secrets:secretrole_list'
@ -191,7 +191,7 @@ def secret_edit(request, pk):
class SecretDeleteView(PermissionRequiredMixin, ObjectDeleteView): class SecretDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'secrets.delete_secret' permission_required = 'secrets.delete_secret'
model = Secret queryset = Secret.objects.all()
default_return_url = 'secrets:secret_list' default_return_url = 'secrets:secret_list'

View File

@ -32,7 +32,7 @@ class TenantGroupListView(PermissionRequiredMixin, ObjectListView):
class TenantGroupCreateView(PermissionRequiredMixin, ObjectEditView): class TenantGroupCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'tenancy.add_tenantgroup' permission_required = 'tenancy.add_tenantgroup'
model = TenantGroup queryset = TenantGroup.objects.all()
model_form = forms.TenantGroupForm model_form = forms.TenantGroupForm
default_return_url = 'tenancy:tenantgroup_list' default_return_url = 'tenancy:tenantgroup_list'
@ -95,7 +95,7 @@ class TenantView(PermissionRequiredMixin, View):
class TenantCreateView(PermissionRequiredMixin, ObjectEditView): class TenantCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'tenancy.add_tenant' permission_required = 'tenancy.add_tenant'
model = Tenant 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' default_return_url = 'tenancy:tenant_list'
@ -107,7 +107,7 @@ class TenantEditView(TenantCreateView):
class TenantDeleteView(PermissionRequiredMixin, ObjectDeleteView): class TenantDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'tenancy.delete_tenant' permission_required = 'tenancy.delete_tenant'
model = Tenant queryset = Tenant.objects.all()
default_return_url = 'tenancy:tenant_list' default_return_url = 'tenancy:tenant_list'

View File

@ -216,21 +216,22 @@ class ObjectEditView(GetReturnURLMixin, View):
""" """
Create or edit a single object. Create or edit a single object.
model: The model of the object being edited queryset: The base queryset for the object being modified
model_form: The form used to create or edit the object model_form: The form used to create or edit the object
template_name: The name of the template template_name: The name of the template
""" """
model = None queryset = None
model_form = None model_form = None
template_name = 'utilities/obj_edit.html' template_name = 'utilities/obj_edit.html'
def get_object(self, kwargs): def get_object(self, kwargs):
# Look up object by slug or PK. Return None if neither was provided. # Look up an existing object by slug or PK, if provided.
if 'slug' in kwargs: if 'slug' in kwargs:
return get_object_or_404(self.model, slug=kwargs['slug']) return get_object_or_404(self.queryset, slug=kwargs['slug'])
elif 'pk' in kwargs: elif 'pk' in kwargs:
return get_object_or_404(self.model, pk=kwargs['pk']) return get_object_or_404(self.queryset, pk=kwargs['pk'])
return self.model() # Otherwise, return a new instance.
return self.queryset.model()
def alter_obj(self, obj, request, url_args, url_kwargs): def alter_obj(self, obj, request, url_args, url_kwargs):
# Allow views to add extra info to an object before it is processed. For example, a parent object can be defined # Allow views to add extra info to an object before it is processed. For example, a parent object can be defined
@ -249,7 +250,7 @@ class ObjectEditView(GetReturnURLMixin, View):
return render(request, self.template_name, { return render(request, self.template_name, {
'obj': self.obj, 'obj': self.obj,
'obj_type': self.model._meta.verbose_name, 'obj_type': self.queryset.model._meta.verbose_name,
'form': form, 'form': form,
'return_url': self.get_return_url(request, self.obj), 'return_url': self.get_return_url(request, self.obj),
}) })
@ -264,7 +265,7 @@ class ObjectEditView(GetReturnURLMixin, View):
obj = form.save() obj = form.save()
msg = '{} {}'.format( msg = '{} {}'.format(
'Created' if not form.instance.pk else 'Modified', 'Created' if not form.instance.pk else 'Modified',
self.model._meta.verbose_name self.queryset.model._meta.verbose_name
) )
logger.info(f"{msg} {obj} (PK: {obj.pk})") logger.info(f"{msg} {obj} (PK: {obj.pk})")
if hasattr(obj, 'get_absolute_url'): if hasattr(obj, 'get_absolute_url'):
@ -293,7 +294,7 @@ class ObjectEditView(GetReturnURLMixin, View):
return render(request, self.template_name, { return render(request, self.template_name, {
'obj': self.obj, 'obj': self.obj,
'obj_type': self.model._meta.verbose_name, 'obj_type': self.queryset.model._meta.verbose_name,
'form': form, 'form': form,
'return_url': self.get_return_url(request, self.obj), 'return_url': self.get_return_url(request, self.obj),
}) })
@ -303,18 +304,18 @@ class ObjectDeleteView(GetReturnURLMixin, View):
""" """
Delete a single object. Delete a single object.
model: The model of the object being deleted queryset: The base queryset for the object being deleted
template_name: The name of the template template_name: The name of the template
""" """
model = None queryset = None
template_name = 'utilities/obj_delete.html' template_name = 'utilities/obj_delete.html'
def get_object(self, kwargs): def get_object(self, kwargs):
# Look up object by slug if one has been provided. Otherwise, use PK. # Look up object by slug if one has been provided. Otherwise, use PK.
if 'slug' in kwargs: if 'slug' in kwargs:
return get_object_or_404(self.model, slug=kwargs['slug']) return get_object_or_404(self.queryset, slug=kwargs['slug'])
else: else:
return get_object_or_404(self.model, pk=kwargs['pk']) return get_object_or_404(self.queryset, pk=kwargs['pk'])
def get(self, request, **kwargs): def get(self, request, **kwargs):
obj = self.get_object(kwargs) obj = self.get_object(kwargs)
@ -323,7 +324,7 @@ class ObjectDeleteView(GetReturnURLMixin, View):
return render(request, self.template_name, { return render(request, self.template_name, {
'obj': obj, 'obj': obj,
'form': form, 'form': form,
'obj_type': self.model._meta.verbose_name, 'obj_type': self.queryset.model._meta.verbose_name,
'return_url': self.get_return_url(request, obj), 'return_url': self.get_return_url(request, obj),
}) })
@ -342,7 +343,7 @@ class ObjectDeleteView(GetReturnURLMixin, View):
handle_protectederror(obj, request, e) handle_protectederror(obj, request, e)
return redirect(obj.get_absolute_url()) return redirect(obj.get_absolute_url())
msg = 'Deleted {} {}'.format(self.model._meta.verbose_name, obj) msg = 'Deleted {} {}'.format(self.queryset.model._meta.verbose_name, obj)
logger.info(msg) logger.info(msg)
messages.success(request, msg) messages.success(request, msg)
@ -358,7 +359,7 @@ class ObjectDeleteView(GetReturnURLMixin, View):
return render(request, self.template_name, { return render(request, self.template_name, {
'obj': obj, 'obj': obj,
'form': form, 'form': form,
'obj_type': self.model._meta.verbose_name, 'obj_type': self.queryset.model._meta.verbose_name,
'return_url': self.get_return_url(request, obj), 'return_url': self.get_return_url(request, obj),
}) })

View File

@ -30,7 +30,7 @@ class ClusterTypeListView(PermissionRequiredMixin, ObjectListView):
class ClusterTypeCreateView(PermissionRequiredMixin, ObjectEditView): class ClusterTypeCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'virtualization.add_clustertype' permission_required = 'virtualization.add_clustertype'
model = ClusterType queryset = ClusterType.objects.all()
model_form = forms.ClusterTypeForm model_form = forms.ClusterTypeForm
default_return_url = 'virtualization:clustertype_list' default_return_url = 'virtualization:clustertype_list'
@ -65,7 +65,7 @@ class ClusterGroupListView(PermissionRequiredMixin, ObjectListView):
class ClusterGroupCreateView(PermissionRequiredMixin, ObjectEditView): class ClusterGroupCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'virtualization.add_clustergroup' permission_required = 'virtualization.add_clustergroup'
model = ClusterGroup queryset = ClusterGroup.objects.all()
model_form = forms.ClusterGroupForm model_form = forms.ClusterGroupForm
default_return_url = 'virtualization:clustergroup_list' default_return_url = 'virtualization:clustergroup_list'
@ -122,7 +122,7 @@ class ClusterView(PermissionRequiredMixin, View):
class ClusterCreateView(PermissionRequiredMixin, ObjectEditView): class ClusterCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'virtualization.add_cluster' permission_required = 'virtualization.add_cluster'
template_name = 'virtualization/cluster_edit.html' template_name = 'virtualization/cluster_edit.html'
model = Cluster queryset = Cluster.objects.all()
model_form = forms.ClusterForm model_form = forms.ClusterForm
@ -132,7 +132,7 @@ class ClusterEditView(ClusterCreateView):
class ClusterDeleteView(PermissionRequiredMixin, ObjectDeleteView): class ClusterDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'virtualization.delete_cluster' permission_required = 'virtualization.delete_cluster'
model = Cluster queryset = Cluster.objects.all()
default_return_url = 'virtualization:cluster_list' default_return_url = 'virtualization:cluster_list'
@ -281,7 +281,7 @@ class VirtualMachineConfigContextView(PermissionRequiredMixin, ObjectConfigConte
class VirtualMachineCreateView(PermissionRequiredMixin, ObjectEditView): class VirtualMachineCreateView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'virtualization.add_virtualmachine' permission_required = 'virtualization.add_virtualmachine'
model = VirtualMachine 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' default_return_url = 'virtualization:virtualmachine_list'
@ -293,7 +293,7 @@ class VirtualMachineEditView(VirtualMachineCreateView):
class VirtualMachineDeleteView(PermissionRequiredMixin, ObjectDeleteView): class VirtualMachineDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'virtualization.delete_virtualmachine' permission_required = 'virtualization.delete_virtualmachine'
model = VirtualMachine queryset = VirtualMachine.objects.all()
default_return_url = 'virtualization:virtualmachine_list' default_return_url = 'virtualization:virtualmachine_list'
@ -335,14 +335,14 @@ class InterfaceCreateView(PermissionRequiredMixin, ComponentCreateView):
class InterfaceEditView(PermissionRequiredMixin, ObjectEditView): class InterfaceEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'dcim.change_interface' permission_required = 'dcim.change_interface'
model = Interface queryset = Interface.objects.all()
model_form = forms.InterfaceForm model_form = forms.InterfaceForm
template_name = 'virtualization/interface_edit.html' template_name = 'virtualization/interface_edit.html'
class InterfaceDeleteView(PermissionRequiredMixin, ObjectDeleteView): class InterfaceDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'dcim.delete_interface' permission_required = 'dcim.delete_interface'
model = Interface queryset = Interface.objects.all()
class InterfaceBulkEditView(PermissionRequiredMixin, BulkEditView): class InterfaceBulkEditView(PermissionRequiredMixin, BulkEditView):