diff --git a/netbox/circuits/views.py b/netbox/circuits/views.py index 345e3379d..467450346 100644 --- a/netbox/circuits/views.py +++ b/netbox/circuits/views.py @@ -52,7 +52,7 @@ class ProviderView(View): class ProviderCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'circuits.add_provider' model = Provider - form_class = forms.ProviderForm + model_form = forms.ProviderForm template_name = 'circuits/provider_edit.html' default_return_url = 'circuits:provider_list' @@ -104,7 +104,7 @@ class CircuitTypeListView(ObjectListView): class CircuitTypeCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'circuits.add_circuittype' model = CircuitType - form_class = forms.CircuitTypeForm + model_form = forms.CircuitTypeForm def get_return_url(self, request, obj): return reverse('circuits:circuittype_list') @@ -160,7 +160,7 @@ class CircuitView(View): class CircuitCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'circuits.add_circuit' model = Circuit - form_class = forms.CircuitForm + model_form = forms.CircuitForm template_name = 'circuits/circuit_edit.html' default_return_url = 'circuits:circuit_list' @@ -253,7 +253,7 @@ def circuit_terminations_swap(request, pk): class CircuitTerminationCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'circuits.add_circuittermination' model = CircuitTermination - form_class = forms.CircuitTerminationForm + model_form = forms.CircuitTerminationForm template_name = 'circuits/circuittermination_edit.html' def alter_obj(self, obj, request, url_args, url_kwargs): diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 3e456cfd4..ab0bfbbc9 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -112,7 +112,7 @@ class RegionListView(ObjectListView): class RegionCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'dcim.add_region' model = Region - form_class = forms.RegionForm + model_form = forms.RegionForm def get_return_url(self, request, obj): return reverse('dcim:region_list') @@ -170,7 +170,7 @@ class SiteView(View): class SiteCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'dcim.add_site' model = Site - form_class = forms.SiteForm + model_form = forms.SiteForm template_name = 'dcim/site_edit.html' default_return_url = 'dcim:site_list' @@ -217,7 +217,7 @@ class RackGroupListView(ObjectListView): class RackGroupCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'dcim.add_rackgroup' model = RackGroup - form_class = forms.RackGroupForm + model_form = forms.RackGroupForm def get_return_url(self, request, obj): return reverse('dcim:rackgroup_list') @@ -249,7 +249,7 @@ class RackRoleListView(ObjectListView): class RackRoleCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'dcim.add_rackrole' model = RackRole - form_class = forms.RackRoleForm + model_form = forms.RackRoleForm def get_return_url(self, request, obj): return reverse('dcim:rackrole_list') @@ -352,7 +352,7 @@ class RackView(View): class RackCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'dcim.add_rack' model = Rack - form_class = forms.RackForm + model_form = forms.RackForm template_name = 'dcim/rack_edit.html' default_return_url = 'dcim:rack_list' @@ -408,7 +408,7 @@ class RackReservationListView(ObjectListView): class RackReservationCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'dcim.add_rackreservation' model = RackReservation - form_class = forms.RackReservationForm + model_form = forms.RackReservationForm def alter_obj(self, obj, request, args, kwargs): if not obj.pk: @@ -452,7 +452,7 @@ class ManufacturerListView(ObjectListView): class ManufacturerCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'dcim.add_manufacturer' model = Manufacturer - form_class = forms.ManufacturerForm + model_form = forms.ManufacturerForm def get_return_url(self, request, obj): return reverse('dcim:manufacturer_list') @@ -537,7 +537,7 @@ class DeviceTypeView(View): class DeviceTypeCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'dcim.add_devicetype' model = DeviceType - form_class = forms.DeviceTypeForm + model_form = forms.DeviceTypeForm template_name = 'dcim/devicetype_edit.html' default_return_url = 'dcim:devicetype_list' @@ -700,7 +700,7 @@ class DeviceRoleListView(ObjectListView): class DeviceRoleCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'dcim.add_devicerole' model = DeviceRole - form_class = forms.DeviceRoleForm + model_form = forms.DeviceRoleForm def get_return_url(self, request, obj): return reverse('dcim:devicerole_list') @@ -731,7 +731,7 @@ class PlatformListView(ObjectListView): class PlatformCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'dcim.add_platform' model = Platform - form_class = forms.PlatformForm + model_form = forms.PlatformForm def get_return_url(self, request, obj): return reverse('dcim:platform_list') @@ -889,7 +889,7 @@ class DeviceConfigView(PermissionRequiredMixin, View): class DeviceCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'dcim.add_device' model = Device - form_class = forms.DeviceForm + model_form = forms.DeviceForm template_name = 'dcim/device_edit.html' default_return_url = 'dcim:device_list' @@ -1044,7 +1044,7 @@ class ConsolePortEditView(PermissionRequiredMixin, ComponentEditView): permission_required = 'dcim.change_consoleport' model = ConsolePort parent_field = 'device' - form_class = forms.ConsolePortForm + model_form = forms.ConsolePortForm class ConsolePortDeleteView(PermissionRequiredMixin, ComponentDeleteView): @@ -1164,7 +1164,7 @@ class ConsoleServerPortEditView(PermissionRequiredMixin, ComponentEditView): permission_required = 'dcim.change_consoleserverport' model = ConsoleServerPort parent_field = 'device' - form_class = forms.ConsoleServerPortForm + model_form = forms.ConsoleServerPortForm class ConsoleServerPortDeleteView(PermissionRequiredMixin, ComponentDeleteView): @@ -1283,7 +1283,7 @@ class PowerPortEditView(PermissionRequiredMixin, ComponentEditView): permission_required = 'dcim.change_powerport' model = PowerPort parent_field = 'device' - form_class = forms.PowerPortForm + model_form = forms.PowerPortForm class PowerPortDeleteView(PermissionRequiredMixin, ComponentDeleteView): @@ -1403,7 +1403,7 @@ class PowerOutletEditView(PermissionRequiredMixin, ComponentEditView): permission_required = 'dcim.change_poweroutlet' model = PowerOutlet parent_field = 'device' - form_class = forms.PowerOutletForm + model_form = forms.PowerOutletForm class PowerOutletDeleteView(PermissionRequiredMixin, ComponentDeleteView): @@ -1448,7 +1448,7 @@ class InterfaceEditView(PermissionRequiredMixin, ComponentEditView): permission_required = 'dcim.change_interface' model = Interface parent_field = 'device' - form_class = forms.InterfaceForm + model_form = forms.InterfaceForm class InterfaceDeleteView(PermissionRequiredMixin, ComponentDeleteView): @@ -1502,7 +1502,7 @@ class DeviceBayEditView(PermissionRequiredMixin, ComponentEditView): permission_required = 'dcim.change_devicebay' model = DeviceBay parent_field = 'device' - form_class = forms.DeviceBayForm + model_form = forms.DeviceBayForm class DeviceBayDeleteView(PermissionRequiredMixin, ComponentDeleteView): @@ -1774,7 +1774,7 @@ class InventoryItemEditView(PermissionRequiredMixin, ComponentEditView): permission_required = 'dcim.change_inventoryitem' model = InventoryItem parent_field = 'device' - form_class = forms.InventoryItemForm + model_form = forms.InventoryItemForm def alter_obj(self, obj, request, url_args, url_kwargs): if 'device' in url_kwargs: diff --git a/netbox/extras/views.py b/netbox/extras/views.py index 06c852d68..881525237 100644 --- a/netbox/extras/views.py +++ b/netbox/extras/views.py @@ -11,7 +11,7 @@ from .models import ImageAttachment class ImageAttachmentEditView(PermissionRequiredMixin, ObjectEditView): permission_required = 'extras.change_imageattachment' model = ImageAttachment - form_class = ImageAttachmentForm + model_form = ImageAttachmentForm def alter_obj(self, imageattachment, request, args, kwargs): if not imageattachment.pk: diff --git a/netbox/ipam/forms.py b/netbox/ipam/forms.py index a91c783d1..1fa6562d1 100644 --- a/netbox/ipam/forms.py +++ b/netbox/ipam/forms.py @@ -517,7 +517,7 @@ class IPAddressForm(BootstrapMixin, TenancyForm, ReturnURLForm, CustomFieldForm) return ipaddress -class IPAddressPatternForm(BootstrapMixin, forms.Form): +class IPAddressBulkCreateForm(BootstrapMixin, forms.Form): pattern = ExpandableIPAddressField(label='Address pattern') diff --git a/netbox/ipam/views.py b/netbox/ipam/views.py index edaa31869..fbc2e390a 100644 --- a/netbox/ipam/views.py +++ b/netbox/ipam/views.py @@ -119,7 +119,7 @@ class VRFView(View): class VRFCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'ipam.add_vrf' model = VRF - form_class = forms.VRFForm + model_form = forms.VRFForm template_name = 'ipam/vrf_edit.html' default_return_url = 'ipam:vrf_list' @@ -251,7 +251,7 @@ class RIRListView(ObjectListView): class RIRCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'ipam.add_rir' model = RIR - form_class = forms.RIRForm + model_form = forms.RIRForm def get_return_url(self, request, obj): return reverse('ipam:rir_list') @@ -342,7 +342,7 @@ class AggregateView(View): class AggregateCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'ipam.add_aggregate' model = Aggregate - form_class = forms.AggregateForm + model_form = forms.AggregateForm template_name = 'ipam/aggregate_edit.html' default_return_url = 'ipam:aggregate_list' @@ -396,7 +396,7 @@ class RoleListView(ObjectListView): class RoleCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'ipam.add_role' model = Role - form_class = forms.RoleForm + model_form = forms.RoleForm def get_return_url(self, request, obj): return reverse('ipam:role_list') @@ -549,7 +549,7 @@ class PrefixIPAddressesView(View): class PrefixCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'ipam.add_prefix' model = Prefix - form_class = forms.PrefixForm + model_form = forms.PrefixForm template_name = 'ipam/prefix_edit.html' default_return_url = 'ipam:prefix_list' @@ -658,7 +658,7 @@ class IPAddressView(View): class IPAddressCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'ipam.add_ipaddress' model = IPAddress - form_class = forms.IPAddressForm + model_form = forms.IPAddressForm template_name = 'ipam/ipaddress_edit.html' default_return_url = 'ipam:ipaddress_list' @@ -686,7 +686,7 @@ class IPAddressDeleteView(PermissionRequiredMixin, ObjectDeleteView): class IPAddressBulkCreateView(PermissionRequiredMixin, BulkCreateView): permission_required = 'ipam.add_ipaddress' - pattern_form = forms.IPAddressPatternForm + form = forms.IPAddressBulkCreateForm model_form = forms.IPAddressBulkAddForm pattern_target = 'address' template_name = 'ipam/ipaddress_bulk_add.html' @@ -734,7 +734,7 @@ class VLANGroupListView(ObjectListView): class VLANGroupCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'ipam.add_vlangroup' model = VLANGroup - form_class = forms.VLANGroupForm + model_form = forms.VLANGroupForm def get_return_url(self, request, obj): return reverse('ipam:vlangroup_list') @@ -785,7 +785,7 @@ class VLANView(View): class VLANCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'ipam.add_vlan' model = VLAN - form_class = forms.VLANForm + model_form = forms.VLANForm template_name = 'ipam/vlan_edit.html' default_return_url = 'ipam:vlan_list' @@ -833,7 +833,7 @@ class VLANBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class ServiceCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'ipam.add_service' model = Service - form_class = forms.ServiceForm + model_form = forms.ServiceForm template_name = 'ipam/service_edit.html' def alter_obj(self, obj, request, url_args, url_kwargs): diff --git a/netbox/secrets/views.py b/netbox/secrets/views.py index 71cf42c13..d1febc245 100644 --- a/netbox/secrets/views.py +++ b/netbox/secrets/views.py @@ -42,7 +42,7 @@ class SecretRoleListView(ObjectListView): class SecretRoleCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'secrets.add_secretrole' model = SecretRole - form_class = forms.SecretRoleForm + model_form = forms.SecretRoleForm def get_return_url(self, request, obj): return reverse('secrets:secretrole_list') diff --git a/netbox/templates/ipam/ipaddress_bulk_add.html b/netbox/templates/ipam/ipaddress_bulk_add.html index 78406a3f2..17d48388c 100644 --- a/netbox/templates/ipam/ipaddress_bulk_add.html +++ b/netbox/templates/ipam/ipaddress_bulk_add.html @@ -12,7 +12,7 @@
IP Addresses
- {% render_field pattern_form.pattern %} + {% render_field form.pattern %} {% render_field model_form.status %} {% render_field model_form.role %} {% render_field model_form.vrf %} diff --git a/netbox/tenancy/views.py b/netbox/tenancy/views.py index 86e419e54..9bcfee82d 100644 --- a/netbox/tenancy/views.py +++ b/netbox/tenancy/views.py @@ -30,7 +30,7 @@ class TenantGroupListView(ObjectListView): class TenantGroupCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'tenancy.add_tenantgroup' model = TenantGroup - form_class = forms.TenantGroupForm + model_form = forms.TenantGroupForm def get_return_url(self, request, obj): return reverse('tenancy:tenantgroup_list') @@ -92,7 +92,7 @@ class TenantView(View): class TenantCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'tenancy.add_tenant' model = Tenant - form_class = forms.TenantForm + model_form = forms.TenantForm template_name = 'tenancy/tenant_edit.html' default_return_url = 'tenancy:tenant_list' diff --git a/netbox/utilities/views.py b/netbox/utilities/views.py index 1da5b85e2..1bd9cb7c1 100644 --- a/netbox/utilities/views.py +++ b/netbox/utilities/views.py @@ -156,12 +156,12 @@ class ObjectEditView(GetReturnURLMixin, View): Create or edit a single object. model: The model of the object being edited - form_class: 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 default_return_url: The name of the URL used to display a list of this object type """ model = None - form_class = None + model_form = None template_name = 'utilities/obj_edit.html' def get_object(self, kwargs): @@ -183,7 +183,7 @@ class ObjectEditView(GetReturnURLMixin, View): obj = self.alter_obj(obj, request, args, kwargs) # Parse initial data manually to avoid setting field values as lists initial_data = {k: request.GET[k] for k in request.GET} - form = self.form_class(instance=obj, initial=initial_data) + form = self.model_form(instance=obj, initial=initial_data) return render(request, self.template_name, { 'obj': obj, @@ -196,7 +196,7 @@ class ObjectEditView(GetReturnURLMixin, View): obj = self.get_object(kwargs) obj = self.alter_obj(obj, request, args, kwargs) - form = self.form_class(request.POST, request.FILES, instance=obj) + form = self.model_form(request.POST, request.FILES, instance=obj) if form.is_valid(): obj_created = not form.instance.pk @@ -295,12 +295,12 @@ class BulkCreateView(View): """ Create new objects in bulk. - pattern_form: Form class which provides the `pattern` field + form: Form class which provides the `pattern` field model_form: The ModelForm used to create individual objects template_name: The name of the template default_return_url: Name of the URL to which the user is redirected after creating the objects """ - pattern_form = None + form = None model_form = None pattern_target = '' template_name = None @@ -308,12 +308,12 @@ class BulkCreateView(View): def get(self, request): - pattern_form = self.pattern_form() + form = self.form() model_form = self.model_form() return render(request, self.template_name, { 'obj_type': self.model_form._meta.model._meta.verbose_name, - 'pattern_form': pattern_form, + 'form': form, 'model_form': model_form, 'return_url': reverse(self.default_return_url), }) @@ -321,12 +321,12 @@ class BulkCreateView(View): def post(self, request): model = self.model_form._meta.model - pattern_form = self.pattern_form(request.POST) + form = self.form(request.POST) model_form = self.model_form(request.POST) - if pattern_form.is_valid(): + if form.is_valid(): - pattern = pattern_form.cleaned_data['pattern'] + pattern = form.cleaned_data['pattern'] new_objs = [] try: @@ -348,7 +348,7 @@ class BulkCreateView(View): # Copy any errors on the pattern target field to the pattern form. errors = model_form.errors.as_data() if errors.get(self.pattern_target): - pattern_form.add_error('pattern', errors[self.pattern_target]) + form.add_error('pattern', errors[self.pattern_target]) # Raise an IntegrityError to break the for loop and abort the transaction. raise IntegrityError() @@ -365,7 +365,7 @@ class BulkCreateView(View): pass return render(request, self.template_name, { - 'pattern_form': pattern_form, + 'form': form, 'model_form': model_form, 'obj_type': model._meta.verbose_name, 'return_url': reverse(self.default_return_url), diff --git a/netbox/virtualization/views.py b/netbox/virtualization/views.py index 79629bf98..460715a41 100644 --- a/netbox/virtualization/views.py +++ b/netbox/virtualization/views.py @@ -33,7 +33,7 @@ class ClusterTypeListView(ObjectListView): class ClusterTypeCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'virtualization.add_clustertype' model = ClusterType - form_class = forms.ClusterTypeForm + model_form = forms.ClusterTypeForm def get_return_url(self, request, obj): return reverse('virtualization:clustertype_list') @@ -64,7 +64,7 @@ class ClusterGroupListView(ObjectListView): class ClusterGroupCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'virtualization.add_clustergroup' model = ClusterGroup - form_class = forms.ClusterGroupForm + model_form = forms.ClusterGroupForm def get_return_url(self, request, obj): return reverse('virtualization:clustergroup_list') @@ -118,7 +118,7 @@ class ClusterView(View): class ClusterCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'virtualization.add_cluster' model = Cluster - form_class = forms.ClusterForm + model_form = forms.ClusterForm class ClusterEditView(ClusterCreateView): @@ -264,7 +264,7 @@ class VirtualMachineView(View): class VirtualMachineCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'virtualization.add_virtualmachine' model = VirtualMachine - form_class = forms.VirtualMachineForm + model_form = forms.VirtualMachineForm template_name = 'virtualization/virtualmachine_edit.html' default_return_url = 'virtualization:virtualmachine_list' @@ -322,7 +322,7 @@ class InterfaceEditView(PermissionRequiredMixin, ComponentEditView): permission_required = 'dcim.change_interface' model = Interface parent_field = 'virtual_machine' - form_class = forms.InterfaceForm + model_form = forms.InterfaceForm class InterfaceDeleteView(PermissionRequiredMixin, ComponentDeleteView):