1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Establish 4 core forms in netbox.forms.base

This commit is contained in:
jeremystretch
2022-01-28 15:48:15 -05:00
parent 0fe72376b1
commit f4776731ec
32 changed files with 380 additions and 366 deletions

View File

@@ -1,11 +1,11 @@
from django import forms
from dcim.models import Region, Site, SiteGroup
from extras.forms import AddRemoveTagsForm, CustomFieldModelBulkEditForm
from ipam.choices import *
from ipam.constants import *
from ipam.models import *
from ipam.models import ASN
from netbox.forms import NetBoxModelBulkEditForm
from tenancy.models import Tenant
from utilities.forms import (
add_blank_choice, BulkEditNullBooleanSelect, DatePicker, DynamicModelChoiceField, NumericArrayField, StaticSelect,
@@ -30,7 +30,7 @@ __all__ = (
)
class VRFBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
class VRFBulkEditForm(NetBoxModelBulkEditForm):
pk = forms.ModelMultipleChoiceField(
queryset=VRF.objects.all(),
widget=forms.MultipleHiddenInput()
@@ -55,7 +55,7 @@ class VRFBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
]
class RouteTargetBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
class RouteTargetBulkEditForm(NetBoxModelBulkEditForm):
pk = forms.ModelMultipleChoiceField(
queryset=RouteTarget.objects.all(),
widget=forms.MultipleHiddenInput()
@@ -75,7 +75,7 @@ class RouteTargetBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
]
class RIRBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
class RIRBulkEditForm(NetBoxModelBulkEditForm):
pk = forms.ModelMultipleChoiceField(
queryset=RIR.objects.all(),
widget=forms.MultipleHiddenInput
@@ -93,7 +93,7 @@ class RIRBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
nullable_fields = ['is_private', 'description']
class ASNBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
class ASNBulkEditForm(NetBoxModelBulkEditForm):
pk = forms.ModelMultipleChoiceField(
queryset=ASN.objects.all(),
widget=forms.MultipleHiddenInput()
@@ -125,7 +125,7 @@ class ASNBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
}
class AggregateBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
class AggregateBulkEditForm(NetBoxModelBulkEditForm):
pk = forms.ModelMultipleChoiceField(
queryset=Aggregate.objects.all(),
widget=forms.MultipleHiddenInput()
@@ -156,7 +156,7 @@ class AggregateBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
}
class RoleBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
class RoleBulkEditForm(NetBoxModelBulkEditForm):
pk = forms.ModelMultipleChoiceField(
queryset=Role.objects.all(),
widget=forms.MultipleHiddenInput
@@ -173,7 +173,7 @@ class RoleBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
nullable_fields = ['description']
class PrefixBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
class PrefixBulkEditForm(NetBoxModelBulkEditForm):
pk = forms.ModelMultipleChoiceField(
queryset=Prefix.objects.all(),
widget=forms.MultipleHiddenInput()
@@ -238,7 +238,7 @@ class PrefixBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
]
class IPRangeBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
class IPRangeBulkEditForm(NetBoxModelBulkEditForm):
pk = forms.ModelMultipleChoiceField(
queryset=IPRange.objects.all(),
widget=forms.MultipleHiddenInput()
@@ -272,7 +272,7 @@ class IPRangeBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
]
class IPAddressBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
class IPAddressBulkEditForm(NetBoxModelBulkEditForm):
pk = forms.ModelMultipleChoiceField(
queryset=IPAddress.objects.all(),
widget=forms.MultipleHiddenInput()
@@ -317,7 +317,7 @@ class IPAddressBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
]
class FHRPGroupBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
class FHRPGroupBulkEditForm(NetBoxModelBulkEditForm):
pk = forms.ModelMultipleChoiceField(
queryset=FHRPGroup.objects.all(),
widget=forms.MultipleHiddenInput()
@@ -352,7 +352,7 @@ class FHRPGroupBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
nullable_fields = ['auth_type', 'auth_key', 'description']
class VLANGroupBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
class VLANGroupBulkEditForm(NetBoxModelBulkEditForm):
pk = forms.ModelMultipleChoiceField(
queryset=VLANGroup.objects.all(),
widget=forms.MultipleHiddenInput
@@ -382,7 +382,7 @@ class VLANGroupBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
nullable_fields = ['site', 'description']
class VLANBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
class VLANBulkEditForm(NetBoxModelBulkEditForm):
pk = forms.ModelMultipleChoiceField(
queryset=VLAN.objects.all(),
widget=forms.MultipleHiddenInput()
@@ -434,7 +434,7 @@ class VLANBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
]
class ServiceTemplateBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
class ServiceTemplateBulkEditForm(NetBoxModelBulkEditForm):
pk = forms.ModelMultipleChoiceField(
queryset=ServiceTemplate.objects.all(),
widget=forms.MultipleHiddenInput()

View File

@@ -2,10 +2,10 @@ from django import forms
from django.contrib.contenttypes.models import ContentType
from dcim.models import Device, Interface, Site
from extras.forms import CustomFieldModelCSVForm
from ipam.choices import *
from ipam.constants import *
from ipam.models import *
from netbox.forms import NetBoxModelCSVForm
from tenancy.models import Tenant
from utilities.forms import CSVChoiceField, CSVContentTypeField, CSVModelChoiceField, SlugField
from virtualization.models import VirtualMachine, VMInterface
@@ -28,7 +28,7 @@ __all__ = (
)
class VRFCSVForm(CustomFieldModelCSVForm):
class VRFCSVForm(NetBoxModelCSVForm):
tenant = CSVModelChoiceField(
queryset=Tenant.objects.all(),
required=False,
@@ -41,7 +41,7 @@ class VRFCSVForm(CustomFieldModelCSVForm):
fields = ('name', 'rd', 'tenant', 'enforce_unique', 'description')
class RouteTargetCSVForm(CustomFieldModelCSVForm):
class RouteTargetCSVForm(NetBoxModelCSVForm):
tenant = CSVModelChoiceField(
queryset=Tenant.objects.all(),
required=False,
@@ -54,7 +54,7 @@ class RouteTargetCSVForm(CustomFieldModelCSVForm):
fields = ('name', 'description', 'tenant')
class RIRCSVForm(CustomFieldModelCSVForm):
class RIRCSVForm(NetBoxModelCSVForm):
slug = SlugField()
class Meta:
@@ -65,7 +65,7 @@ class RIRCSVForm(CustomFieldModelCSVForm):
}
class AggregateCSVForm(CustomFieldModelCSVForm):
class AggregateCSVForm(NetBoxModelCSVForm):
rir = CSVModelChoiceField(
queryset=RIR.objects.all(),
to_field_name='name',
@@ -83,7 +83,7 @@ class AggregateCSVForm(CustomFieldModelCSVForm):
fields = ('prefix', 'rir', 'tenant', 'date_added', 'description')
class ASNCSVForm(CustomFieldModelCSVForm):
class ASNCSVForm(NetBoxModelCSVForm):
rir = CSVModelChoiceField(
queryset=RIR.objects.all(),
to_field_name='name',
@@ -102,7 +102,7 @@ class ASNCSVForm(CustomFieldModelCSVForm):
help_texts = {}
class RoleCSVForm(CustomFieldModelCSVForm):
class RoleCSVForm(NetBoxModelCSVForm):
slug = SlugField()
class Meta:
@@ -110,7 +110,7 @@ class RoleCSVForm(CustomFieldModelCSVForm):
fields = ('name', 'slug', 'weight', 'description')
class PrefixCSVForm(CustomFieldModelCSVForm):
class PrefixCSVForm(NetBoxModelCSVForm):
vrf = CSVModelChoiceField(
queryset=VRF.objects.all(),
to_field_name='name',
@@ -174,7 +174,7 @@ class PrefixCSVForm(CustomFieldModelCSVForm):
self.fields['vlan'].queryset = self.fields['vlan'].queryset.filter(**params)
class IPRangeCSVForm(CustomFieldModelCSVForm):
class IPRangeCSVForm(NetBoxModelCSVForm):
vrf = CSVModelChoiceField(
queryset=VRF.objects.all(),
to_field_name='name',
@@ -205,7 +205,7 @@ class IPRangeCSVForm(CustomFieldModelCSVForm):
)
class IPAddressCSVForm(CustomFieldModelCSVForm):
class IPAddressCSVForm(NetBoxModelCSVForm):
vrf = CSVModelChoiceField(
queryset=VRF.objects.all(),
to_field_name='name',
@@ -312,7 +312,7 @@ class IPAddressCSVForm(CustomFieldModelCSVForm):
return ipaddress
class FHRPGroupCSVForm(CustomFieldModelCSVForm):
class FHRPGroupCSVForm(NetBoxModelCSVForm):
protocol = CSVChoiceField(
choices=FHRPGroupProtocolChoices
)
@@ -326,7 +326,7 @@ class FHRPGroupCSVForm(CustomFieldModelCSVForm):
fields = ('protocol', 'group_id', 'auth_type', 'auth_key', 'description')
class VLANGroupCSVForm(CustomFieldModelCSVForm):
class VLANGroupCSVForm(NetBoxModelCSVForm):
slug = SlugField()
scope_type = CSVContentTypeField(
queryset=ContentType.objects.filter(model__in=VLANGROUP_SCOPE_TYPES),
@@ -354,7 +354,7 @@ class VLANGroupCSVForm(CustomFieldModelCSVForm):
}
class VLANCSVForm(CustomFieldModelCSVForm):
class VLANCSVForm(NetBoxModelCSVForm):
site = CSVModelChoiceField(
queryset=Site.objects.all(),
required=False,
@@ -393,7 +393,7 @@ class VLANCSVForm(CustomFieldModelCSVForm):
}
class ServiceTemplateCSVForm(CustomFieldModelCSVForm):
class ServiceTemplateCSVForm(NetBoxModelCSVForm):
protocol = CSVChoiceField(
choices=ServiceProtocolChoices,
help_text='IP protocol'
@@ -404,7 +404,7 @@ class ServiceTemplateCSVForm(CustomFieldModelCSVForm):
fields = ('name', 'protocol', 'ports', 'description')
class ServiceCSVForm(CustomFieldModelCSVForm):
class ServiceCSVForm(NetBoxModelCSVForm):
device = CSVModelChoiceField(
queryset=Device.objects.all(),
required=False,

View File

@@ -2,11 +2,11 @@ from django import forms
from django.utils.translation import gettext as _
from dcim.models import Location, Rack, Region, Site, SiteGroup
from extras.forms import CustomFieldModelFilterForm
from ipam.choices import *
from ipam.constants import *
from ipam.models import *
from ipam.models import ASN
from netbox.forms import NetBoxModelFilterSetForm
from tenancy.forms import TenancyFilterForm
from utilities.forms import (
add_blank_choice, DynamicModelChoiceField, DynamicModelMultipleChoiceField, StaticSelect, StaticSelectMultiple,
@@ -39,7 +39,7 @@ IPADDRESS_MASK_LENGTH_CHOICES = add_blank_choice([
])
class VRFFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
class VRFFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
model = VRF
field_groups = [
['q', 'tag'],
@@ -59,7 +59,7 @@ class VRFFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
tag = TagFilterField(model)
class RouteTargetFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
class RouteTargetFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
model = RouteTarget
field_groups = [
['q', 'tag'],
@@ -79,7 +79,7 @@ class RouteTargetFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
tag = TagFilterField(model)
class RIRFilterForm(CustomFieldModelFilterForm):
class RIRFilterForm(NetBoxModelFilterSetForm):
model = RIR
is_private = forms.NullBooleanField(
required=False,
@@ -91,7 +91,7 @@ class RIRFilterForm(CustomFieldModelFilterForm):
tag = TagFilterField(model)
class AggregateFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
class AggregateFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
model = Aggregate
field_groups = [
['q', 'tag'],
@@ -112,7 +112,7 @@ class AggregateFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
tag = TagFilterField(model)
class ASNFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
class ASNFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
model = ASN
field_groups = [
['q'],
@@ -132,12 +132,12 @@ class ASNFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
)
class RoleFilterForm(CustomFieldModelFilterForm):
class RoleFilterForm(NetBoxModelFilterSetForm):
model = Role
tag = TagFilterField(model)
class PrefixFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
class PrefixFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
model = Prefix
field_groups = [
['q', 'tag'],
@@ -228,7 +228,7 @@ class PrefixFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
tag = TagFilterField(model)
class IPRangeFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
class IPRangeFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
model = IPRange
field_groups = [
['q', 'tag'],
@@ -261,7 +261,7 @@ class IPRangeFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
tag = TagFilterField(model)
class IPAddressFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
class IPAddressFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
model = IPAddress
field_groups = [
['q', 'tag'],
@@ -321,7 +321,7 @@ class IPAddressFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
tag = TagFilterField(model)
class FHRPGroupFilterForm(CustomFieldModelFilterForm):
class FHRPGroupFilterForm(NetBoxModelFilterSetForm):
model = FHRPGroup
field_groups = (
('q', 'tag'),
@@ -351,7 +351,7 @@ class FHRPGroupFilterForm(CustomFieldModelFilterForm):
tag = TagFilterField(model)
class VLANGroupFilterForm(CustomFieldModelFilterForm):
class VLANGroupFilterForm(NetBoxModelFilterSetForm):
field_groups = [
['q', 'tag'],
['region', 'sitegroup', 'site', 'location', 'rack'],
@@ -394,7 +394,7 @@ class VLANGroupFilterForm(CustomFieldModelFilterForm):
tag = TagFilterField(model)
class VLANFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
class VLANFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
model = VLAN
field_groups = [
['q', 'tag'],
@@ -448,7 +448,7 @@ class VLANFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
tag = TagFilterField(model)
class ServiceTemplateFilterForm(CustomFieldModelFilterForm):
class ServiceTemplateFilterForm(NetBoxModelFilterSetForm):
model = ServiceTemplate
field_groups = (
('q', 'tag'),

View File

@@ -2,13 +2,13 @@ from django import forms
from django.contrib.contenttypes.models import ContentType
from dcim.models import Device, Interface, Location, Rack, Region, Site, SiteGroup
from extras.forms import CustomFieldModelForm
from extras.models import Tag
from ipam.choices import *
from ipam.constants import *
from ipam.formfields import IPNetworkFormField
from ipam.models import *
from ipam.models import ASN
from netbox.forms import NetBoxModelForm
from tenancy.forms import TenancyForm
from utilities.exceptions import PermissionsViolation
from utilities.forms import (
@@ -39,7 +39,7 @@ __all__ = (
)
class VRFForm(TenancyForm, CustomFieldModelForm):
class VRFForm(TenancyForm, NetBoxModelForm):
import_targets = DynamicModelMultipleChoiceField(
queryset=RouteTarget.objects.all(),
required=False
@@ -72,7 +72,7 @@ class VRFForm(TenancyForm, CustomFieldModelForm):
}
class RouteTargetForm(TenancyForm, CustomFieldModelForm):
class RouteTargetForm(TenancyForm, NetBoxModelForm):
tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(),
required=False
@@ -89,7 +89,7 @@ class RouteTargetForm(TenancyForm, CustomFieldModelForm):
)
class RIRForm(CustomFieldModelForm):
class RIRForm(NetBoxModelForm):
slug = SlugField()
tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(),
@@ -103,7 +103,7 @@ class RIRForm(CustomFieldModelForm):
]
class AggregateForm(TenancyForm, CustomFieldModelForm):
class AggregateForm(TenancyForm, NetBoxModelForm):
rir = DynamicModelChoiceField(
queryset=RIR.objects.all(),
label='RIR'
@@ -131,7 +131,7 @@ class AggregateForm(TenancyForm, CustomFieldModelForm):
}
class ASNForm(TenancyForm, CustomFieldModelForm):
class ASNForm(TenancyForm, NetBoxModelForm):
rir = DynamicModelChoiceField(
queryset=RIR.objects.all(),
label='RIR',
@@ -175,7 +175,7 @@ class ASNForm(TenancyForm, CustomFieldModelForm):
return instance
class RoleForm(CustomFieldModelForm):
class RoleForm(NetBoxModelForm):
slug = SlugField()
tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(),
@@ -189,7 +189,7 @@ class RoleForm(CustomFieldModelForm):
]
class PrefixForm(TenancyForm, CustomFieldModelForm):
class PrefixForm(TenancyForm, NetBoxModelForm):
vrf = DynamicModelChoiceField(
queryset=VRF.objects.all(),
required=False,
@@ -264,7 +264,7 @@ class PrefixForm(TenancyForm, CustomFieldModelForm):
}
class IPRangeForm(TenancyForm, CustomFieldModelForm):
class IPRangeForm(TenancyForm, NetBoxModelForm):
vrf = DynamicModelChoiceField(
queryset=VRF.objects.all(),
required=False,
@@ -293,7 +293,7 @@ class IPRangeForm(TenancyForm, CustomFieldModelForm):
}
class IPAddressForm(TenancyForm, CustomFieldModelForm):
class IPAddressForm(TenancyForm, NetBoxModelForm):
device = DynamicModelChoiceField(
queryset=Device.objects.all(),
required=False,
@@ -506,7 +506,7 @@ class IPAddressForm(TenancyForm, CustomFieldModelForm):
return ipaddress
class IPAddressBulkAddForm(TenancyForm, CustomFieldModelForm):
class IPAddressBulkAddForm(TenancyForm, NetBoxModelForm):
vrf = DynamicModelChoiceField(
queryset=VRF.objects.all(),
required=False,
@@ -540,7 +540,7 @@ class IPAddressAssignForm(BootstrapMixin, forms.Form):
)
class FHRPGroupForm(CustomFieldModelForm):
class FHRPGroupForm(NetBoxModelForm):
tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(),
required=False
@@ -629,7 +629,7 @@ class FHRPGroupAssignmentForm(BootstrapMixin, forms.ModelForm):
self.fields['group'].widget.add_query_param('related_ip', ipaddress.pk)
class VLANGroupForm(CustomFieldModelForm):
class VLANGroupForm(NetBoxModelForm):
scope_type = ContentTypeChoiceField(
queryset=ContentType.objects.filter(model__in=VLANGROUP_SCOPE_TYPES),
required=False
@@ -736,7 +736,7 @@ class VLANGroupForm(CustomFieldModelForm):
self.instance.scope_id = None
class VLANForm(TenancyForm, CustomFieldModelForm):
class VLANForm(TenancyForm, NetBoxModelForm):
# VLANGroup assignment fields
scope_type = forms.ChoiceField(
choices=(
@@ -817,7 +817,7 @@ class VLANForm(TenancyForm, CustomFieldModelForm):
}
class ServiceTemplateForm(CustomFieldModelForm):
class ServiceTemplateForm(NetBoxModelForm):
ports = NumericArrayField(
base_field=forms.IntegerField(
min_value=SERVICE_PORT_MIN,
@@ -838,7 +838,7 @@ class ServiceTemplateForm(CustomFieldModelForm):
}
class ServiceForm(CustomFieldModelForm):
class ServiceForm(NetBoxModelForm):
device = DynamicModelChoiceField(
queryset=Device.objects.all(),
required=False