Merge pull request #7878 from netbox-community/7877-bootstrapmixin-cleanup

Closes #7877: BootstrapMixin cleanup
This commit is contained in:
Jeremy Stretch 2021-11-18 17:05:29 -05:00 committed by GitHub
commit 30a5c70260
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 193 additions and 217 deletions

View File

@ -4,9 +4,7 @@ from circuits.choices import CircuitStatusChoices
from circuits.models import * from circuits.models import *
from extras.forms import AddRemoveTagsForm, CustomFieldModelBulkEditForm from extras.forms import AddRemoveTagsForm, CustomFieldModelBulkEditForm
from tenancy.models import Tenant from tenancy.models import Tenant
from utilities.forms import ( from utilities.forms import add_blank_choice, CommentField, DynamicModelChoiceField, SmallTextarea, StaticSelect
add_blank_choice, BootstrapMixin, CommentField, DynamicModelChoiceField, SmallTextarea, StaticSelect,
)
__all__ = ( __all__ = (
'CircuitBulkEditForm', 'CircuitBulkEditForm',
@ -16,7 +14,7 @@ __all__ = (
) )
class ProviderBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class ProviderBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Provider.objects.all(), queryset=Provider.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -55,7 +53,7 @@ class ProviderBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBu
] ]
class ProviderNetworkBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class ProviderNetworkBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=ProviderNetwork.objects.all(), queryset=ProviderNetwork.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -79,7 +77,7 @@ class ProviderNetworkBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomField
] ]
class CircuitTypeBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class CircuitTypeBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=CircuitType.objects.all(), queryset=CircuitType.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -93,7 +91,7 @@ class CircuitTypeBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldMode
nullable_fields = ['description'] nullable_fields = ['description']
class CircuitBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class CircuitBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Circuit.objects.all(), queryset=Circuit.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput

View File

