Rename bulk import form base classes

This commit is contained in:
Jeremy Stretch
2025-10-22 09:16:56 -04:00
parent c3144ddb6a
commit dd6c985300
10 changed files with 86 additions and 86 deletions

View File

@@ -7,7 +7,7 @@ from circuits.constants import *
from circuits.models import * from circuits.models import *
from dcim.models import Interface from dcim.models import Interface
from netbox.choices import DistanceUnitChoices from netbox.choices import DistanceUnitChoices
from netbox.forms import NetBoxModelImportForm, OrganizationalModelBulkImportForm, PrimaryModelBulkImportForm from netbox.forms import NetBoxModelImportForm, OrganizationalModelImportForm, PrimaryModelImportForm
from tenancy.models import Tenant from tenancy.models import Tenant
from utilities.forms.fields import CSVChoiceField, CSVContentTypeField, CSVModelChoiceField, SlugField from utilities.forms.fields import CSVChoiceField, CSVContentTypeField, CSVModelChoiceField, SlugField
@@ -28,7 +28,7 @@ __all__ = (
) )
class ProviderImportForm(PrimaryModelBulkImportForm): class ProviderImportForm(PrimaryModelImportForm):
slug = SlugField() slug = SlugField()
class Meta: class Meta:
@@ -38,7 +38,7 @@ class ProviderImportForm(PrimaryModelBulkImportForm):
) )
class ProviderAccountImportForm(PrimaryModelBulkImportForm): class ProviderAccountImportForm(PrimaryModelImportForm):
provider = CSVModelChoiceField( provider = CSVModelChoiceField(
label=_('Provider'), label=_('Provider'),
queryset=Provider.objects.all(), queryset=Provider.objects.all(),
@@ -53,7 +53,7 @@ class ProviderAccountImportForm(PrimaryModelBulkImportForm):
) )
class ProviderNetworkImportForm(PrimaryModelBulkImportForm): class ProviderNetworkImportForm(PrimaryModelImportForm):
provider = CSVModelChoiceField( provider = CSVModelChoiceField(
label=_('Provider'), label=_('Provider'),
queryset=Provider.objects.all(), queryset=Provider.objects.all(),
@@ -68,7 +68,7 @@ class ProviderNetworkImportForm(PrimaryModelBulkImportForm):
] ]
class CircuitTypeImportForm(OrganizationalModelBulkImportForm): class CircuitTypeImportForm(OrganizationalModelImportForm):
slug = SlugField() slug = SlugField()
class Meta: class Meta:
@@ -76,7 +76,7 @@ class CircuitTypeImportForm(OrganizationalModelBulkImportForm):
fields = ('name', 'slug', 'color', 'description', 'owner', 'tags') fields = ('name', 'slug', 'color', 'description', 'owner', 'tags')
class CircuitImportForm(PrimaryModelBulkImportForm): class CircuitImportForm(PrimaryModelImportForm):
provider = CSVModelChoiceField( provider = CSVModelChoiceField(
label=_('Provider'), label=_('Provider'),
queryset=Provider.objects.all(), queryset=Provider.objects.all(),
@@ -165,7 +165,7 @@ class CircuitTerminationImportForm(NetBoxModelImportForm, BaseCircuitTermination
} }
class CircuitGroupImportForm(OrganizationalModelBulkImportForm): class CircuitGroupImportForm(OrganizationalModelImportForm):
tenant = CSVModelChoiceField( tenant = CSVModelChoiceField(
label=_('Tenant'), label=_('Tenant'),
queryset=Tenant.objects.all(), queryset=Tenant.objects.all(),
@@ -195,14 +195,14 @@ class CircuitGroupAssignmentImportForm(NetBoxModelImportForm):
fields = ('member_type', 'member_id', 'group', 'priority') fields = ('member_type', 'member_id', 'group', 'priority')
class VirtualCircuitTypeImportForm(OrganizationalModelBulkImportForm): class VirtualCircuitTypeImportForm(OrganizationalModelImportForm):
class Meta: class Meta:
model = VirtualCircuitType model = VirtualCircuitType
fields = ('name', 'slug', 'color', 'description', 'owner', 'tags') fields = ('name', 'slug', 'color', 'description', 'owner', 'tags')
class VirtualCircuitImportForm(PrimaryModelBulkImportForm): class VirtualCircuitImportForm(PrimaryModelImportForm):
provider_network = CSVModelChoiceField( provider_network = CSVModelChoiceField(
label=_('Provider network'), label=_('Provider network'),
queryset=ProviderNetwork.objects.all(), queryset=ProviderNetwork.objects.all(),

View File

@@ -1,12 +1,12 @@
from core.models import * from core.models import *
from netbox.forms import PrimaryModelBulkImportForm from netbox.forms import PrimaryModelImportForm
__all__ = ( __all__ = (
'DataSourceImportForm', 'DataSourceImportForm',
) )
class DataSourceImportForm(PrimaryModelBulkImportForm): class DataSourceImportForm(PrimaryModelImportForm):
class Meta: class Meta:
model = DataSource model = DataSource

View File

@@ -12,8 +12,8 @@ from extras.models import ConfigTemplate
from ipam.models import VRF, IPAddress from ipam.models import VRF, IPAddress
from netbox.choices import * from netbox.choices import *
from netbox.forms import ( from netbox.forms import (
NestedGroupModelBulkImportForm, NetBoxModelImportForm, OrganizationalModelBulkImportForm, OwnerCSVMixin, NestedGroupModelImportForm, NetBoxModelImportForm, OrganizationalModelImportForm, OwnerCSVMixin,
PrimaryModelBulkImportForm, PrimaryModelImportForm,
) )
from tenancy.models import Tenant from tenancy.models import Tenant
from utilities.forms.fields import ( from utilities.forms.fields import (
@@ -61,7 +61,7 @@ __all__ = (
) )
class RegionImportForm(NestedGroupModelBulkImportForm): class RegionImportForm(NestedGroupModelImportForm):
parent = CSVModelChoiceField( parent = CSVModelChoiceField(
label=_('Parent'), label=_('Parent'),
queryset=Region.objects.all(), queryset=Region.objects.all(),
@@ -75,7 +75,7 @@ class RegionImportForm(NestedGroupModelBulkImportForm):
fields = ('name', 'slug', 'parent', 'description', 'owner', 'comments', 'tags') fields = ('name', 'slug', 'parent', 'description', 'owner', 'comments', 'tags')
class SiteGroupImportForm(NestedGroupModelBulkImportForm): class SiteGroupImportForm(NestedGroupModelImportForm):
parent = CSVModelChoiceField( parent = CSVModelChoiceField(
label=_('Parent'), label=_('Parent'),
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
@@ -89,7 +89,7 @@ class SiteGroupImportForm(NestedGroupModelBulkImportForm):
fields = ('name', 'slug', 'parent', 'description', 'owner', 'comments', 'tags') fields = ('name', 'slug', 'parent', 'description', 'owner', 'comments', 'tags')
class SiteImportForm(PrimaryModelBulkImportForm): class SiteImportForm(PrimaryModelImportForm):
status = CSVChoiceField( status = CSVChoiceField(
label=_('Status'), label=_('Status'),
choices=SiteStatusChoices, choices=SiteStatusChoices,
@@ -132,7 +132,7 @@ class SiteImportForm(PrimaryModelBulkImportForm):
} }
class LocationImportForm(NestedGroupModelBulkImportForm): class LocationImportForm(NestedGroupModelImportForm):
site = CSVModelChoiceField( site = CSVModelChoiceField(
label=_('Site'), label=_('Site'),
queryset=Site.objects.all(), queryset=Site.objects.all(),
@@ -178,14 +178,14 @@ class LocationImportForm(NestedGroupModelBulkImportForm):
self.fields['parent'].queryset = self.fields['parent'].queryset.filter(**params) self.fields['parent'].queryset = self.fields['parent'].queryset.filter(**params)
class RackRoleImportForm(OrganizationalModelBulkImportForm): class RackRoleImportForm(OrganizationalModelImportForm):
class Meta: class Meta:
model = RackRole model = RackRole
fields = ('name', 'slug', 'color', 'description', 'owner', 'tags') fields = ('name', 'slug', 'color', 'description', 'owner', 'tags')
class RackTypeImportForm(PrimaryModelBulkImportForm): class RackTypeImportForm(PrimaryModelImportForm):
manufacturer = forms.ModelChoiceField( manufacturer = forms.ModelChoiceField(
label=_('Manufacturer'), label=_('Manufacturer'),
queryset=Manufacturer.objects.all(), queryset=Manufacturer.objects.all(),
@@ -233,7 +233,7 @@ class RackTypeImportForm(PrimaryModelBulkImportForm):
super().__init__(data, *args, **kwargs) super().__init__(data, *args, **kwargs)
class RackImportForm(PrimaryModelBulkImportForm): class RackImportForm(PrimaryModelImportForm):
site = CSVModelChoiceField( site = CSVModelChoiceField(
label=_('Site'), label=_('Site'),
queryset=Site.objects.all(), queryset=Site.objects.all(),
@@ -335,7 +335,7 @@ class RackImportForm(PrimaryModelBulkImportForm):
raise forms.ValidationError(_("U height must be set if not specifying a rack type.")) raise forms.ValidationError(_("U height must be set if not specifying a rack type."))
class RackReservationImportForm(PrimaryModelBulkImportForm): class RackReservationImportForm(PrimaryModelImportForm):
site = CSVModelChoiceField( site = CSVModelChoiceField(
label=_('Site'), label=_('Site'),
queryset=Site.objects.all(), queryset=Site.objects.all(),
@@ -395,14 +395,14 @@ class RackReservationImportForm(PrimaryModelBulkImportForm):
self.fields['rack'].queryset = self.fields['rack'].queryset.filter(**params) self.fields['rack'].queryset = self.fields['rack'].queryset.filter(**params)
class ManufacturerImportForm(OrganizationalModelBulkImportForm): class ManufacturerImportForm(OrganizationalModelImportForm):
class Meta: class Meta:
model = Manufacturer model = Manufacturer
fields = ('name', 'slug', 'description', 'owner', 'tags') fields = ('name', 'slug', 'description', 'owner', 'tags')
class DeviceTypeImportForm(PrimaryModelBulkImportForm): class DeviceTypeImportForm(PrimaryModelImportForm):
manufacturer = CSVModelChoiceField( manufacturer = CSVModelChoiceField(
label=_('Manufacturer'), label=_('Manufacturer'),
queryset=Manufacturer.objects.all(), queryset=Manufacturer.objects.all(),
@@ -437,7 +437,7 @@ class DeviceTypeImportForm(PrimaryModelBulkImportForm):
] ]
class ModuleTypeProfileImportForm(PrimaryModelBulkImportForm): class ModuleTypeProfileImportForm(PrimaryModelImportForm):
class Meta: class Meta:
model = ModuleTypeProfile model = ModuleTypeProfile
@@ -446,7 +446,7 @@ class ModuleTypeProfileImportForm(PrimaryModelBulkImportForm):
] ]
class ModuleTypeImportForm(PrimaryModelBulkImportForm): class ModuleTypeImportForm(PrimaryModelImportForm):
profile = forms.ModelChoiceField( profile = forms.ModelChoiceField(
label=_('Profile'), label=_('Profile'),
queryset=ModuleTypeProfile.objects.all(), queryset=ModuleTypeProfile.objects.all(),
@@ -484,7 +484,7 @@ class ModuleTypeImportForm(PrimaryModelBulkImportForm):
] ]
class DeviceRoleImportForm(NestedGroupModelBulkImportForm): class DeviceRoleImportForm(NestedGroupModelImportForm):
parent = CSVModelChoiceField( parent = CSVModelChoiceField(
label=_('Parent'), label=_('Parent'),
queryset=DeviceRole.objects.all(), queryset=DeviceRole.objects.all(),
@@ -510,7 +510,7 @@ class DeviceRoleImportForm(NestedGroupModelBulkImportForm):
) )
class PlatformImportForm(NestedGroupModelBulkImportForm): class PlatformImportForm(NestedGroupModelImportForm):
parent = CSVModelChoiceField( parent = CSVModelChoiceField(
label=_('Parent'), label=_('Parent'),
queryset=Platform.objects.all(), queryset=Platform.objects.all(),
@@ -543,7 +543,7 @@ class PlatformImportForm(NestedGroupModelBulkImportForm):
) )
class BaseDeviceImportForm(PrimaryModelBulkImportForm): class BaseDeviceImportForm(PrimaryModelImportForm):
role = CSVModelChoiceField( role = CSVModelChoiceField(
label=_('Device role'), label=_('Device role'),
queryset=DeviceRole.objects.all(), queryset=DeviceRole.objects.all(),
@@ -717,7 +717,7 @@ class DeviceImportForm(BaseDeviceImportForm):
self.instance.parent_bay = device_bay self.instance.parent_bay = device_bay
class ModuleImportForm(ModuleCommonForm, PrimaryModelBulkImportForm): class ModuleImportForm(ModuleCommonForm, PrimaryModelImportForm):
device = CSVModelChoiceField( device = CSVModelChoiceField(
label=_('Device'), label=_('Device'),
queryset=Device.objects.all(), queryset=Device.objects.all(),
@@ -1263,7 +1263,7 @@ class InventoryItemImportForm(OwnerCSVMixin, NetBoxModelImportForm):
# Device component roles # Device component roles
# #
class InventoryItemRoleImportForm(OrganizationalModelBulkImportForm): class InventoryItemRoleImportForm(OrganizationalModelImportForm):
slug = SlugField() slug = SlugField()
class Meta: class Meta:
@@ -1275,7 +1275,7 @@ class InventoryItemRoleImportForm(OrganizationalModelBulkImportForm):
# Addressing # Addressing
# #
class MACAddressImportForm(PrimaryModelBulkImportForm): class MACAddressImportForm(PrimaryModelImportForm):
device = CSVModelChoiceField( device = CSVModelChoiceField(
label=_('Device'), label=_('Device'),
queryset=Device.objects.all(), queryset=Device.objects.all(),
@@ -1360,7 +1360,7 @@ class MACAddressImportForm(PrimaryModelBulkImportForm):
# Cables # Cables
# #
class CableImportForm(PrimaryModelBulkImportForm): class CableImportForm(PrimaryModelImportForm):
# Termination A # Termination A
side_a_site = CSVModelChoiceField( side_a_site = CSVModelChoiceField(
label=_('Side A site'), label=_('Side A site'),
@@ -1543,7 +1543,7 @@ class CableImportForm(PrimaryModelBulkImportForm):
# #
class VirtualChassisImportForm(PrimaryModelBulkImportForm): class VirtualChassisImportForm(PrimaryModelImportForm):
master = CSVModelChoiceField( master = CSVModelChoiceField(
label=_('Master'), label=_('Master'),
queryset=Device.objects.all(), queryset=Device.objects.all(),
@@ -1561,7 +1561,7 @@ class VirtualChassisImportForm(PrimaryModelBulkImportForm):
# Power # Power
# #
class PowerPanelImportForm(PrimaryModelBulkImportForm): class PowerPanelImportForm(PrimaryModelImportForm):
site = CSVModelChoiceField( site = CSVModelChoiceField(
label=_('Site'), label=_('Site'),
queryset=Site.objects.all(), queryset=Site.objects.all(),
@@ -1589,7 +1589,7 @@ class PowerPanelImportForm(PrimaryModelBulkImportForm):
self.fields['location'].queryset = self.fields['location'].queryset.filter(**params) self.fields['location'].queryset = self.fields['location'].queryset.filter(**params)
class PowerFeedImportForm(PrimaryModelBulkImportForm): class PowerFeedImportForm(PrimaryModelImportForm):
site = CSVModelChoiceField( site = CSVModelChoiceField(
label=_('Site'), label=_('Site'),
queryset=Site.objects.all(), queryset=Site.objects.all(),
@@ -1671,7 +1671,7 @@ class PowerFeedImportForm(PrimaryModelBulkImportForm):
self.fields['rack'].queryset = self.fields['rack'].queryset.filter(**params) self.fields['rack'].queryset = self.fields['rack'].queryset.filter(**params)
class VirtualDeviceContextImportForm(PrimaryModelBulkImportForm): class VirtualDeviceContextImportForm(PrimaryModelImportForm):
device = CSVModelChoiceField( device = CSVModelChoiceField(
label=_('Device'), label=_('Device'),
queryset=Device.objects.all(), queryset=Device.objects.all(),

View File

@@ -9,7 +9,7 @@ from core.models import ObjectType
from extras.choices import * from extras.choices import *
from extras.models import * from extras.models import *
from netbox.events import get_event_type_choices from netbox.events import get_event_type_choices
from netbox.forms import NetBoxModelImportForm, OwnerCSVMixin, PrimaryModelBulkImportForm from netbox.forms import NetBoxModelImportForm, OwnerCSVMixin, PrimaryModelImportForm
from users.models import Group, User from users.models import Group, User
from utilities.forms import CSVModelForm from utilities.forms import CSVModelForm
from utilities.forms.fields import ( from utilities.forms.fields import (
@@ -150,7 +150,7 @@ class ExportTemplateImportForm(OwnerCSVMixin, CSVModelForm):
) )
class ConfigContextProfileImportForm(PrimaryModelBulkImportForm): class ConfigContextProfileImportForm(PrimaryModelImportForm):
class Meta: class Meta:
model = ConfigContextProfile model = ConfigContextProfile

View File

@@ -7,7 +7,7 @@ from dcim.forms.mixins import ScopedImportForm
from ipam.choices import * from ipam.choices import *
from ipam.constants import * from ipam.constants import *
from ipam.models import * from ipam.models import *
from netbox.forms import NetBoxModelImportForm, OrganizationalModelBulkImportForm, PrimaryModelBulkImportForm from netbox.forms import NetBoxModelImportForm, OrganizationalModelImportForm, PrimaryModelImportForm
from tenancy.models import Tenant from tenancy.models import Tenant
from utilities.forms.fields import ( from utilities.forms.fields import (
CSVChoiceField, CSVContentTypeField, CSVModelChoiceField, CSVModelMultipleChoiceField, SlugField, CSVChoiceField, CSVContentTypeField, CSVModelChoiceField, CSVModelMultipleChoiceField, SlugField,
@@ -36,7 +36,7 @@ __all__ = (
) )
class VRFImportForm(PrimaryModelBulkImportForm): class VRFImportForm(PrimaryModelImportForm):
tenant = CSVModelChoiceField( tenant = CSVModelChoiceField(
label=_('Tenant'), label=_('Tenant'),
queryset=Tenant.objects.all(), queryset=Tenant.objects.all(),
@@ -65,7 +65,7 @@ class VRFImportForm(PrimaryModelBulkImportForm):
) )
class RouteTargetImportForm(PrimaryModelBulkImportForm): class RouteTargetImportForm(PrimaryModelImportForm):
tenant = CSVModelChoiceField( tenant = CSVModelChoiceField(
label=_('Tenant'), label=_('Tenant'),
queryset=Tenant.objects.all(), queryset=Tenant.objects.all(),
@@ -79,7 +79,7 @@ class RouteTargetImportForm(PrimaryModelBulkImportForm):
fields = ('name', 'tenant', 'description', 'owner', 'comments', 'tags') fields = ('name', 'tenant', 'description', 'owner', 'comments', 'tags')
class RIRImportForm(OrganizationalModelBulkImportForm): class RIRImportForm(OrganizationalModelImportForm):
slug = SlugField() slug = SlugField()
class Meta: class Meta:
@@ -87,7 +87,7 @@ class RIRImportForm(OrganizationalModelBulkImportForm):
fields = ('name', 'slug', 'is_private', 'description', 'owner', 'tags') fields = ('name', 'slug', 'is_private', 'description', 'owner', 'tags')
class AggregateImportForm(PrimaryModelBulkImportForm): class AggregateImportForm(PrimaryModelImportForm):
rir = CSVModelChoiceField( rir = CSVModelChoiceField(
label=_('RIR'), label=_('RIR'),
queryset=RIR.objects.all(), queryset=RIR.objects.all(),
@@ -107,7 +107,7 @@ class AggregateImportForm(PrimaryModelBulkImportForm):
fields = ('prefix', 'rir', 'tenant', 'date_added', 'description', 'owner', 'comments', 'tags') fields = ('prefix', 'rir', 'tenant', 'date_added', 'description', 'owner', 'comments', 'tags')
class ASNRangeImportForm(OrganizationalModelBulkImportForm): class ASNRangeImportForm(OrganizationalModelImportForm):
rir = CSVModelChoiceField( rir = CSVModelChoiceField(
label=_('RIR'), label=_('RIR'),
queryset=RIR.objects.all(), queryset=RIR.objects.all(),
@@ -127,7 +127,7 @@ class ASNRangeImportForm(OrganizationalModelBulkImportForm):
fields = ('name', 'slug', 'rir', 'start', 'end', 'tenant', 'description', 'owner', 'tags') fields = ('name', 'slug', 'rir', 'start', 'end', 'tenant', 'description', 'owner', 'tags')
class ASNImportForm(PrimaryModelBulkImportForm): class ASNImportForm(PrimaryModelImportForm):
rir = CSVModelChoiceField( rir = CSVModelChoiceField(
label=_('RIR'), label=_('RIR'),
queryset=RIR.objects.all(), queryset=RIR.objects.all(),
@@ -147,14 +147,14 @@ class ASNImportForm(PrimaryModelBulkImportForm):
fields = ('asn', 'rir', 'tenant', 'description', 'owner', 'comments', 'tags') fields = ('asn', 'rir', 'tenant', 'description', 'owner', 'comments', 'tags')
class RoleImportForm(OrganizationalModelBulkImportForm): class RoleImportForm(OrganizationalModelImportForm):
class Meta: class Meta:
model = Role model = Role
fields = ('name', 'slug', 'weight', 'description', 'owner', 'tags') fields = ('name', 'slug', 'weight', 'description', 'owner', 'tags')
class PrefixImportForm(ScopedImportForm, PrimaryModelBulkImportForm): class PrefixImportForm(ScopedImportForm, PrimaryModelImportForm):
vrf = CSVModelChoiceField( vrf = CSVModelChoiceField(
label=_('VRF'), label=_('VRF'),
queryset=VRF.objects.all(), queryset=VRF.objects.all(),
@@ -243,7 +243,7 @@ class PrefixImportForm(ScopedImportForm, PrimaryModelBulkImportForm):
self.fields['vlan'].queryset = queryset self.fields['vlan'].queryset = queryset
class IPRangeImportForm(PrimaryModelBulkImportForm): class IPRangeImportForm(PrimaryModelImportForm):
vrf = CSVModelChoiceField( vrf = CSVModelChoiceField(
label=_('VRF'), label=_('VRF'),
queryset=VRF.objects.all(), queryset=VRF.objects.all(),
@@ -279,7 +279,7 @@ class IPRangeImportForm(PrimaryModelBulkImportForm):
) )
class IPAddressImportForm(PrimaryModelBulkImportForm): class IPAddressImportForm(PrimaryModelImportForm):
vrf = CSVModelChoiceField( vrf = CSVModelChoiceField(
label=_('VRF'), label=_('VRF'),
queryset=VRF.objects.all(), queryset=VRF.objects.all(),
@@ -427,7 +427,7 @@ class IPAddressImportForm(PrimaryModelBulkImportForm):
return ipaddress return ipaddress
class FHRPGroupImportForm(PrimaryModelBulkImportForm): class FHRPGroupImportForm(PrimaryModelImportForm):
protocol = CSVChoiceField( protocol = CSVChoiceField(
label=_('Protocol'), label=_('Protocol'),
choices=FHRPGroupProtocolChoices choices=FHRPGroupProtocolChoices
@@ -443,7 +443,7 @@ class FHRPGroupImportForm(PrimaryModelBulkImportForm):
fields = ('protocol', 'group_id', 'auth_type', 'auth_key', 'name', 'description', 'owner', 'comments', 'tags') fields = ('protocol', 'group_id', 'auth_type', 'auth_key', 'name', 'description', 'owner', 'comments', 'tags')
class VLANGroupImportForm(OrganizationalModelBulkImportForm): class VLANGroupImportForm(OrganizationalModelImportForm):
scope_type = CSVContentTypeField( scope_type = CSVContentTypeField(
queryset=ContentType.objects.filter(model__in=VLANGROUP_SCOPE_TYPES), queryset=ContentType.objects.filter(model__in=VLANGROUP_SCOPE_TYPES),
required=False, required=False,
@@ -468,7 +468,7 @@ class VLANGroupImportForm(OrganizationalModelBulkImportForm):
} }
class VLANImportForm(PrimaryModelBulkImportForm): class VLANImportForm(PrimaryModelImportForm):
site = CSVModelChoiceField( site = CSVModelChoiceField(
label=_('Site'), label=_('Site'),
queryset=Site.objects.all(), queryset=Site.objects.all(),
@@ -524,7 +524,7 @@ class VLANImportForm(PrimaryModelBulkImportForm):
) )
class VLANTranslationPolicyImportForm(PrimaryModelBulkImportForm): class VLANTranslationPolicyImportForm(PrimaryModelImportForm):
class Meta: class Meta:
model = VLANTranslationPolicy model = VLANTranslationPolicy
@@ -544,7 +544,7 @@ class VLANTranslationRuleImportForm(NetBoxModelImportForm):
fields = ('policy', 'local_vid', 'remote_vid') fields = ('policy', 'local_vid', 'remote_vid')
class ServiceTemplateImportForm(PrimaryModelBulkImportForm): class ServiceTemplateImportForm(PrimaryModelImportForm):
protocol = CSVChoiceField( protocol = CSVChoiceField(
label=_('Protocol'), label=_('Protocol'),
choices=ServiceProtocolChoices, choices=ServiceProtocolChoices,
@@ -556,7 +556,7 @@ class ServiceTemplateImportForm(PrimaryModelBulkImportForm):
fields = ('name', 'protocol', 'ports', 'description', 'owner', 'comments', 'tags') fields = ('name', 'protocol', 'ports', 'description', 'owner', 'comments', 'tags')
class ServiceImportForm(PrimaryModelBulkImportForm): class ServiceImportForm(PrimaryModelImportForm):
parent_object_type = CSVContentTypeField( parent_object_type = CSVContentTypeField(
queryset=ContentType.objects.filter(SERVICE_ASSIGNMENT_MODELS), queryset=ContentType.objects.filter(SERVICE_ASSIGNMENT_MODELS),
required=True, required=True,

View File

@@ -9,11 +9,11 @@ from utilities.forms.fields import CSVModelMultipleChoiceField, CSVModelChoiceFi
from .model_forms import NetBoxModelForm from .model_forms import NetBoxModelForm
__all__ = ( __all__ = (
'NestedGroupModelBulkImportForm', 'NestedGroupModelImportForm',
'NetBoxModelImportForm', 'NetBoxModelImportForm',
'OrganizationalModelBulkImportForm', 'OrganizationalModelImportForm',
'OwnerCSVMixin', 'OwnerCSVMixin',
'PrimaryModelBulkImportForm' 'PrimaryModelImportForm'
) )
@@ -48,21 +48,21 @@ class OwnerCSVMixin(forms.Form):
) )
class PrimaryModelBulkImportForm(OwnerCSVMixin, NetBoxModelImportForm): class PrimaryModelImportForm(OwnerCSVMixin, NetBoxModelImportForm):
""" """
Bulk import form for models which inherit from PrimaryModel. Bulk import form for models which inherit from PrimaryModel.
""" """
pass pass
class OrganizationalModelBulkImportForm(OwnerCSVMixin, NetBoxModelImportForm): class OrganizationalModelImportForm(OwnerCSVMixin, NetBoxModelImportForm):
""" """
Bulk import form for models which inherit from OrganizationalModel. Bulk import form for models which inherit from OrganizationalModel.
""" """
slug = SlugField() slug = SlugField()
class NestedGroupModelBulkImportForm(OwnerCSVMixin, NetBoxModelImportForm): class NestedGroupModelImportForm(OwnerCSVMixin, NetBoxModelImportForm):
""" """
Bulk import form for models which inherit from NestedGroupModel. Bulk import form for models which inherit from NestedGroupModel.
""" """

View File

@@ -3,8 +3,8 @@ from django.contrib.contenttypes.models import ContentType
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from netbox.forms import ( from netbox.forms import (
NestedGroupModelBulkImportForm, NetBoxModelImportForm, OrganizationalModelBulkImportForm, NestedGroupModelImportForm, NetBoxModelImportForm, OrganizationalModelImportForm,
PrimaryModelBulkImportForm, PrimaryModelImportForm,
) )
from tenancy.models import * from tenancy.models import *
from utilities.forms.fields import CSVContentTypeField, CSVModelChoiceField, CSVModelMultipleChoiceField, SlugField from utilities.forms.fields import CSVContentTypeField, CSVModelChoiceField, CSVModelMultipleChoiceField, SlugField
@@ -23,7 +23,7 @@ __all__ = (
# Tenants # Tenants
# #
class TenantGroupImportForm(NestedGroupModelBulkImportForm): class TenantGroupImportForm(NestedGroupModelImportForm):
parent = CSVModelChoiceField( parent = CSVModelChoiceField(
label=_('Parent'), label=_('Parent'),
queryset=TenantGroup.objects.all(), queryset=TenantGroup.objects.all(),
@@ -37,7 +37,7 @@ class TenantGroupImportForm(NestedGroupModelBulkImportForm):
fields = ('name', 'slug', 'parent', 'description', 'owner', 'comments', 'tags') fields = ('name', 'slug', 'parent', 'description', 'owner', 'comments', 'tags')
class TenantImportForm(PrimaryModelBulkImportForm): class TenantImportForm(PrimaryModelImportForm):
slug = SlugField() slug = SlugField()
group = CSVModelChoiceField( group = CSVModelChoiceField(
label=_('Group'), label=_('Group'),
@@ -56,7 +56,7 @@ class TenantImportForm(PrimaryModelBulkImportForm):
# Contacts # Contacts
# #
class ContactGroupImportForm(NestedGroupModelBulkImportForm): class ContactGroupImportForm(NestedGroupModelImportForm):
parent = CSVModelChoiceField( parent = CSVModelChoiceField(
label=_('Parent'), label=_('Parent'),
queryset=ContactGroup.objects.all(), queryset=ContactGroup.objects.all(),
@@ -70,14 +70,14 @@ class ContactGroupImportForm(NestedGroupModelBulkImportForm):
fields = ('name', 'slug', 'parent', 'description', 'owner', 'comments', 'tags') fields = ('name', 'slug', 'parent', 'description', 'owner', 'comments', 'tags')
class ContactRoleImportForm(OrganizationalModelBulkImportForm): class ContactRoleImportForm(OrganizationalModelImportForm):
class Meta: class Meta:
model = ContactRole model = ContactRole
fields = ('name', 'slug', 'description', 'owner', 'tags') fields = ('name', 'slug', 'description', 'owner', 'tags')
class ContactImportForm(PrimaryModelBulkImportForm): class ContactImportForm(PrimaryModelImportForm):
groups = CSVModelMultipleChoiceField( groups = CSVModelMultipleChoiceField(
queryset=ContactGroup.objects.all(), queryset=ContactGroup.objects.all(),
required=False, required=False,

View File

@@ -6,7 +6,7 @@ from dcim.models import Device, DeviceRole, Platform, Site
from extras.models import ConfigTemplate from extras.models import ConfigTemplate
from ipam.models import VRF from ipam.models import VRF
from netbox.forms import ( from netbox.forms import (
NetBoxModelImportForm, OrganizationalModelBulkImportForm, OwnerCSVMixin, PrimaryModelBulkImportForm, NetBoxModelImportForm, OrganizationalModelImportForm, OwnerCSVMixin, PrimaryModelImportForm,
) )
from tenancy.models import Tenant from tenancy.models import Tenant
from utilities.forms.fields import CSVChoiceField, CSVModelChoiceField from utilities.forms.fields import CSVChoiceField, CSVModelChoiceField
@@ -23,21 +23,21 @@ __all__ = (
) )
class ClusterTypeImportForm(OrganizationalModelBulkImportForm): class ClusterTypeImportForm(OrganizationalModelImportForm):
class Meta: class Meta:
model = ClusterType model = ClusterType
fields = ('name', 'slug', 'description', 'owner', 'tags') fields = ('name', 'slug', 'description', 'owner', 'tags')
class ClusterGroupImportForm(OrganizationalModelBulkImportForm): class ClusterGroupImportForm(OrganizationalModelImportForm):
class Meta: class Meta:
model = ClusterGroup model = ClusterGroup
fields = ('name', 'slug', 'description', 'owner', 'tags') fields = ('name', 'slug', 'description', 'owner', 'tags')
class ClusterImportForm(ScopedImportForm, PrimaryModelBulkImportForm): class ClusterImportForm(ScopedImportForm, PrimaryModelImportForm):
type = CSVModelChoiceField( type = CSVModelChoiceField(
label=_('Type'), label=_('Type'),
queryset=ClusterType.objects.all(), queryset=ClusterType.objects.all(),
@@ -82,7 +82,7 @@ class ClusterImportForm(ScopedImportForm, PrimaryModelBulkImportForm):
} }
class VirtualMachineImportForm(PrimaryModelBulkImportForm): class VirtualMachineImportForm(PrimaryModelImportForm):
status = CSVChoiceField( status = CSVChoiceField(
label=_('Status'), label=_('Status'),
choices=VirtualMachineStatusChoices, choices=VirtualMachineStatusChoices,

View File

@@ -3,7 +3,7 @@ from django.utils.translation import gettext_lazy as _
from dcim.models import Device, Interface from dcim.models import Device, Interface
from ipam.models import IPAddress, VLAN from ipam.models import IPAddress, VLAN
from netbox.forms import NetBoxModelImportForm, OrganizationalModelBulkImportForm, PrimaryModelBulkImportForm from netbox.forms import NetBoxModelImportForm, OrganizationalModelImportForm, PrimaryModelImportForm
from tenancy.models import Tenant from tenancy.models import Tenant
from utilities.forms.fields import CSVChoiceField, CSVModelChoiceField, CSVModelMultipleChoiceField from utilities.forms.fields import CSVChoiceField, CSVModelChoiceField, CSVModelMultipleChoiceField
from virtualization.models import VirtualMachine, VMInterface from virtualization.models import VirtualMachine, VMInterface
@@ -24,14 +24,14 @@ __all__ = (
) )
class TunnelGroupImportForm(OrganizationalModelBulkImportForm): class TunnelGroupImportForm(OrganizationalModelImportForm):
class Meta: class Meta:
model = TunnelGroup model = TunnelGroup
fields = ('name', 'slug', 'description', 'owner', 'tags') fields = ('name', 'slug', 'description', 'owner', 'tags')
class TunnelImportForm(PrimaryModelBulkImportForm): class TunnelImportForm(PrimaryModelImportForm):
status = CSVChoiceField( status = CSVChoiceField(
label=_('Status'), label=_('Status'),
choices=TunnelStatusChoices, choices=TunnelStatusChoices,
@@ -139,7 +139,7 @@ class TunnelTerminationImportForm(NetBoxModelImportForm):
return super().save(*args, **kwargs) return super().save(*args, **kwargs)
class IKEProposalImportForm(PrimaryModelBulkImportForm): class IKEProposalImportForm(PrimaryModelImportForm):
authentication_method = CSVChoiceField( authentication_method = CSVChoiceField(
label=_('Authentication method'), label=_('Authentication method'),
choices=AuthenticationMethodChoices choices=AuthenticationMethodChoices
@@ -166,7 +166,7 @@ class IKEProposalImportForm(PrimaryModelBulkImportForm):
) )
class IKEPolicyImportForm(PrimaryModelBulkImportForm): class IKEPolicyImportForm(PrimaryModelImportForm):
version = CSVChoiceField( version = CSVChoiceField(
label=_('Version'), label=_('Version'),
choices=IKEVersionChoices choices=IKEVersionChoices
@@ -189,7 +189,7 @@ class IKEPolicyImportForm(PrimaryModelBulkImportForm):
) )
class IPSecProposalImportForm(PrimaryModelBulkImportForm): class IPSecProposalImportForm(PrimaryModelImportForm):
encryption_algorithm = CSVChoiceField( encryption_algorithm = CSVChoiceField(
label=_('Encryption algorithm'), label=_('Encryption algorithm'),
choices=EncryptionAlgorithmChoices, choices=EncryptionAlgorithmChoices,
@@ -209,7 +209,7 @@ class IPSecProposalImportForm(PrimaryModelBulkImportForm):
) )
class IPSecPolicyImportForm(PrimaryModelBulkImportForm): class IPSecPolicyImportForm(PrimaryModelImportForm):
pfs_group = CSVChoiceField( pfs_group = CSVChoiceField(
label=_('Diffie-Hellman group for Perfect Forward Secrecy'), label=_('Diffie-Hellman group for Perfect Forward Secrecy'),
choices=DHGroupChoices, choices=DHGroupChoices,
@@ -228,7 +228,7 @@ class IPSecPolicyImportForm(PrimaryModelBulkImportForm):
) )
class IPSecProfileImportForm(PrimaryModelBulkImportForm): class IPSecProfileImportForm(PrimaryModelImportForm):
mode = CSVChoiceField( mode = CSVChoiceField(
label=_('Mode'), label=_('Mode'),
choices=IPSecModeChoices, choices=IPSecModeChoices,
@@ -252,7 +252,7 @@ class IPSecProfileImportForm(PrimaryModelBulkImportForm):
) )
class L2VPNImportForm(PrimaryModelBulkImportForm): class L2VPNImportForm(PrimaryModelImportForm):
tenant = CSVModelChoiceField( tenant = CSVModelChoiceField(
label=_('Tenant'), label=_('Tenant'),
queryset=Tenant.objects.all(), queryset=Tenant.objects.all(),

View File

@@ -5,7 +5,7 @@ from dcim.forms.mixins import ScopedImportForm
from dcim.models import Device, Interface, Site from dcim.models import Device, Interface, Site
from ipam.models import VLAN from ipam.models import VLAN
from netbox.choices import * from netbox.choices import *
from netbox.forms import NestedGroupModelBulkImportForm, PrimaryModelBulkImportForm from netbox.forms import NestedGroupModelImportForm, PrimaryModelImportForm
from tenancy.models import Tenant from tenancy.models import Tenant
from utilities.forms.fields import CSVChoiceField, CSVModelChoiceField from utilities.forms.fields import CSVChoiceField, CSVModelChoiceField
from wireless.choices import * from wireless.choices import *
@@ -18,7 +18,7 @@ __all__ = (
) )
class WirelessLANGroupImportForm(NestedGroupModelBulkImportForm): class WirelessLANGroupImportForm(NestedGroupModelImportForm):
parent = CSVModelChoiceField( parent = CSVModelChoiceField(
label=_('Parent'), label=_('Parent'),
queryset=WirelessLANGroup.objects.all(), queryset=WirelessLANGroup.objects.all(),
@@ -32,7 +32,7 @@ class WirelessLANGroupImportForm(NestedGroupModelBulkImportForm):
fields = ('name', 'slug', 'parent', 'description', 'owner', 'comments', 'tags') fields = ('name', 'slug', 'parent', 'description', 'owner', 'comments', 'tags')
class WirelessLANImportForm(ScopedImportForm, PrimaryModelBulkImportForm): class WirelessLANImportForm(ScopedImportForm, PrimaryModelImportForm):
group = CSVModelChoiceField( group = CSVModelChoiceField(
label=_('Group'), label=_('Group'),
queryset=WirelessLANGroup.objects.all(), queryset=WirelessLANGroup.objects.all(),
@@ -83,7 +83,7 @@ class WirelessLANImportForm(ScopedImportForm, PrimaryModelBulkImportForm):
} }
class WirelessLinkImportForm(PrimaryModelBulkImportForm): class WirelessLinkImportForm(PrimaryModelImportForm):
# Termination A # Termination A
site_a = CSVModelChoiceField( site_a = CSVModelChoiceField(
label=_('Site A'), label=_('Site A'),