@ -6,7 +6,7 @@ from circuits.models import *
from dcim.models import Region, Site, SiteGroup from dcim.models import Region, Site, SiteGroup
from extras.forms import CustomFieldModelFilterForm from extras.forms import CustomFieldModelFilterForm
from tenancy.forms import TenancyFilterForm from tenancy.forms import TenancyFilterForm
from utilities.forms import BootstrapMixin, DynamicModelMultipleChoiceField, StaticSelectMultiple, TagFilterField from utilities.forms import DynamicModelMultipleChoiceField, StaticSelectMultiple, TagFilterField
__all__ = ( __all__ = (
'CircuitFilterForm', 'CircuitFilterForm',
@ -16,7 +16,7 @@ __all__ = (
) )
class ProviderFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class ProviderFilterForm(CustomFieldModelFilterForm):
model = Provider model = Provider
field_groups = [ field_groups = [
['q', 'tag'], ['q', 'tag'],
@ -57,7 +57,7 @@ class ProviderFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class ProviderNetworkFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class ProviderNetworkFilterForm(CustomFieldModelFilterForm):
model = ProviderNetwork model = ProviderNetwork
field_groups = ( field_groups = (
('q', 'tag'), ('q', 'tag'),
@ -77,7 +77,7 @@ class ProviderNetworkFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class CircuitTypeFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class CircuitTypeFilterForm(CustomFieldModelFilterForm):
model = CircuitType model = CircuitType
q = forms.CharField( q = forms.CharField(
required=False, required=False,
@ -87,7 +87,7 @@ class CircuitTypeFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class CircuitFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm): class CircuitFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
model = Circuit model = Circuit
field_groups = [ field_groups = [
['q', 'tag'], ['q', 'tag'],

View File

@ -19,7 +19,7 @@ __all__ = (
) )
class ProviderForm(BootstrapMixin, CustomFieldModelForm): class ProviderForm(CustomFieldModelForm):
slug = SlugField() slug = SlugField()
comments = CommentField() comments = CommentField()
tags = DynamicModelMultipleChoiceField( tags = DynamicModelMultipleChoiceField(
@ -53,7 +53,7 @@ class ProviderForm(BootstrapMixin, CustomFieldModelForm):
} }
class ProviderNetworkForm(BootstrapMixin, CustomFieldModelForm): class ProviderNetworkForm(CustomFieldModelForm):
provider = DynamicModelChoiceField( provider = DynamicModelChoiceField(
queryset=Provider.objects.all() queryset=Provider.objects.all()
) )
@ -73,7 +73,7 @@ class ProviderNetworkForm(BootstrapMixin, CustomFieldModelForm):
) )
class CircuitTypeForm(BootstrapMixin, CustomFieldModelForm): class CircuitTypeForm(CustomFieldModelForm):
slug = SlugField() slug = SlugField()
tags = DynamicModelMultipleChoiceField( tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
@ -87,7 +87,7 @@ class CircuitTypeForm(BootstrapMixin, CustomFieldModelForm):
] ]
class CircuitForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class CircuitForm(TenancyForm, CustomFieldModelForm):
provider = DynamicModelChoiceField( provider = DynamicModelChoiceField(
queryset=Provider.objects.all() queryset=Provider.objects.all()
) )

View File

@ -3,7 +3,7 @@ from django import forms
from dcim.models import * from dcim.models import *
from extras.forms import CustomFieldsMixin from extras.forms import CustomFieldsMixin
from extras.models import Tag from extras.models import Tag
from utilities.forms import BootstrapMixin, DynamicModelMultipleChoiceField, form_from_model from utilities.forms import DynamicModelMultipleChoiceField, form_from_model
from .object_create import ComponentForm from .object_create import ComponentForm
__all__ = ( __all__ = (
@ -23,7 +23,7 @@ __all__ = (
# Device components # Device components
# #
class DeviceBulkAddComponentForm(BootstrapMixin, CustomFieldsMixin, ComponentForm): class DeviceBulkAddComponentForm(CustomFieldsMixin, ComponentForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Device.objects.all(), queryset=Device.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()

View File

@ -11,8 +11,8 @@ from ipam.constants import BGP_ASN_MIN, BGP_ASN_MAX
from ipam.models import VLAN, ASN from ipam.models import VLAN, ASN
from tenancy.models import Tenant from tenancy.models import Tenant
from utilities.forms import ( from utilities.forms import (
add_blank_choice, BootstrapMixin, BulkEditForm, BulkEditNullBooleanSelect, ColorField, CommentField, add_blank_choice, BulkEditForm, BulkEditNullBooleanSelect, ColorField, CommentField, DynamicModelChoiceField,
DynamicModelChoiceField, DynamicModelMultipleChoiceField, form_from_model, SmallTextarea, StaticSelect, DynamicModelMultipleChoiceField, form_from_model, SmallTextarea, StaticSelect,
) )
__all__ = ( __all__ = (
@ -52,7 +52,7 @@ __all__ = (
) )
class RegionBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class RegionBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -70,7 +70,7 @@ class RegionBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulk
nullable_fields = ['parent', 'description'] nullable_fields = ['parent', 'description']
class SiteGroupBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class SiteGroupBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -88,7 +88,7 @@ class SiteGroupBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelB
nullable_fields = ['parent', 'description'] nullable_fields = ['parent', 'description']
class SiteBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class SiteBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -138,7 +138,7 @@ class SiteBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEd
] ]
class LocationBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class LocationBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Location.objects.all(), queryset=Location.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -167,7 +167,7 @@ class LocationBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBu
nullable_fields = ['parent', 'tenant', 'description'] nullable_fields = ['parent', 'tenant', 'description']
class RackRoleBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class RackRoleBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=RackRole.objects.all(), queryset=RackRole.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -184,7 +184,7 @@ class RackRoleBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBu
nullable_fields = ['color', 'description'] nullable_fields = ['color', 'description']
class RackBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class RackBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Rack.objects.all(), queryset=Rack.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -284,7 +284,7 @@ class RackBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEd
] ]
class RackReservationBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class RackReservationBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=RackReservation.objects.all(), queryset=RackReservation.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -309,7 +309,7 @@ class RackReservationBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomField
nullable_fields = [] nullable_fields = []
class ManufacturerBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class ManufacturerBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Manufacturer.objects.all(), queryset=Manufacturer.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -323,7 +323,7 @@ class ManufacturerBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldMod
nullable_fields = ['description'] nullable_fields = ['description']
class DeviceTypeBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class DeviceTypeBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=DeviceType.objects.all(), queryset=DeviceType.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -351,7 +351,7 @@ class DeviceTypeBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModel
nullable_fields = ['airflow'] nullable_fields = ['airflow']
class DeviceRoleBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class DeviceRoleBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=DeviceRole.objects.all(), queryset=DeviceRole.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -373,7 +373,7 @@ class DeviceRoleBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModel
nullable_fields = ['color', 'description'] nullable_fields = ['color', 'description']
class PlatformBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class PlatformBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Platform.objects.all(), queryset=Platform.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -396,7 +396,7 @@ class PlatformBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBu
nullable_fields = ['manufacturer', 'napalm_driver', 'description'] nullable_fields = ['manufacturer', 'napalm_driver', 'description']
class DeviceBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class DeviceBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Device.objects.all(), queryset=Device.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -457,7 +457,7 @@ class DeviceBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulk
] ]
class CableBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class CableBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Cable.objects.all(), queryset=Cable.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -513,7 +513,7 @@ class CableBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkE
}) })
class VirtualChassisBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class VirtualChassisBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=VirtualChassis.objects.all(), queryset=VirtualChassis.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -527,7 +527,7 @@ class VirtualChassisBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldM
nullable_fields = ['domain'] nullable_fields = ['domain']
class PowerPanelBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class PowerPanelBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=PowerPanel.objects.all(), queryset=PowerPanel.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -566,7 +566,7 @@ class PowerPanelBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModel
nullable_fields = ['location'] nullable_fields = ['location']
class PowerFeedBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class PowerFeedBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=PowerFeed.objects.all(), queryset=PowerFeed.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -631,7 +631,7 @@ class PowerFeedBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelB
# Device component templates # Device component templates
# #
class ConsolePortTemplateBulkEditForm(BootstrapMixin, BulkEditForm): class ConsolePortTemplateBulkEditForm(BulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=ConsolePortTemplate.objects.all(), queryset=ConsolePortTemplate.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -650,7 +650,7 @@ class ConsolePortTemplateBulkEditForm(BootstrapMixin, BulkEditForm):
nullable_fields = ('label', 'type', 'description') nullable_fields = ('label', 'type', 'description')
class ConsoleServerPortTemplateBulkEditForm(BootstrapMixin, BulkEditForm): class ConsoleServerPortTemplateBulkEditForm(BulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=ConsoleServerPortTemplate.objects.all(), queryset=ConsoleServerPortTemplate.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -672,7 +672,7 @@ class ConsoleServerPortTemplateBulkEditForm(BootstrapMixin, BulkEditForm):
nullable_fields = ('label', 'type', 'description') nullable_fields = ('label', 'type', 'description')
class PowerPortTemplateBulkEditForm(BootstrapMixin, BulkEditForm): class PowerPortTemplateBulkEditForm(BulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=PowerPortTemplate.objects.all(), queryset=PowerPortTemplate.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -704,7 +704,7 @@ class PowerPortTemplateBulkEditForm(BootstrapMixin, BulkEditForm):
nullable_fields = ('label', 'type', 'maximum_draw', 'allocated_draw', 'description') nullable_fields = ('label', 'type', 'maximum_draw', 'allocated_draw', 'description')
class PowerOutletTemplateBulkEditForm(BootstrapMixin, BulkEditForm): class PowerOutletTemplateBulkEditForm(BulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=PowerOutletTemplate.objects.all(), queryset=PowerOutletTemplate.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -752,7 +752,7 @@ class PowerOutletTemplateBulkEditForm(BootstrapMixin, BulkEditForm):
self.fields['power_port'].widget.attrs['disabled'] = True self.fields['power_port'].widget.attrs['disabled'] = True
class InterfaceTemplateBulkEditForm(BootstrapMixin, BulkEditForm): class InterfaceTemplateBulkEditForm(BulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=InterfaceTemplate.objects.all(), queryset=InterfaceTemplate.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -779,7 +779,7 @@ class InterfaceTemplateBulkEditForm(BootstrapMixin, BulkEditForm):
nullable_fields = ('label', 'description') nullable_fields = ('label', 'description')
class FrontPortTemplateBulkEditForm(BootstrapMixin, BulkEditForm): class FrontPortTemplateBulkEditForm(BulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=FrontPortTemplate.objects.all(), queryset=FrontPortTemplate.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -804,7 +804,7 @@ class FrontPortTemplateBulkEditForm(BootstrapMixin, BulkEditForm):
nullable_fields = ('description',) nullable_fields = ('description',)
class RearPortTemplateBulkEditForm(BootstrapMixin, BulkEditForm): class RearPortTemplateBulkEditForm(BulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=RearPortTemplate.objects.all(), queryset=RearPortTemplate.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -829,7 +829,7 @@ class RearPortTemplateBulkEditForm(BootstrapMixin, BulkEditForm):
nullable_fields = ('description',) nullable_fields = ('description',)
class DeviceBayTemplateBulkEditForm(BootstrapMixin, BulkEditForm): class DeviceBayTemplateBulkEditForm(BulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=DeviceBayTemplate.objects.all(), queryset=DeviceBayTemplate.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -852,7 +852,6 @@ class DeviceBayTemplateBulkEditForm(BootstrapMixin, BulkEditForm):
class ConsolePortBulkEditForm( class ConsolePortBulkEditForm(
form_from_model(ConsolePort, ['label', 'type', 'speed', 'mark_connected', 'description']), form_from_model(ConsolePort, ['label', 'type', 'speed', 'mark_connected', 'description']),
BootstrapMixin,
AddRemoveTagsForm, AddRemoveTagsForm,
CustomFieldModelBulkEditForm CustomFieldModelBulkEditForm
): ):
@ -871,7 +870,6 @@ class ConsolePortBulkEditForm(
class ConsoleServerPortBulkEditForm( class ConsoleServerPortBulkEditForm(
form_from_model(ConsoleServerPort, ['label', 'type', 'speed', 'mark_connected', 'description']), form_from_model(ConsoleServerPort, ['label', 'type', 'speed', 'mark_connected', 'description']),
BootstrapMixin,
AddRemoveTagsForm, AddRemoveTagsForm,
CustomFieldModelBulkEditForm CustomFieldModelBulkEditForm
): ):
@ -890,7 +888,6 @@ class ConsoleServerPortBulkEditForm(
class PowerPortBulkEditForm( class PowerPortBulkEditForm(
form_from_model(PowerPort, ['label', 'type', 'maximum_draw', 'allocated_draw', 'mark_connected', 'description']), form_from_model(PowerPort, ['label', 'type', 'maximum_draw', 'allocated_draw', 'mark_connected', 'description']),
BootstrapMixin,
AddRemoveTagsForm, AddRemoveTagsForm,
CustomFieldModelBulkEditForm CustomFieldModelBulkEditForm
): ):
@ -909,7 +906,6 @@ class PowerPortBulkEditForm(
class PowerOutletBulkEditForm( class PowerOutletBulkEditForm(
form_from_model(PowerOutlet, ['label', 'type', 'feed_leg', 'power_port', 'mark_connected', 'description']), form_from_model(PowerOutlet, ['label', 'type', 'feed_leg', 'power_port', 'mark_connected', 'description']),
BootstrapMixin,
AddRemoveTagsForm, AddRemoveTagsForm,
CustomFieldModelBulkEditForm CustomFieldModelBulkEditForm
): ):
@ -948,7 +944,6 @@ class InterfaceBulkEditForm(
'label', 'type', 'parent', 'bridge', 'lag', 'mac_address', 'wwn', 'mtu', 'mgmt_only', 'mark_connected', 'label', 'type', 'parent', 'bridge', 'lag', 'mac_address', 'wwn', 'mtu', 'mgmt_only', 'mark_connected',
'description', 'mode', 'rf_role', 'rf_channel', 'rf_channel_frequency', 'rf_channel_width', 'tx_power', 'description', 'mode', 'rf_role', 'rf_channel', 'rf_channel_frequency', 'rf_channel_width', 'tx_power',
]), ]),
BootstrapMixin,
AddRemoveTagsForm, AddRemoveTagsForm,
CustomFieldModelBulkEditForm CustomFieldModelBulkEditForm
): ):
@ -1061,7 +1056,6 @@ class InterfaceBulkEditForm(
class FrontPortBulkEditForm( class FrontPortBulkEditForm(
form_from_model(FrontPort, ['label', 'type', 'color', 'mark_connected', 'description']), form_from_model(FrontPort, ['label', 'type', 'color', 'mark_connected', 'description']),
BootstrapMixin,
AddRemoveTagsForm, AddRemoveTagsForm,
CustomFieldModelBulkEditForm CustomFieldModelBulkEditForm
): ):
@ -1076,7 +1070,6 @@ class FrontPortBulkEditForm(
class RearPortBulkEditForm( class RearPortBulkEditForm(
form_from_model(RearPort, ['label', 'type', 'color', 'mark_connected', 'description']), form_from_model(RearPort, ['label', 'type', 'color', 'mark_connected', 'description']),
BootstrapMixin,
AddRemoveTagsForm, AddRemoveTagsForm,
CustomFieldModelBulkEditForm CustomFieldModelBulkEditForm
): ):
@ -1091,7 +1084,6 @@ class RearPortBulkEditForm(
class DeviceBayBulkEditForm( class DeviceBayBulkEditForm(
form_from_model(DeviceBay, ['label', 'description']), form_from_model(DeviceBay, ['label', 'description']),
BootstrapMixin,
AddRemoveTagsForm, AddRemoveTagsForm,
CustomFieldModelBulkEditForm CustomFieldModelBulkEditForm
): ):
@ -1106,7 +1098,6 @@ class DeviceBayBulkEditForm(
class InventoryItemBulkEditForm( class InventoryItemBulkEditForm(
form_from_model(InventoryItem, ['label', 'manufacturer', 'part_id', 'description']), form_from_model(InventoryItem, ['label', 'manufacturer', 'part_id', 'description']),
BootstrapMixin,
AddRemoveTagsForm, AddRemoveTagsForm,
CustomFieldModelBulkEditForm CustomFieldModelBulkEditForm
): ):

View File

@ -3,7 +3,7 @@ from dcim.models import *
from extras.forms import CustomFieldModelForm from extras.forms import CustomFieldModelForm
from extras.models import Tag from extras.models import Tag
from tenancy.forms import TenancyForm from tenancy.forms import TenancyForm
from utilities.forms import BootstrapMixin, DynamicModelChoiceField, DynamicModelMultipleChoiceField, StaticSelect from utilities.forms import DynamicModelChoiceField, DynamicModelMultipleChoiceField, StaticSelect
__all__ = ( __all__ = (
'ConnectCableToCircuitTerminationForm', 'ConnectCableToCircuitTerminationForm',
@ -18,7 +18,7 @@ __all__ = (
) )
class ConnectCableToDeviceForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class ConnectCableToDeviceForm(TenancyForm, CustomFieldModelForm):
""" """
Base form for connecting a Cable to a Device component Base form for connecting a Cable to a Device component
""" """
@ -171,7 +171,7 @@ class ConnectCableToRearPortForm(ConnectCableToDeviceForm):
) )
class ConnectCableToCircuitTerminationForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class ConnectCableToCircuitTerminationForm(TenancyForm, CustomFieldModelForm):
termination_b_provider = DynamicModelChoiceField( termination_b_provider = DynamicModelChoiceField(
queryset=Provider.objects.all(), queryset=Provider.objects.all(),
label='Provider', label='Provider',
@ -229,7 +229,7 @@ class ConnectCableToCircuitTerminationForm(BootstrapMixin, TenancyForm, CustomFi
return getattr(self.cleaned_data['termination_b_id'], 'pk', None) return getattr(self.cleaned_data['termination_b_id'], 'pk', None)
class ConnectCableToPowerFeedForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class ConnectCableToPowerFeedForm(TenancyForm, CustomFieldModelForm):
termination_b_region = DynamicModelChoiceField( termination_b_region = DynamicModelChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
label='Region', label='Region',

View File

@ -47,7 +47,7 @@ __all__ = (
) )
class DeviceComponentFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class DeviceComponentFilterForm(CustomFieldModelFilterForm):
field_order = [ field_order = [
'q', 'name', 'label', 'region_id', 'site_group_id', 'site_id', 'q', 'name', 'label', 'region_id', 'site_group_id', 'site_id',
] ]
@ -112,7 +112,7 @@ class DeviceComponentFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
) )
class RegionFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class RegionFilterForm(CustomFieldModelFilterForm):
model = Region model = Region
q = forms.CharField( q = forms.CharField(
required=False, required=False,
@ -128,7 +128,7 @@ class RegionFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class SiteGroupFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class SiteGroupFilterForm(CustomFieldModelFilterForm):
model = SiteGroup model = SiteGroup
q = forms.CharField( q = forms.CharField(
required=False, required=False,
@ -144,7 +144,7 @@ class SiteGroupFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class SiteFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm): class SiteFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
model = Site model = Site
field_order = ['q', 'status', 'region_id', 'tenant_group_id', 'tenant_id', 'asn_id'] field_order = ['q', 'status', 'region_id', 'tenant_group_id', 'tenant_id', 'asn_id']
field_groups = [ field_groups = [
@ -184,7 +184,7 @@ class SiteFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterFo
tag = TagFilterField(model) tag = TagFilterField(model)
class LocationFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm): class LocationFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
model = Location model = Location
field_groups = [ field_groups = [
['q'], ['q'],
@ -231,7 +231,7 @@ class LocationFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilt
tag = TagFilterField(model) tag = TagFilterField(model)
class RackRoleFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class RackRoleFilterForm(CustomFieldModelFilterForm):
model = RackRole model = RackRole
q = forms.CharField( q = forms.CharField(
required=False, required=False,
@ -241,7 +241,7 @@ class RackRoleFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class RackFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm): class RackFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
model = Rack model = Rack
field_order = ['q', 'region_id', 'site_id', 'location_id', 'status', 'role_id', 'tenant_group_id', 'tenant_id'] field_order = ['q', 'region_id', 'site_id', 'location_id', 'status', 'role_id', 'tenant_group_id', 'tenant_id']
field_groups = [ field_groups = [
@ -329,7 +329,7 @@ class RackElevationFilterForm(RackFilterForm):
) )
class RackReservationFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm): class RackReservationFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
model = RackReservation model = RackReservation
field_order = ['q', 'region_id', 'site_id', 'location_id', 'user_id', 'tenant_group_id', 'tenant_id'] field_order = ['q', 'region_id', 'site_id', 'location_id', 'user_id', 'tenant_group_id', 'tenant_id']
field_groups = [ field_groups = [
@ -377,7 +377,7 @@ class RackReservationFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldMo
tag = TagFilterField(model) tag = TagFilterField(model)
class ManufacturerFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class ManufacturerFilterForm(CustomFieldModelFilterForm):
model = Manufacturer model = Manufacturer
q = forms.CharField( q = forms.CharField(
required=False, required=False,
@ -387,7 +387,7 @@ class ManufacturerFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class DeviceTypeFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class DeviceTypeFilterForm(CustomFieldModelFilterForm):
model = DeviceType model = DeviceType
field_groups = [ field_groups = [
['q', 'tag'], ['q', 'tag'],
@ -460,7 +460,7 @@ class DeviceTypeFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class DeviceRoleFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class DeviceRoleFilterForm(CustomFieldModelFilterForm):
model = DeviceRole model = DeviceRole
q = forms.CharField( q = forms.CharField(
required=False, required=False,
@ -470,7 +470,7 @@ class DeviceRoleFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class PlatformFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class PlatformFilterForm(CustomFieldModelFilterForm):
model = Platform model = Platform
q = forms.CharField( q = forms.CharField(
required=False, required=False,
@ -486,7 +486,7 @@ class PlatformFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class DeviceFilterForm(BootstrapMixin, LocalConfigContextFilterForm, TenancyFilterForm, CustomFieldModelFilterForm): class DeviceFilterForm(LocalConfigContextFilterForm, TenancyFilterForm, CustomFieldModelFilterForm):
model = Device model = Device
field_order = [ field_order = [
'q', 'region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id', 'status', 'role_id', 'tenant_group_id', 'q', 'region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id', 'status', 'role_id', 'tenant_group_id',
@ -658,7 +658,7 @@ class DeviceFilterForm(BootstrapMixin, LocalConfigContextFilterForm, TenancyFilt
tag = TagFilterField(model) tag = TagFilterField(model)
class VirtualChassisFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm): class VirtualChassisFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
model = VirtualChassis model = VirtualChassis
field_order = ['q', 'region_id', 'site_group_id', 'site_id', 'tenant_group_id', 'tenant_id'] field_order = ['q', 'region_id', 'site_group_id', 'site_id', 'tenant_group_id', 'tenant_id']
field_groups = [ field_groups = [
@ -696,7 +696,7 @@ class VirtualChassisFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldMod
tag = TagFilterField(model) tag = TagFilterField(model)
class CableFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm): class CableFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
model = Cable model = Cable
field_groups = [ field_groups = [
['q', 'tag'], ['q', 'tag'],
@ -761,7 +761,7 @@ class CableFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterF
tag = TagFilterField(model) tag = TagFilterField(model)
class PowerPanelFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class PowerPanelFilterForm(CustomFieldModelFilterForm):
model = PowerPanel model = PowerPanel
field_groups = ( field_groups = (
('q', 'tag'), ('q', 'tag'),
@ -807,7 +807,7 @@ class PowerPanelFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class PowerFeedFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class PowerFeedFilterForm(CustomFieldModelFilterForm):
model = PowerFeed model = PowerFeed
field_groups = [ field_groups = [
['q', 'tag'], ['q', 'tag'],

View File

@ -66,7 +66,7 @@ Tagged (All): Implies all VLANs are available (w/optional untagged VLAN)
""" """
class RegionForm(BootstrapMixin, CustomFieldModelForm): class RegionForm(CustomFieldModelForm):
parent = DynamicModelChoiceField( parent = DynamicModelChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False required=False
@ -84,7 +84,7 @@ class RegionForm(BootstrapMixin, CustomFieldModelForm):
) )
class SiteGroupForm(BootstrapMixin, CustomFieldModelForm): class SiteGroupForm(CustomFieldModelForm):
parent = DynamicModelChoiceField( parent = DynamicModelChoiceField(
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
required=False required=False
@ -102,7 +102,7 @@ class SiteGroupForm(BootstrapMixin, CustomFieldModelForm):
) )
class SiteForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class SiteForm(TenancyForm, CustomFieldModelForm):
region = DynamicModelChoiceField( region = DynamicModelChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False required=False
@ -173,7 +173,7 @@ class SiteForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
} }
class LocationForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class LocationForm(TenancyForm, CustomFieldModelForm):
region = DynamicModelChoiceField( region = DynamicModelChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
@ -221,7 +221,7 @@ class LocationForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
) )
class RackRoleForm(BootstrapMixin, CustomFieldModelForm): class RackRoleForm(CustomFieldModelForm):
slug = SlugField() slug = SlugField()
tags = DynamicModelMultipleChoiceField( tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
@ -235,7 +235,7 @@ class RackRoleForm(BootstrapMixin, CustomFieldModelForm):
] ]
class RackForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class RackForm(TenancyForm, CustomFieldModelForm):
region = DynamicModelChoiceField( region = DynamicModelChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
@ -295,7 +295,7 @@ class RackForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
} }
class RackReservationForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class RackReservationForm(TenancyForm, CustomFieldModelForm):
region = DynamicModelChoiceField( region = DynamicModelChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
@ -365,7 +365,7 @@ class RackReservationForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
) )
class ManufacturerForm(BootstrapMixin, CustomFieldModelForm): class ManufacturerForm(CustomFieldModelForm):
slug = SlugField() slug = SlugField()
tags = DynamicModelMultipleChoiceField( tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
@ -379,7 +379,7 @@ class ManufacturerForm(BootstrapMixin, CustomFieldModelForm):
] ]
class DeviceTypeForm(BootstrapMixin, CustomFieldModelForm): class DeviceTypeForm(CustomFieldModelForm):
manufacturer = DynamicModelChoiceField( manufacturer = DynamicModelChoiceField(
queryset=Manufacturer.objects.all() queryset=Manufacturer.objects.all()
) )
@ -418,7 +418,7 @@ class DeviceTypeForm(BootstrapMixin, CustomFieldModelForm):
} }
class DeviceRoleForm(BootstrapMixin, CustomFieldModelForm): class DeviceRoleForm(CustomFieldModelForm):
slug = SlugField() slug = SlugField()
tags = DynamicModelMultipleChoiceField( tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
@ -432,7 +432,7 @@ class DeviceRoleForm(BootstrapMixin, CustomFieldModelForm):
] ]
class PlatformForm(BootstrapMixin, CustomFieldModelForm): class PlatformForm(CustomFieldModelForm):
manufacturer = DynamicModelChoiceField( manufacturer = DynamicModelChoiceField(
queryset=Manufacturer.objects.all(), queryset=Manufacturer.objects.all(),
required=False required=False
@ -455,7 +455,7 @@ class PlatformForm(BootstrapMixin, CustomFieldModelForm):
} }
class DeviceForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class DeviceForm(TenancyForm, CustomFieldModelForm):
region = DynamicModelChoiceField( region = DynamicModelChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
@ -637,7 +637,7 @@ class DeviceForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
self.fields['position'].widget.choices = [(position, f'U{position}')] self.fields['position'].widget.choices = [(position, f'U{position}')]
class CableForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class CableForm(TenancyForm, CustomFieldModelForm):
tags = DynamicModelMultipleChoiceField( tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
required=False required=False
@ -660,7 +660,7 @@ class CableForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
} }
class PowerPanelForm(BootstrapMixin, CustomFieldModelForm): class PowerPanelForm(CustomFieldModelForm):
region = DynamicModelChoiceField( region = DynamicModelChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
@ -704,7 +704,7 @@ class PowerPanelForm(BootstrapMixin, CustomFieldModelForm):
) )
class PowerFeedForm(BootstrapMixin, CustomFieldModelForm): class PowerFeedForm(CustomFieldModelForm):
region = DynamicModelChoiceField( region = DynamicModelChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
@ -772,7 +772,7 @@ class PowerFeedForm(BootstrapMixin, CustomFieldModelForm):
# Virtual chassis # Virtual chassis
# #
class VirtualChassisForm(BootstrapMixin, CustomFieldModelForm): class VirtualChassisForm(CustomFieldModelForm):
master = forms.ModelChoiceField( master = forms.ModelChoiceField(
queryset=Device.objects.all(), queryset=Device.objects.all(),
required=False, required=False,
@ -1005,7 +1005,7 @@ class DeviceBayTemplateForm(BootstrapMixin, forms.ModelForm):
# Device components # Device components
# #
class ConsolePortForm(BootstrapMixin, CustomFieldModelForm): class ConsolePortForm(CustomFieldModelForm):
tags = DynamicModelMultipleChoiceField( tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
required=False required=False
@ -1021,7 +1021,7 @@ class ConsolePortForm(BootstrapMixin, CustomFieldModelForm):
} }
class ConsoleServerPortForm(BootstrapMixin, CustomFieldModelForm): class ConsoleServerPortForm(CustomFieldModelForm):
tags = DynamicModelMultipleChoiceField( tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
required=False required=False
@ -1037,7 +1037,7 @@ class ConsoleServerPortForm(BootstrapMixin, CustomFieldModelForm):
} }
class PowerPortForm(BootstrapMixin, CustomFieldModelForm): class PowerPortForm(CustomFieldModelForm):
tags = DynamicModelMultipleChoiceField( tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
required=False required=False
@ -1054,7 +1054,7 @@ class PowerPortForm(BootstrapMixin, CustomFieldModelForm):
} }
class PowerOutletForm(BootstrapMixin, CustomFieldModelForm): class PowerOutletForm(CustomFieldModelForm):
power_port = forms.ModelChoiceField( power_port = forms.ModelChoiceField(
queryset=PowerPort.objects.all(), queryset=PowerPort.objects.all(),
required=False required=False
@ -1083,7 +1083,7 @@ class PowerOutletForm(BootstrapMixin, CustomFieldModelForm):
) )
class InterfaceForm(BootstrapMixin, InterfaceCommonForm, CustomFieldModelForm): class InterfaceForm(InterfaceCommonForm, CustomFieldModelForm):
parent = DynamicModelChoiceField( parent = DynamicModelChoiceField(
queryset=Interface.objects.all(), queryset=Interface.objects.all(),
required=False, required=False,
@ -1183,7 +1183,7 @@ class InterfaceForm(BootstrapMixin, InterfaceCommonForm, CustomFieldModelForm):
self.fields['tagged_vlans'].widget.add_query_param('available_on_device', device.pk) self.fields['tagged_vlans'].widget.add_query_param('available_on_device', device.pk)
class FrontPortForm(BootstrapMixin, CustomFieldModelForm): class FrontPortForm(CustomFieldModelForm):
tags = DynamicModelMultipleChoiceField( tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
required=False required=False
@ -1211,7 +1211,7 @@ class FrontPortForm(BootstrapMixin, CustomFieldModelForm):
) )
class RearPortForm(BootstrapMixin, CustomFieldModelForm): class RearPortForm(CustomFieldModelForm):
tags = DynamicModelMultipleChoiceField( tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
required=False required=False
@ -1228,7 +1228,7 @@ class RearPortForm(BootstrapMixin, CustomFieldModelForm):
} }
class DeviceBayForm(BootstrapMixin, CustomFieldModelForm): class DeviceBayForm(CustomFieldModelForm):
tags = DynamicModelMultipleChoiceField( tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
required=False required=False
@ -1264,7 +1264,7 @@ class PopulateDeviceBayForm(BootstrapMixin, forms.Form):
).exclude(pk=device_bay.device.pk) ).exclude(pk=device_bay.device.pk)
class InventoryItemForm(BootstrapMixin, CustomFieldModelForm): class InventoryItemForm(CustomFieldModelForm):
device = DynamicModelChoiceField( device = DynamicModelChoiceField(
queryset=Device.objects.all() queryset=Device.objects.all()
) )

View File

@ -35,7 +35,7 @@ __all__ = (
) )
class ComponentForm(forms.Form): class ComponentForm(BootstrapMixin, forms.Form):
""" """
Subclass this form when facilitating the creation of one or more device component or component templates based on Subclass this form when facilitating the creation of one or more device component or component templates based on
a name pattern. a name pattern.
@ -63,7 +63,7 @@ class ComponentForm(forms.Form):
}, code='label_pattern_mismatch') }, code='label_pattern_mismatch')
class VirtualChassisCreateForm(BootstrapMixin, CustomFieldModelForm): class VirtualChassisCreateForm(CustomFieldModelForm):
region = DynamicModelChoiceField( region = DynamicModelChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
@ -142,7 +142,7 @@ class VirtualChassisCreateForm(BootstrapMixin, CustomFieldModelForm):
# Component templates # Component templates
# #
class ComponentTemplateCreateForm(BootstrapMixin, ComponentForm): class ComponentTemplateCreateForm(ComponentForm):
""" """
Base form for the creation of device component templates (subclassed from ComponentTemplateModel). Base form for the creation of device component templates (subclassed from ComponentTemplateModel).
""" """
@ -335,7 +335,7 @@ class DeviceBayTemplateCreateForm(ComponentTemplateCreateForm):
# Device components # Device components
# #
class ComponentCreateForm(BootstrapMixin, CustomFieldsMixin, ComponentForm): class ComponentCreateForm(CustomFieldsMixin, ComponentForm):
""" """
Base form for the creation of device components (models subclassed from ComponentModel). Base form for the creation of device components (models subclassed from ComponentModel).
""" """

View File

@ -4,9 +4,7 @@ from django.contrib.contenttypes.models import ContentType
from extras.choices import * from extras.choices import *
from extras.models import * from extras.models import *
from extras.utils import FeatureQuery from extras.utils import FeatureQuery
from utilities.forms import ( from utilities.forms import BulkEditForm, BulkEditNullBooleanSelect, ColorField, ContentTypeChoiceField, StaticSelect
BootstrapMixin, BulkEditForm, BulkEditNullBooleanSelect, ColorField, ContentTypeChoiceField, StaticSelect,
)
__all__ = ( __all__ = (
'ConfigContextBulkEditForm', 'ConfigContextBulkEditForm',
@ -19,7 +17,7 @@ __all__ = (
) )
class CustomFieldBulkEditForm(BootstrapMixin, BulkEditForm): class CustomFieldBulkEditForm(BulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=CustomField.objects.all(), queryset=CustomField.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -39,7 +37,7 @@ class CustomFieldBulkEditForm(BootstrapMixin, BulkEditForm):
nullable_fields = [] nullable_fields = []
class CustomLinkBulkEditForm(BootstrapMixin, BulkEditForm): class CustomLinkBulkEditForm(BulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=CustomLink.objects.all(), queryset=CustomLink.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -66,7 +64,7 @@ class CustomLinkBulkEditForm(BootstrapMixin, BulkEditForm):
nullable_fields = [] nullable_fields = []
class ExportTemplateBulkEditForm(BootstrapMixin, BulkEditForm): class ExportTemplateBulkEditForm(BulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=ExportTemplate.objects.all(), queryset=ExportTemplate.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -97,7 +95,7 @@ class ExportTemplateBulkEditForm(BootstrapMixin, BulkEditForm):
nullable_fields = ['description', 'mime_type', 'file_extension'] nullable_fields = ['description', 'mime_type', 'file_extension']
class WebhookBulkEditForm(BootstrapMixin, BulkEditForm): class WebhookBulkEditForm(BulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Webhook.objects.all(), queryset=Webhook.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -140,7 +138,7 @@ class WebhookBulkEditForm(BootstrapMixin, BulkEditForm):
nullable_fields = ['secret', 'conditions', 'ca_file_path'] nullable_fields = ['secret', 'conditions', 'ca_file_path']
class TagBulkEditForm(BootstrapMixin, BulkEditForm): class TagBulkEditForm(BulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -157,7 +155,7 @@ class TagBulkEditForm(BootstrapMixin, BulkEditForm):
nullable_fields = ['description'] nullable_fields = ['description']
class ConfigContextBulkEditForm(BootstrapMixin, BulkEditForm): class ConfigContextBulkEditForm(BulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=ConfigContext.objects.all(), queryset=ConfigContext.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -181,7 +179,7 @@ class ConfigContextBulkEditForm(BootstrapMixin, BulkEditForm):
] ]
class JournalEntryBulkEditForm(BootstrapMixin, BulkEditForm): class JournalEntryBulkEditForm(BulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=JournalEntry.objects.all(), queryset=JournalEntry.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput

View File

@ -4,7 +4,7 @@ from django.db.models import Q
from extras.choices import * from extras.choices import *
from extras.models import * from extras.models import *
from utilities.forms import BulkEditForm, CSVModelForm from utilities.forms import BootstrapMixin, BulkEditForm, CSVModelForm
__all__ = ( __all__ = (
'CustomFieldModelCSVForm', 'CustomFieldModelCSVForm',
@ -52,7 +52,7 @@ class CustomFieldsMixin:
self.custom_fields.append(field_name) self.custom_fields.append(field_name)
class CustomFieldModelForm(CustomFieldsMixin, forms.ModelForm): class CustomFieldModelForm(BootstrapMixin, CustomFieldsMixin, forms.ModelForm):
""" """
Extend ModelForm to include custom field support. Extend ModelForm to include custom field support.
""" """
@ -105,7 +105,7 @@ class CustomFieldModelBulkEditForm(BulkEditForm):
self.custom_fields.append(cf.name) self.custom_fields.append(cf.name)
class CustomFieldModelFilterForm(forms.Form): class CustomFieldModelFilterForm(BootstrapMixin, forms.Form):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):

View File

@ -8,8 +8,8 @@ from ipam.models import *
from ipam.models import ASN from ipam.models import ASN
from tenancy.models import Tenant from tenancy.models import Tenant
from utilities.forms import ( from utilities.forms import (
add_blank_choice, BootstrapMixin, BulkEditNullBooleanSelect, DatePicker, DynamicModelChoiceField, NumericArrayField, add_blank_choice, BulkEditNullBooleanSelect, DatePicker, DynamicModelChoiceField, NumericArrayField, StaticSelect,
StaticSelect, DynamicModelMultipleChoiceField, DynamicModelMultipleChoiceField,
) )
__all__ = ( __all__ = (
@ -29,7 +29,7 @@ __all__ = (
) )
class VRFBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class VRFBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=VRF.objects.all(), queryset=VRF.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -54,7 +54,7 @@ class VRFBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEdi
] ]
class RouteTargetBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class RouteTargetBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=RouteTarget.objects.all(), queryset=RouteTarget.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -74,7 +74,7 @@ class RouteTargetBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldMode
] ]
class RIRBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class RIRBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=RIR.objects.all(), queryset=RIR.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -92,7 +92,7 @@ class RIRBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEdi
nullable_fields = ['is_private', 'description'] nullable_fields = ['is_private', 'description']
class ASNBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class ASNBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=ASN.objects.all(), queryset=ASN.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -124,7 +124,7 @@ class ASNBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEdi
} }
class AggregateBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class AggregateBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Aggregate.objects.all(), queryset=Aggregate.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -155,7 +155,7 @@ class AggregateBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelB
} }
class RoleBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class RoleBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Role.objects.all(), queryset=Role.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -172,7 +172,7 @@ class RoleBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEd
nullable_fields = ['description'] nullable_fields = ['description']
class PrefixBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class PrefixBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Prefix.objects.all(), queryset=Prefix.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -237,7 +237,7 @@ class PrefixBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulk
] ]
class IPRangeBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class IPRangeBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=IPRange.objects.all(), queryset=IPRange.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -271,7 +271,7 @@ class IPRangeBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBul
] ]
class IPAddressBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class IPAddressBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=IPAddress.objects.all(), queryset=IPAddress.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -315,7 +315,7 @@ class IPAddressBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelB
] ]
class FHRPGroupBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class FHRPGroupBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=FHRPGroup.objects.all(), queryset=FHRPGroup.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -350,7 +350,7 @@ class FHRPGroupBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelB
nullable_fields = ['auth_type', 'auth_key', 'description'] nullable_fields = ['auth_type', 'auth_key', 'description']
class VLANGroupBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class VLANGroupBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=VLANGroup.objects.all(), queryset=VLANGroup.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -368,7 +368,7 @@ class VLANGroupBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelB
nullable_fields = ['site', 'description'] nullable_fields = ['site', 'description']
class VLANBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class VLANBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=VLAN.objects.all(), queryset=VLAN.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -420,7 +420,7 @@ class VLANBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEd
] ]
class ServiceBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class ServiceBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Service.objects.all(), queryset=Service.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()

View File

@ -1,4 +1,3 @@
import django_filters
from django import forms from django import forms
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
@ -9,10 +8,9 @@ from ipam.constants import *
from ipam.models import * from ipam.models import *
from ipam.models import ASN from ipam.models import ASN
from tenancy.forms import TenancyFilterForm from tenancy.forms import TenancyFilterForm
from tenancy.models import Tenant
from utilities.forms import ( from utilities.forms import (
add_blank_choice, BootstrapMixin, DynamicModelChoiceField, DynamicModelMultipleChoiceField, StaticSelect, add_blank_choice, DynamicModelChoiceField, DynamicModelMultipleChoiceField, StaticSelect, StaticSelectMultiple,
StaticSelectMultiple, TagFilterField, BOOLEAN_WITH_BLANK_CHOICES, TagFilterField, BOOLEAN_WITH_BLANK_CHOICES,
) )
__all__ = ( __all__ = (
@ -40,7 +38,7 @@ IPADDRESS_MASK_LENGTH_CHOICES = add_blank_choice([
]) ])
class VRFFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm): class VRFFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
model = VRF model = VRF
field_groups = [ field_groups = [
['q', 'tag'], ['q', 'tag'],
@ -67,7 +65,7 @@ class VRFFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterFor
tag = TagFilterField(model) tag = TagFilterField(model)
class RouteTargetFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm): class RouteTargetFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
model = RouteTarget model = RouteTarget
field_groups = [ field_groups = [
['q', 'tag'], ['q', 'tag'],
@ -94,7 +92,7 @@ class RouteTargetFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelF
tag = TagFilterField(model) tag = TagFilterField(model)
class RIRFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class RIRFilterForm(CustomFieldModelFilterForm):
model = RIR model = RIR
q = forms.CharField( q = forms.CharField(
required=False, required=False,
@ -111,7 +109,7 @@ class RIRFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class AggregateFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm): class AggregateFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
model = Aggregate model = Aggregate
field_groups = [ field_groups = [
['q', 'tag'], ['q', 'tag'],
@ -138,7 +136,7 @@ class AggregateFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFil
tag = TagFilterField(model) tag = TagFilterField(model)
class ASNFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm): class ASNFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
model = ASN model = ASN
field_groups = [ field_groups = [
['q'], ['q'],
@ -165,7 +163,7 @@ class ASNFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterFor
) )
class RoleFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class RoleFilterForm(CustomFieldModelFilterForm):
model = Role model = Role
q = forms.CharField( q = forms.CharField(
required=False, required=False,
@ -175,7 +173,7 @@ class RoleFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class PrefixFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm): class PrefixFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
model = Prefix model = Prefix
field_groups = [ field_groups = [
['q', 'tag'], ['q', 'tag'],
@ -277,7 +275,7 @@ class PrefixFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilter
tag = TagFilterField(model) tag = TagFilterField(model)
class IPRangeFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm): class IPRangeFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
model = IPRange model = IPRange
field_groups = [ field_groups = [
['q', 'tag'], ['q', 'tag'],
@ -317,7 +315,7 @@ class IPRangeFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilte
tag = TagFilterField(model) tag = TagFilterField(model)
class IPAddressFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm): class IPAddressFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
model = IPAddress model = IPAddress
field_order = [ field_order = [
'q', 'parent', 'family', 'mask_length', 'vrf_id', 'present_in_vrf_id', 'status', 'role', 'q', 'parent', 'family', 'mask_length', 'vrf_id', 'present_in_vrf_id', 'status', 'role',
@ -388,7 +386,7 @@ class IPAddressFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFil
tag = TagFilterField(model) tag = TagFilterField(model)
class FHRPGroupFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class FHRPGroupFilterForm(CustomFieldModelFilterForm):
model = FHRPGroup model = FHRPGroup
field_groups = ( field_groups = (
('q', 'tag'), ('q', 'tag'),
@ -423,7 +421,7 @@ class FHRPGroupFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class VLANGroupFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class VLANGroupFilterForm(CustomFieldModelFilterForm):
field_groups = [ field_groups = [
['q', 'tag'], ['q', 'tag'],
['region', 'sitegroup', 'site', 'location', 'rack'] ['region', 'sitegroup', 'site', 'location', 'rack']
@ -467,7 +465,7 @@ class VLANGroupFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class VLANFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm): class VLANFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
model = VLAN model = VLAN
field_groups = [ field_groups = [
['q', 'tag'], ['q', 'tag'],
@ -531,7 +529,7 @@ class VLANFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterFo
tag = TagFilterField(model) tag = TagFilterField(model)
class ServiceFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class ServiceFilterForm(CustomFieldModelFilterForm):
model = Service model = Service
field_groups = ( field_groups = (
('q', 'tag'), ('q', 'tag'),

View File

@ -37,7 +37,7 @@ __all__ = (
) )
class VRFForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class VRFForm(TenancyForm, CustomFieldModelForm):
import_targets = DynamicModelMultipleChoiceField( import_targets = DynamicModelMultipleChoiceField(
queryset=RouteTarget.objects.all(), queryset=RouteTarget.objects.all(),
required=False required=False
@ -70,7 +70,7 @@ class VRFForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
} }
class RouteTargetForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class RouteTargetForm(TenancyForm, CustomFieldModelForm):
tags = DynamicModelMultipleChoiceField( tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
required=False required=False
@ -87,7 +87,7 @@ class RouteTargetForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
) )
class RIRForm(BootstrapMixin, CustomFieldModelForm): class RIRForm(CustomFieldModelForm):
slug = SlugField() slug = SlugField()
tags = DynamicModelMultipleChoiceField( tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
@ -101,7 +101,7 @@ class RIRForm(BootstrapMixin, CustomFieldModelForm):
] ]
class AggregateForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class AggregateForm(TenancyForm, CustomFieldModelForm):
rir = DynamicModelChoiceField( rir = DynamicModelChoiceField(
queryset=RIR.objects.all(), queryset=RIR.objects.all(),
label='RIR' label='RIR'
@ -129,7 +129,7 @@ class AggregateForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
} }
class ASNForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class ASNForm(TenancyForm, CustomFieldModelForm):
rir = DynamicModelChoiceField( rir = DynamicModelChoiceField(
queryset=RIR.objects.all(), queryset=RIR.objects.all(),
label='RIR', label='RIR',
@ -173,7 +173,7 @@ class ASNForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
return instance return instance
class RoleForm(BootstrapMixin, CustomFieldModelForm): class RoleForm(CustomFieldModelForm):
slug = SlugField() slug = SlugField()
tags = DynamicModelMultipleChoiceField( tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
@ -187,7 +187,7 @@ class RoleForm(BootstrapMixin, CustomFieldModelForm):
] ]
class PrefixForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class PrefixForm(TenancyForm, CustomFieldModelForm):
vrf = DynamicModelChoiceField( vrf = DynamicModelChoiceField(
queryset=VRF.objects.all(), queryset=VRF.objects.all(),
required=False, required=False,
@ -262,7 +262,7 @@ class PrefixForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
} }
class IPRangeForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class IPRangeForm(TenancyForm, CustomFieldModelForm):
vrf = DynamicModelChoiceField( vrf = DynamicModelChoiceField(
queryset=VRF.objects.all(), queryset=VRF.objects.all(),
required=False, required=False,
@ -291,7 +291,7 @@ class IPRangeForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
} }
class IPAddressForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class IPAddressForm(TenancyForm, CustomFieldModelForm):
device = DynamicModelChoiceField( device = DynamicModelChoiceField(
queryset=Device.objects.all(), queryset=Device.objects.all(),
required=False, required=False,
@ -499,7 +499,7 @@ class IPAddressForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
return ipaddress return ipaddress
class IPAddressBulkAddForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class IPAddressBulkAddForm(TenancyForm, CustomFieldModelForm):
vrf = DynamicModelChoiceField( vrf = DynamicModelChoiceField(
queryset=VRF.objects.all(), queryset=VRF.objects.all(),
required=False, required=False,
@ -533,7 +533,7 @@ class IPAddressAssignForm(BootstrapMixin, forms.Form):
) )
class FHRPGroupForm(BootstrapMixin, CustomFieldModelForm): class FHRPGroupForm(CustomFieldModelForm):
tags = DynamicModelMultipleChoiceField( tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
required=False required=False
@ -613,7 +613,7 @@ class FHRPGroupAssignmentForm(BootstrapMixin, forms.ModelForm):
self.fields['group'].widget.add_query_param('related_ip', ipaddress.pk) self.fields['group'].widget.add_query_param('related_ip', ipaddress.pk)
class VLANGroupForm(BootstrapMixin, CustomFieldModelForm): class VLANGroupForm(CustomFieldModelForm):
scope_type = ContentTypeChoiceField( scope_type = ContentTypeChoiceField(
queryset=ContentType.objects.filter(model__in=VLANGROUP_SCOPE_TYPES), queryset=ContentType.objects.filter(model__in=VLANGROUP_SCOPE_TYPES),
required=False, required=False,
@ -720,7 +720,7 @@ class VLANGroupForm(BootstrapMixin, CustomFieldModelForm):
self.instance.scope_id = None self.instance.scope_id = None
class VLANForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class VLANForm(TenancyForm, CustomFieldModelForm):
# VLANGroup assignment fields # VLANGroup assignment fields
scope_type = forms.ChoiceField( scope_type = forms.ChoiceField(
choices=( choices=(
@ -801,7 +801,7 @@ class VLANForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
} }
class ServiceForm(BootstrapMixin, CustomFieldModelForm): class ServiceForm(CustomFieldModelForm):
ports = NumericArrayField( ports = NumericArrayField(
base_field=forms.IntegerField( base_field=forms.IntegerField(
min_value=SERVICE_PORT_MIN, min_value=SERVICE_PORT_MIN,

View File

@ -2,7 +2,7 @@ from django import forms
from extras.forms import AddRemoveTagsForm, CustomFieldModelBulkEditForm from extras.forms import AddRemoveTagsForm, CustomFieldModelBulkEditForm
from tenancy.models import * from tenancy.models import *
from utilities.forms import BootstrapMixin, DynamicModelChoiceField from utilities.forms import DynamicModelChoiceField
__all__ = ( __all__ = (
'ContactBulkEditForm', 'ContactBulkEditForm',
@ -17,7 +17,7 @@ __all__ = (
# Tenants # Tenants
# #
class TenantGroupBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class TenantGroupBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=TenantGroup.objects.all(), queryset=TenantGroup.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -35,7 +35,7 @@ class TenantGroupBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldMode
nullable_fields = ['parent', 'description'] nullable_fields = ['parent', 'description']
class TenantBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class TenantBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Tenant.objects.all(), queryset=Tenant.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -55,7 +55,7 @@ class TenantBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulk
# Contacts # Contacts
# #
class ContactGroupBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class ContactGroupBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=ContactGroup.objects.all(), queryset=ContactGroup.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -73,7 +73,7 @@ class ContactGroupBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldMod
nullable_fields = ['parent', 'description'] nullable_fields = ['parent', 'description']
class ContactRoleBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class ContactRoleBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=ContactRole.objects.all(), queryset=ContactRole.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -87,7 +87,7 @@ class ContactRoleBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldMode
nullable_fields = ['description'] nullable_fields = ['description']
class ContactBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class ContactBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Contact.objects.all(), queryset=Contact.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()

View File

@ -3,7 +3,7 @@ from django.utils.translation import gettext as _
from extras.forms import CustomFieldModelFilterForm from extras.forms import CustomFieldModelFilterForm
from tenancy.models import * from tenancy.models import *
from utilities.forms import BootstrapMixin, DynamicModelMultipleChoiceField, TagFilterField from utilities.forms import DynamicModelMultipleChoiceField, TagFilterField
__all__ = ( __all__ = (
'ContactFilterForm', 'ContactFilterForm',
@ -18,7 +18,7 @@ __all__ = (
# Tenants # Tenants
# #
class TenantGroupFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class TenantGroupFilterForm(CustomFieldModelFilterForm):
model = TenantGroup model = TenantGroup
q = forms.CharField( q = forms.CharField(
required=False, required=False,
@ -34,7 +34,7 @@ class TenantGroupFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class TenantFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class TenantFilterForm(CustomFieldModelFilterForm):
model = Tenant model = Tenant
field_groups = ( field_groups = (
('q', 'tag'), ('q', 'tag'),
@ -59,7 +59,7 @@ class TenantFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
# Contacts # Contacts
# #
class ContactGroupFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class ContactGroupFilterForm(CustomFieldModelFilterForm):
model = ContactGroup model = ContactGroup
q = forms.CharField( q = forms.CharField(
required=False, required=False,
@ -75,7 +75,7 @@ class ContactGroupFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class ContactRoleFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class ContactRoleFilterForm(CustomFieldModelFilterForm):
model = ContactRole model = ContactRole
q = forms.CharField( q = forms.CharField(
required=False, required=False,
@ -85,7 +85,7 @@ class ContactRoleFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class ContactFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class ContactFilterForm(CustomFieldModelFilterForm):
model = Contact model = Contact
field_groups = ( field_groups = (
('q', 'tag'), ('q', 'tag'),

View File

@ -22,7 +22,7 @@ __all__ = (
# Tenants # Tenants
# #
class TenantGroupForm(BootstrapMixin, CustomFieldModelForm): class TenantGroupForm(CustomFieldModelForm):
parent = DynamicModelChoiceField( parent = DynamicModelChoiceField(
queryset=TenantGroup.objects.all(), queryset=TenantGroup.objects.all(),
required=False required=False
@ -40,7 +40,7 @@ class TenantGroupForm(BootstrapMixin, CustomFieldModelForm):
] ]
class TenantForm(BootstrapMixin, CustomFieldModelForm): class TenantForm(CustomFieldModelForm):
slug = SlugField() slug = SlugField()
group = DynamicModelChoiceField( group = DynamicModelChoiceField(
queryset=TenantGroup.objects.all(), queryset=TenantGroup.objects.all(),
@ -66,7 +66,7 @@ class TenantForm(BootstrapMixin, CustomFieldModelForm):
# Contacts # Contacts
# #
class ContactGroupForm(BootstrapMixin, CustomFieldModelForm): class ContactGroupForm(CustomFieldModelForm):
parent = DynamicModelChoiceField( parent = DynamicModelChoiceField(
queryset=ContactGroup.objects.all(), queryset=ContactGroup.objects.all(),
required=False required=False
@ -82,7 +82,7 @@ class ContactGroupForm(BootstrapMixin, CustomFieldModelForm):
fields = ('parent', 'name', 'slug', 'description', 'tags') fields = ('parent', 'name', 'slug', 'description', 'tags')
class ContactRoleForm(BootstrapMixin, CustomFieldModelForm): class ContactRoleForm(CustomFieldModelForm):
slug = SlugField() slug = SlugField()
tags = DynamicModelMultipleChoiceField( tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
@ -94,7 +94,7 @@ class ContactRoleForm(BootstrapMixin, CustomFieldModelForm):
fields = ('name', 'slug', 'description', 'tags') fields = ('name', 'slug', 'description', 'tags')
class ContactForm(BootstrapMixin, CustomFieldModelForm): class ContactForm(CustomFieldModelForm):
group = DynamicModelChoiceField( group = DynamicModelChoiceField(
queryset=ContactGroup.objects.all(), queryset=ContactGroup.objects.all(),
required=False required=False

View File

@ -19,7 +19,7 @@ __all__ = (
) )
class BootstrapMixin(forms.BaseForm): class BootstrapMixin:
""" """
Add the base Bootstrap CSS classes to form elements. Add the base Bootstrap CSS classes to form elements.
""" """
@ -73,7 +73,7 @@ class ConfirmationForm(BootstrapMixin, ReturnURLForm):
confirm = forms.BooleanField(required=True, widget=forms.HiddenInput(), initial=True) confirm = forms.BooleanField(required=True, widget=forms.HiddenInput(), initial=True)
class BulkEditForm(forms.Form): class BulkEditForm(BootstrapMixin, forms.Form):
""" """
Base form for editing multiple objects in bulk Base form for editing multiple objects in bulk
""" """

View File

@ -7,7 +7,7 @@ from extras.forms import AddRemoveTagsForm, CustomFieldModelBulkEditForm
from ipam.models import VLAN from ipam.models import VLAN
from tenancy.models import Tenant from tenancy.models import Tenant
from utilities.forms import ( from utilities.forms import (
add_blank_choice, BootstrapMixin, BulkEditNullBooleanSelect, BulkRenameForm, CommentField, DynamicModelChoiceField, add_blank_choice, BulkEditNullBooleanSelect, BulkRenameForm, CommentField, DynamicModelChoiceField,
DynamicModelMultipleChoiceField, SmallTextarea, StaticSelect DynamicModelMultipleChoiceField, SmallTextarea, StaticSelect
) )
from virtualization.choices import * from virtualization.choices import *
@ -23,7 +23,7 @@ __all__ = (
) )
class ClusterTypeBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class ClusterTypeBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=ClusterType.objects.all(), queryset=ClusterType.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -37,7 +37,7 @@ class ClusterTypeBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldMode
nullable_fields = ['description'] nullable_fields = ['description']
class ClusterGroupBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class ClusterGroupBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=ClusterGroup.objects.all(), queryset=ClusterGroup.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -51,7 +51,7 @@ class ClusterGroupBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldMod
nullable_fields = ['description'] nullable_fields = ['description']
class ClusterBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class ClusterBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=Cluster.objects.all(), queryset=Cluster.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -95,7 +95,7 @@ class ClusterBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBul
] ]
class VirtualMachineBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class VirtualMachineBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=VirtualMachine.objects.all(), queryset=VirtualMachine.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()
@ -150,7 +150,7 @@ class VirtualMachineBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldM
] ]
class VMInterfaceBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class VMInterfaceBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=VMInterface.objects.all(), queryset=VMInterface.objects.all(),
widget=forms.MultipleHiddenInput() widget=forms.MultipleHiddenInput()

View File

@ -20,7 +20,7 @@ __all__ = (
) )
class ClusterTypeFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class ClusterTypeFilterForm(CustomFieldModelFilterForm):
model = ClusterType model = ClusterType
q = forms.CharField( q = forms.CharField(
required=False, required=False,
@ -30,7 +30,7 @@ class ClusterTypeFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class ClusterGroupFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class ClusterGroupFilterForm(CustomFieldModelFilterForm):
model = ClusterGroup model = ClusterGroup
q = forms.CharField( q = forms.CharField(
required=False, required=False,
@ -40,7 +40,7 @@ class ClusterGroupFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class ClusterFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm): class ClusterFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
model = Cluster model = Cluster
field_order = [ field_order = [
'q', 'type_id', 'region_id', 'site_id', 'group_id', 'tenant_group_id', 'tenant_id', 'q', 'type_id', 'region_id', 'site_id', 'group_id', 'tenant_group_id', 'tenant_id',
@ -95,12 +95,7 @@ class ClusterFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilte
tag = TagFilterField(model) tag = TagFilterField(model)
class VirtualMachineFilterForm( class VirtualMachineFilterForm(LocalConfigContextFilterForm, TenancyFilterForm, CustomFieldModelFilterForm):
BootstrapMixin,
LocalConfigContextFilterForm,
TenancyFilterForm,
CustomFieldModelFilterForm
):
model = VirtualMachine model = VirtualMachine
field_groups = [ field_groups = [
['q', 'tag'], ['q', 'tag'],

View File

@ -26,7 +26,7 @@ __all__ = (
) )
class ClusterTypeForm(BootstrapMixin, CustomFieldModelForm): class ClusterTypeForm(CustomFieldModelForm):
slug = SlugField() slug = SlugField()
tags = DynamicModelMultipleChoiceField( tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
@ -40,7 +40,7 @@ class ClusterTypeForm(BootstrapMixin, CustomFieldModelForm):
) )
class ClusterGroupForm(BootstrapMixin, CustomFieldModelForm): class ClusterGroupForm(CustomFieldModelForm):
slug = SlugField() slug = SlugField()
tags = DynamicModelMultipleChoiceField( tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
@ -54,7 +54,7 @@ class ClusterGroupForm(BootstrapMixin, CustomFieldModelForm):
) )
class ClusterForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class ClusterForm(TenancyForm, CustomFieldModelForm):
type = DynamicModelChoiceField( type = DynamicModelChoiceField(
queryset=ClusterType.objects.all() queryset=ClusterType.objects.all()
) )
@ -171,7 +171,7 @@ class ClusterRemoveDevicesForm(ConfirmationForm):
) )
class VirtualMachineForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class VirtualMachineForm(TenancyForm, CustomFieldModelForm):
cluster_group = DynamicModelChoiceField( cluster_group = DynamicModelChoiceField(
queryset=ClusterGroup.objects.all(), queryset=ClusterGroup.objects.all(),
required=False, required=False,
@ -271,7 +271,7 @@ class VirtualMachineForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
self.fields['primary_ip6'].widget.attrs['readonly'] = True self.fields['primary_ip6'].widget.attrs['readonly'] = True
class VMInterfaceForm(BootstrapMixin, InterfaceCommonForm, CustomFieldModelForm): class VMInterfaceForm(InterfaceCommonForm, CustomFieldModelForm):
parent = DynamicModelChoiceField( parent = DynamicModelChoiceField(
queryset=VMInterface.objects.all(), queryset=VMInterface.objects.all(),
required=False, required=False,

View File

@ -3,7 +3,7 @@ from django import forms
from dcim.choices import LinkStatusChoices from dcim.choices import LinkStatusChoices
from extras.forms import AddRemoveTagsForm, CustomFieldModelBulkEditForm from extras.forms import AddRemoveTagsForm, CustomFieldModelBulkEditForm
from ipam.models import VLAN from ipam.models import VLAN
from utilities.forms import BootstrapMixin, DynamicModelChoiceField from utilities.forms import DynamicModelChoiceField
from wireless.choices import * from wireless.choices import *
from wireless.constants import SSID_MAX_LENGTH from wireless.constants import SSID_MAX_LENGTH
from wireless.models import * from wireless.models import *
@ -15,7 +15,7 @@ __all__ = (
) )
class WirelessLANGroupBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class WirelessLANGroupBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=WirelessLANGroup.objects.all(), queryset=WirelessLANGroup.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -33,7 +33,7 @@ class WirelessLANGroupBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFiel
nullable_fields = ['parent', 'description'] nullable_fields = ['parent', 'description']
class WirelessLANBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class WirelessLANBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=WirelessLAN.objects.all(), queryset=WirelessLAN.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
@ -69,7 +69,7 @@ class WirelessLANBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldMode
nullable_fields = ['ssid', 'group', 'vlan', 'description', 'auth_type', 'auth_cipher', 'auth_psk'] nullable_fields = ['ssid', 'group', 'vlan', 'description', 'auth_type', 'auth_cipher', 'auth_psk']
class WirelessLinkBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm): class WirelessLinkBulkEditForm(AddRemoveTagsForm, CustomFieldModelBulkEditForm):
pk = forms.ModelMultipleChoiceField( pk = forms.ModelMultipleChoiceField(
queryset=WirelessLink.objects.all(), queryset=WirelessLink.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput

View File

@ -3,9 +3,7 @@ from django.utils.translation import gettext as _
from dcim.choices import LinkStatusChoices from dcim.choices import LinkStatusChoices
from extras.forms import CustomFieldModelFilterForm from extras.forms import CustomFieldModelFilterForm
from utilities.forms import ( from utilities.forms import add_blank_choice, DynamicModelMultipleChoiceField, StaticSelect, TagFilterField
add_blank_choice, BootstrapMixin, DynamicModelMultipleChoiceField, StaticSelect, TagFilterField,
)
from wireless.choices import * from wireless.choices import *
from wireless.models import * from wireless.models import *
@ -16,7 +14,7 @@ __all__ = (
) )
class WirelessLANGroupFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class WirelessLANGroupFilterForm(CustomFieldModelFilterForm):
model = WirelessLANGroup model = WirelessLANGroup
q = forms.CharField( q = forms.CharField(
required=False, required=False,
@ -32,7 +30,7 @@ class WirelessLANGroupFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class WirelessLANFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class WirelessLANFilterForm(CustomFieldModelFilterForm):
model = WirelessLAN model = WirelessLAN
field_groups = [ field_groups = [
('q', 'tag'), ('q', 'tag'),
@ -70,7 +68,7 @@ class WirelessLANFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class WirelessLinkFilterForm(BootstrapMixin, CustomFieldModelFilterForm): class WirelessLinkFilterForm(CustomFieldModelFilterForm):
model = WirelessLink model = WirelessLink
q = forms.CharField( q = forms.CharField(
required=False, required=False,

View File

@ -2,9 +2,7 @@ from dcim.models import Device, Interface, Location, Site
from extras.forms import CustomFieldModelForm from extras.forms import CustomFieldModelForm
from extras.models import Tag from extras.models import Tag
from ipam.models import VLAN from ipam.models import VLAN
from utilities.forms import ( from utilities.forms import DynamicModelChoiceField, DynamicModelMultipleChoiceField, SlugField, StaticSelect
BootstrapMixin, DynamicModelChoiceField, DynamicModelMultipleChoiceField, SlugField, StaticSelect,
)
from wireless.models import * from wireless.models import *
__all__ = ( __all__ = (
@ -14,7 +12,7 @@ __all__ = (
) )
class WirelessLANGroupForm(BootstrapMixin, CustomFieldModelForm): class WirelessLANGroupForm(CustomFieldModelForm):
parent = DynamicModelChoiceField( parent = DynamicModelChoiceField(
queryset=WirelessLANGroup.objects.all(), queryset=WirelessLANGroup.objects.all(),
required=False required=False
@ -32,7 +30,7 @@ class WirelessLANGroupForm(BootstrapMixin, CustomFieldModelForm):
] ]
class WirelessLANForm(BootstrapMixin, CustomFieldModelForm): class WirelessLANForm(CustomFieldModelForm):
group = DynamicModelChoiceField( group = DynamicModelChoiceField(
queryset=WirelessLANGroup.objects.all(), queryset=WirelessLANGroup.objects.all(),
required=False required=False
@ -63,7 +61,7 @@ class WirelessLANForm(BootstrapMixin, CustomFieldModelForm):
} }
class WirelessLinkForm(BootstrapMixin, CustomFieldModelForm): class WirelessLinkForm(CustomFieldModelForm):
site_a = DynamicModelChoiceField( site_a = DynamicModelChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
required=False, required=False,