mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-10 18:39:36 -06:00
Address PR feedback: Replace global filterset mappings with registry
This commit is contained in:
parent
4ca4983204
commit
b410b4e107
@ -11,9 +11,8 @@ from ipam.models import ASN
|
||||
from netbox.choices import DistanceUnitChoices
|
||||
from netbox.forms import NetBoxModelFilterSetForm, OrganizationalModelFilterSetForm, PrimaryModelFilterSetForm
|
||||
from tenancy.forms import TenancyFilterForm, ContactModelFilterForm
|
||||
from utilities.forms import add_blank_choice
|
||||
from utilities.forms import add_blank_choice, register_filterset
|
||||
from utilities.forms.fields import ColorField, DynamicModelMultipleChoiceField, TagFilterField
|
||||
from utilities.forms.filterset_mappings import FILTERSET_MAPPINGS
|
||||
from utilities.forms.mixins import FilterModifierMixin
|
||||
from utilities.forms.rendering import FieldSet
|
||||
from utilities.forms.widgets import DatePicker, NumberWithOptions
|
||||
@ -34,6 +33,7 @@ __all__ = (
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(ProviderFilterSet)
|
||||
class ProviderFilterForm(FilterModifierMixin, ContactModelFilterForm, PrimaryModelFilterSetForm):
|
||||
model = Provider
|
||||
fieldsets = (
|
||||
@ -69,6 +69,7 @@ class ProviderFilterForm(FilterModifierMixin, ContactModelFilterForm, PrimaryMod
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(ProviderAccountFilterSet)
|
||||
class ProviderAccountFilterForm(FilterModifierMixin, ContactModelFilterForm, PrimaryModelFilterSetForm):
|
||||
model = ProviderAccount
|
||||
fieldsets = (
|
||||
@ -88,6 +89,7 @@ class ProviderAccountFilterForm(FilterModifierMixin, ContactModelFilterForm, Pri
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(ProviderNetworkFilterSet)
|
||||
class ProviderNetworkFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
model = ProviderNetwork
|
||||
fieldsets = (
|
||||
@ -107,6 +109,7 @@ class ProviderNetworkFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(CircuitTypeFilterSet)
|
||||
class CircuitTypeFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm):
|
||||
model = CircuitType
|
||||
fieldsets = (
|
||||
@ -121,6 +124,7 @@ class CircuitTypeFilterForm(FilterModifierMixin, OrganizationalModelFilterSetFor
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(CircuitFilterSet)
|
||||
class CircuitFilterForm(FilterModifierMixin, TenancyFilterForm, ContactModelFilterForm, PrimaryModelFilterSetForm):
|
||||
model = Circuit
|
||||
fieldsets = (
|
||||
@ -220,6 +224,7 @@ class CircuitFilterForm(FilterModifierMixin, TenancyFilterForm, ContactModelFilt
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(CircuitTerminationFilterSet)
|
||||
class CircuitTerminationFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
model = CircuitTermination
|
||||
fieldsets = (
|
||||
@ -274,6 +279,7 @@ class CircuitTerminationFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(CircuitGroupFilterSet)
|
||||
class CircuitGroupFilterForm(FilterModifierMixin, TenancyFilterForm, OrganizationalModelFilterSetForm):
|
||||
model = CircuitGroup
|
||||
fieldsets = (
|
||||
@ -283,6 +289,7 @@ class CircuitGroupFilterForm(FilterModifierMixin, TenancyFilterForm, Organizatio
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(CircuitGroupAssignmentFilterSet)
|
||||
class CircuitGroupAssignmentFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
model = CircuitGroupAssignment
|
||||
fieldsets = (
|
||||
@ -312,6 +319,7 @@ class CircuitGroupAssignmentFilterForm(FilterModifierMixin, NetBoxModelFilterSet
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(VirtualCircuitTypeFilterSet)
|
||||
class VirtualCircuitTypeFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm):
|
||||
model = VirtualCircuitType
|
||||
fieldsets = (
|
||||
@ -326,6 +334,7 @@ class VirtualCircuitTypeFilterForm(FilterModifierMixin, OrganizationalModelFilte
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(VirtualCircuitFilterSet)
|
||||
class VirtualCircuitFilterForm(
|
||||
FilterModifierMixin,
|
||||
TenancyFilterForm,
|
||||
@ -374,6 +383,7 @@ class VirtualCircuitFilterForm(
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(VirtualCircuitTerminationFilterSet)
|
||||
class VirtualCircuitTerminationFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
model = VirtualCircuitTermination
|
||||
fieldsets = (
|
||||
@ -405,17 +415,3 @@ class VirtualCircuitTerminationFilterForm(FilterModifierMixin, NetBoxModelFilter
|
||||
label=_('Provider')
|
||||
)
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
# Register FilterSet mappings for FilterModifierMixin lookup verification
|
||||
FILTERSET_MAPPINGS[ProviderFilterForm] = ProviderFilterSet
|
||||
FILTERSET_MAPPINGS[ProviderAccountFilterForm] = ProviderAccountFilterSet
|
||||
FILTERSET_MAPPINGS[ProviderNetworkFilterForm] = ProviderNetworkFilterSet
|
||||
FILTERSET_MAPPINGS[CircuitTypeFilterForm] = CircuitTypeFilterSet
|
||||
FILTERSET_MAPPINGS[CircuitFilterForm] = CircuitFilterSet
|
||||
FILTERSET_MAPPINGS[CircuitTerminationFilterForm] = CircuitTerminationFilterSet
|
||||
FILTERSET_MAPPINGS[CircuitGroupFilterForm] = CircuitGroupFilterSet
|
||||
FILTERSET_MAPPINGS[CircuitGroupAssignmentFilterForm] = CircuitGroupAssignmentFilterSet
|
||||
FILTERSET_MAPPINGS[VirtualCircuitTypeFilterForm] = VirtualCircuitTypeFilterSet
|
||||
FILTERSET_MAPPINGS[VirtualCircuitFilterForm] = VirtualCircuitFilterSet
|
||||
FILTERSET_MAPPINGS[VirtualCircuitTerminationFilterForm] = VirtualCircuitTerminationFilterSet
|
||||
|
||||
@ -7,11 +7,10 @@ from netbox.forms import NetBoxModelFilterSetForm, PrimaryModelFilterSetForm
|
||||
from netbox.forms.mixins import SavedFiltersMixin
|
||||
from netbox.utils import get_data_backend_choices
|
||||
from users.models import User
|
||||
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm, add_blank_choice
|
||||
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm, add_blank_choice, register_filterset
|
||||
from utilities.forms.fields import (
|
||||
ContentTypeChoiceField, ContentTypeMultipleChoiceField, DynamicModelMultipleChoiceField, TagFilterField,
|
||||
)
|
||||
from utilities.forms.filterset_mappings import FILTERSET_MAPPINGS
|
||||
from utilities.forms.mixins import FilterModifierMixin
|
||||
from utilities.forms.rendering import FieldSet
|
||||
from utilities.forms.widgets import DateTimePicker
|
||||
@ -26,6 +25,7 @@ __all__ = (
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(DataSourceFilterSet)
|
||||
class DataSourceFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
model = DataSource
|
||||
fieldsets = (
|
||||
@ -57,6 +57,7 @@ class DataSourceFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(DataFileFilterSet)
|
||||
class DataFileFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
model = DataFile
|
||||
fieldsets = (
|
||||
@ -70,6 +71,7 @@ class DataFileFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(JobFilterSet)
|
||||
class JobFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
model = Job
|
||||
fieldsets = (
|
||||
@ -137,6 +139,7 @@ class JobFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(ObjectChangeFilterSet)
|
||||
class ObjectChangeFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
model = ObjectChange
|
||||
fieldsets = (
|
||||
@ -171,16 +174,9 @@ class ObjectChangeFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm)
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(ConfigRevisionFilterSet)
|
||||
class ConfigRevisionFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
model = ConfigRevision
|
||||
fieldsets = (
|
||||
FieldSet('q', 'filter_id'),
|
||||
)
|
||||
|
||||
|
||||
# Register FilterSet mappings for FilterModifierMixin lookup verification
|
||||
FILTERSET_MAPPINGS[DataSourceFilterForm] = DataSourceFilterSet
|
||||
FILTERSET_MAPPINGS[DataFileFilterForm] = DataFileFilterSet
|
||||
FILTERSET_MAPPINGS[JobFilterForm] = JobFilterSet
|
||||
FILTERSET_MAPPINGS[ObjectChangeFilterForm] = ObjectChangeFilterSet
|
||||
FILTERSET_MAPPINGS[ConfigRevisionFilterForm] = ConfigRevisionFilterSet
|
||||
|
||||
@ -15,9 +15,8 @@ from netbox.forms import (
|
||||
)
|
||||
from tenancy.forms import ContactModelFilterForm, TenancyFilterForm
|
||||
from users.models import Owner, User
|
||||
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm, add_blank_choice
|
||||
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm, add_blank_choice, register_filterset
|
||||
from utilities.forms.fields import ColorField, DynamicModelChoiceField, DynamicModelMultipleChoiceField, TagFilterField
|
||||
from utilities.forms.filterset_mappings import FILTERSET_MAPPINGS
|
||||
from utilities.forms.mixins import FilterModifierMixin
|
||||
from utilities.forms.rendering import FieldSet
|
||||
from utilities.forms.widgets import NumberWithOptions
|
||||
@ -150,6 +149,7 @@ class DeviceComponentFilterForm(NetBoxModelFilterSetForm):
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(RegionFilterSet)
|
||||
class RegionFilterForm(FilterModifierMixin, ContactModelFilterForm, NestedGroupModelFilterSetForm):
|
||||
model = Region
|
||||
fieldsets = (
|
||||
@ -165,6 +165,7 @@ class RegionFilterForm(FilterModifierMixin, ContactModelFilterForm, NestedGroupM
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(SiteGroupFilterSet)
|
||||
class SiteGroupFilterForm(FilterModifierMixin, ContactModelFilterForm, NestedGroupModelFilterSetForm):
|
||||
model = SiteGroup
|
||||
fieldsets = (
|
||||
@ -180,6 +181,7 @@ class SiteGroupFilterForm(FilterModifierMixin, ContactModelFilterForm, NestedGro
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(SiteFilterSet)
|
||||
class SiteFilterForm(FilterModifierMixin, TenancyFilterForm, ContactModelFilterForm, PrimaryModelFilterSetForm):
|
||||
model = Site
|
||||
fieldsets = (
|
||||
@ -212,6 +214,7 @@ class SiteFilterForm(FilterModifierMixin, TenancyFilterForm, ContactModelFilterF
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(LocationFilterSet)
|
||||
class LocationFilterForm(FilterModifierMixin, TenancyFilterForm, ContactModelFilterForm, NestedGroupModelFilterSetForm):
|
||||
model = Location
|
||||
fieldsets = (
|
||||
@ -260,6 +263,7 @@ class LocationFilterForm(FilterModifierMixin, TenancyFilterForm, ContactModelFil
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(RackRoleFilterSet)
|
||||
class RackRoleFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm):
|
||||
model = RackRole
|
||||
fieldsets = (
|
||||
@ -311,6 +315,7 @@ class RackBaseFilterForm(PrimaryModelFilterSetForm):
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(RackTypeFilterSet)
|
||||
class RackTypeFilterForm(FilterModifierMixin, RackBaseFilterForm):
|
||||
model = RackType
|
||||
fieldsets = (
|
||||
@ -333,6 +338,7 @@ class RackTypeFilterForm(FilterModifierMixin, RackBaseFilterForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(RackFilterSet)
|
||||
class RackFilterForm(FilterModifierMixin, TenancyFilterForm, ContactModelFilterForm, RackBaseFilterForm):
|
||||
model = Rack
|
||||
fieldsets = (
|
||||
@ -434,6 +440,7 @@ class RackElevationFilterForm(RackFilterForm):
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(RackReservationFilterSet)
|
||||
class RackReservationFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||
model = RackReservation
|
||||
fieldsets = (
|
||||
@ -492,6 +499,7 @@ class RackReservationFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryM
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(ManufacturerFilterSet)
|
||||
class ManufacturerFilterForm(FilterModifierMixin, ContactModelFilterForm, OrganizationalModelFilterSetForm):
|
||||
model = Manufacturer
|
||||
fieldsets = (
|
||||
@ -501,6 +509,7 @@ class ManufacturerFilterForm(FilterModifierMixin, ContactModelFilterForm, Organi
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(DeviceTypeFilterSet)
|
||||
class DeviceTypeFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
model = DeviceType
|
||||
fieldsets = (
|
||||
@ -635,6 +644,7 @@ class DeviceTypeFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(ModuleTypeProfileFilterSet)
|
||||
class ModuleTypeProfileFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
model = ModuleTypeProfile
|
||||
fieldsets = (
|
||||
@ -644,6 +654,7 @@ class ModuleTypeProfileFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(ModuleTypeFilterSet)
|
||||
class ModuleTypeFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
model = ModuleType
|
||||
fieldsets = (
|
||||
@ -737,6 +748,7 @@ class ModuleTypeFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(DeviceRoleFilterSet)
|
||||
class DeviceRoleFilterForm(FilterModifierMixin, NestedGroupModelFilterSetForm):
|
||||
model = DeviceRole
|
||||
fieldsets = (
|
||||
@ -756,6 +768,7 @@ class DeviceRoleFilterForm(FilterModifierMixin, NestedGroupModelFilterSetForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(PlatformFilterSet)
|
||||
class PlatformFilterForm(FilterModifierMixin, NestedGroupModelFilterSetForm):
|
||||
model = Platform
|
||||
fieldsets = (
|
||||
@ -781,6 +794,7 @@ class PlatformFilterForm(FilterModifierMixin, NestedGroupModelFilterSetForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(DeviceFilterSet)
|
||||
class DeviceFilterForm(
|
||||
FilterModifierMixin,
|
||||
LocalConfigContextFilterForm,
|
||||
@ -980,6 +994,7 @@ class DeviceFilterForm(
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(VirtualDeviceContextFilterSet)
|
||||
class VirtualDeviceContextFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||
model = VirtualDeviceContext
|
||||
fieldsets = (
|
||||
@ -1007,6 +1022,7 @@ class VirtualDeviceContextFilterForm(FilterModifierMixin, TenancyFilterForm, Pri
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(ModuleFilterSet)
|
||||
class ModuleFilterForm(FilterModifierMixin, LocalConfigContextFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||
model = Module
|
||||
fieldsets = (
|
||||
@ -1090,6 +1106,7 @@ class ModuleFilterForm(FilterModifierMixin, LocalConfigContextFilterForm, Tenanc
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(VirtualChassisFilterSet)
|
||||
class VirtualChassisFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||
model = VirtualChassis
|
||||
fieldsets = (
|
||||
@ -1119,6 +1136,7 @@ class VirtualChassisFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryMo
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(CableFilterSet)
|
||||
class CableFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||
model = Cable
|
||||
fieldsets = (
|
||||
@ -1208,6 +1226,7 @@ class CableFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilter
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(PowerPanelFilterSet)
|
||||
class PowerPanelFilterForm(FilterModifierMixin, ContactModelFilterForm, PrimaryModelFilterSetForm):
|
||||
model = PowerPanel
|
||||
fieldsets = (
|
||||
@ -1247,6 +1266,7 @@ class PowerPanelFilterForm(FilterModifierMixin, ContactModelFilterForm, PrimaryM
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(PowerFeedFilterSet)
|
||||
class PowerFeedFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||
model = PowerFeed
|
||||
fieldsets = (
|
||||
@ -1357,6 +1377,7 @@ class PathEndpointFilterForm(CabledFilterForm):
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(ConsolePortFilterSet)
|
||||
class ConsolePortFilterForm(FilterModifierMixin, PathEndpointFilterForm, DeviceComponentFilterForm):
|
||||
model = ConsolePort
|
||||
fieldsets = (
|
||||
@ -1381,6 +1402,7 @@ class ConsolePortFilterForm(FilterModifierMixin, PathEndpointFilterForm, DeviceC
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(ConsoleServerPortFilterSet)
|
||||
class ConsoleServerPortFilterForm(FilterModifierMixin, PathEndpointFilterForm, DeviceComponentFilterForm):
|
||||
model = ConsoleServerPort
|
||||
fieldsets = (
|
||||
@ -1406,6 +1428,7 @@ class ConsoleServerPortFilterForm(FilterModifierMixin, PathEndpointFilterForm, D
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(PowerPortFilterSet)
|
||||
class PowerPortFilterForm(FilterModifierMixin, PathEndpointFilterForm, DeviceComponentFilterForm):
|
||||
model = PowerPort
|
||||
fieldsets = (
|
||||
@ -1425,6 +1448,7 @@ class PowerPortFilterForm(FilterModifierMixin, PathEndpointFilterForm, DeviceCom
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(PowerOutletFilterSet)
|
||||
class PowerOutletFilterForm(FilterModifierMixin, PathEndpointFilterForm, DeviceComponentFilterForm):
|
||||
model = PowerOutlet
|
||||
fieldsets = (
|
||||
@ -1454,6 +1478,7 @@ class PowerOutletFilterForm(FilterModifierMixin, PathEndpointFilterForm, DeviceC
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(InterfaceFilterSet)
|
||||
class InterfaceFilterForm(FilterModifierMixin, PathEndpointFilterForm, DeviceComponentFilterForm):
|
||||
model = Interface
|
||||
fieldsets = (
|
||||
@ -1580,6 +1605,7 @@ class InterfaceFilterForm(FilterModifierMixin, PathEndpointFilterForm, DeviceCom
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(FrontPortFilterSet)
|
||||
class FrontPortFilterForm(FilterModifierMixin, CabledFilterForm, DeviceComponentFilterForm):
|
||||
fieldsets = (
|
||||
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
||||
@ -1603,6 +1629,7 @@ class FrontPortFilterForm(FilterModifierMixin, CabledFilterForm, DeviceComponent
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(RearPortFilterSet)
|
||||
class RearPortFilterForm(FilterModifierMixin, CabledFilterForm, DeviceComponentFilterForm):
|
||||
model = RearPort
|
||||
fieldsets = (
|
||||
@ -1627,6 +1654,7 @@ class RearPortFilterForm(FilterModifierMixin, CabledFilterForm, DeviceComponentF
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(ModuleBayFilterSet)
|
||||
class ModuleBayFilterForm(FilterModifierMixin, DeviceComponentFilterForm):
|
||||
model = ModuleBay
|
||||
fieldsets = (
|
||||
@ -1645,6 +1673,7 @@ class ModuleBayFilterForm(FilterModifierMixin, DeviceComponentFilterForm):
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(DeviceBayFilterSet)
|
||||
class DeviceBayFilterForm(FilterModifierMixin, DeviceComponentFilterForm):
|
||||
model = DeviceBay
|
||||
fieldsets = (
|
||||
@ -1659,6 +1688,7 @@ class DeviceBayFilterForm(FilterModifierMixin, DeviceComponentFilterForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(InventoryItemFilterSet)
|
||||
class InventoryItemFilterForm(FilterModifierMixin, DeviceComponentFilterForm):
|
||||
model = InventoryItem
|
||||
fieldsets = (
|
||||
@ -1710,6 +1740,7 @@ class InventoryItemFilterForm(FilterModifierMixin, DeviceComponentFilterForm):
|
||||
# Device component roles
|
||||
#
|
||||
|
||||
@register_filterset(InventoryItemRoleFilterSet)
|
||||
class InventoryItemRoleFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm):
|
||||
model = InventoryItemRole
|
||||
fieldsets = (
|
||||
@ -1722,6 +1753,7 @@ class InventoryItemRoleFilterForm(FilterModifierMixin, OrganizationalModelFilter
|
||||
# Addressing
|
||||
#
|
||||
|
||||
@register_filterset(MACAddressFilterSet)
|
||||
class MACAddressFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
model = MACAddress
|
||||
fieldsets = (
|
||||
@ -1835,39 +1867,3 @@ class InterfaceConnectionFilterForm(FilterForm):
|
||||
},
|
||||
label=_('Device')
|
||||
)
|
||||
|
||||
|
||||
# Register FilterSet mappings for FilterModifierMixin lookup verification
|
||||
FILTERSET_MAPPINGS[CableFilterForm] = CableFilterSet
|
||||
FILTERSET_MAPPINGS[ConsolePortFilterForm] = ConsolePortFilterSet
|
||||
FILTERSET_MAPPINGS[ConsoleServerPortFilterForm] = ConsoleServerPortFilterSet
|
||||
FILTERSET_MAPPINGS[DeviceBayFilterForm] = DeviceBayFilterSet
|
||||
FILTERSET_MAPPINGS[DeviceFilterForm] = DeviceFilterSet
|
||||
FILTERSET_MAPPINGS[DeviceRoleFilterForm] = DeviceRoleFilterSet
|
||||
FILTERSET_MAPPINGS[DeviceTypeFilterForm] = DeviceTypeFilterSet
|
||||
FILTERSET_MAPPINGS[FrontPortFilterForm] = FrontPortFilterSet
|
||||
FILTERSET_MAPPINGS[InterfaceFilterForm] = InterfaceFilterSet
|
||||
FILTERSET_MAPPINGS[InventoryItemFilterForm] = InventoryItemFilterSet
|
||||
FILTERSET_MAPPINGS[InventoryItemRoleFilterForm] = InventoryItemRoleFilterSet
|
||||
FILTERSET_MAPPINGS[LocationFilterForm] = LocationFilterSet
|
||||
FILTERSET_MAPPINGS[MACAddressFilterForm] = MACAddressFilterSet
|
||||
FILTERSET_MAPPINGS[ManufacturerFilterForm] = ManufacturerFilterSet
|
||||
FILTERSET_MAPPINGS[ModuleBayFilterForm] = ModuleBayFilterSet
|
||||
FILTERSET_MAPPINGS[ModuleFilterForm] = ModuleFilterSet
|
||||
FILTERSET_MAPPINGS[ModuleTypeFilterForm] = ModuleTypeFilterSet
|
||||
FILTERSET_MAPPINGS[ModuleTypeProfileFilterForm] = ModuleTypeProfileFilterSet
|
||||
FILTERSET_MAPPINGS[PlatformFilterForm] = PlatformFilterSet
|
||||
FILTERSET_MAPPINGS[PowerFeedFilterForm] = PowerFeedFilterSet
|
||||
FILTERSET_MAPPINGS[PowerOutletFilterForm] = PowerOutletFilterSet
|
||||
FILTERSET_MAPPINGS[PowerPanelFilterForm] = PowerPanelFilterSet
|
||||
FILTERSET_MAPPINGS[PowerPortFilterForm] = PowerPortFilterSet
|
||||
FILTERSET_MAPPINGS[RackFilterForm] = RackFilterSet
|
||||
FILTERSET_MAPPINGS[RackReservationFilterForm] = RackReservationFilterSet
|
||||
FILTERSET_MAPPINGS[RackRoleFilterForm] = RackRoleFilterSet
|
||||
FILTERSET_MAPPINGS[RackTypeFilterForm] = RackTypeFilterSet
|
||||
FILTERSET_MAPPINGS[RearPortFilterForm] = RearPortFilterSet
|
||||
FILTERSET_MAPPINGS[RegionFilterForm] = RegionFilterSet
|
||||
FILTERSET_MAPPINGS[SiteFilterForm] = SiteFilterSet
|
||||
FILTERSET_MAPPINGS[SiteGroupFilterForm] = SiteGroupFilterSet
|
||||
FILTERSET_MAPPINGS[VirtualChassisFilterForm] = VirtualChassisFilterSet
|
||||
FILTERSET_MAPPINGS[VirtualDeviceContextFilterForm] = VirtualDeviceContextFilterSet
|
||||
|
||||
@ -10,12 +10,11 @@ from netbox.forms import NetBoxModelFilterSetForm, PrimaryModelFilterSetForm
|
||||
from netbox.forms.mixins import SavedFiltersMixin
|
||||
from tenancy.models import Tenant, TenantGroup
|
||||
from users.models import Group, Owner, User
|
||||
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm, add_blank_choice
|
||||
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm, add_blank_choice, register_filterset
|
||||
from utilities.forms.fields import (
|
||||
ContentTypeChoiceField, ContentTypeMultipleChoiceField, DynamicModelChoiceField, DynamicModelMultipleChoiceField,
|
||||
TagFilterField,
|
||||
)
|
||||
from utilities.forms.filterset_mappings import FILTERSET_MAPPINGS
|
||||
from utilities.forms.mixins import FilterModifierMixin
|
||||
from utilities.forms.rendering import FieldSet
|
||||
from utilities.forms.widgets import DateTimePicker
|
||||
@ -42,6 +41,7 @@ __all__ = (
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(CustomFieldFilterSet)
|
||||
class CustomFieldFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
model = CustomField
|
||||
fieldsets = (
|
||||
@ -129,6 +129,7 @@ class CustomFieldFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(CustomFieldChoiceSetFilterSet)
|
||||
class CustomFieldChoiceSetFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
model = CustomFieldChoiceSet
|
||||
fieldsets = (
|
||||
@ -149,6 +150,7 @@ class CustomFieldChoiceSetFilterForm(FilterModifierMixin, SavedFiltersMixin, Fil
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(CustomLinkFilterSet)
|
||||
class CustomLinkFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
model = CustomLink
|
||||
fieldsets = (
|
||||
@ -185,6 +187,7 @@ class CustomLinkFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(ExportTemplateFilterSet)
|
||||
class ExportTemplateFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
model = ExportTemplate
|
||||
fieldsets = (
|
||||
@ -236,6 +239,7 @@ class ExportTemplateFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterFor
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(ImageAttachmentFilterSet)
|
||||
class ImageAttachmentFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
model = ImageAttachment
|
||||
fieldsets = (
|
||||
@ -253,6 +257,7 @@ class ImageAttachmentFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterFo
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(SavedFilterFilterSet)
|
||||
class SavedFilterFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
model = SavedFilter
|
||||
fieldsets = (
|
||||
@ -289,6 +294,7 @@ class SavedFilterFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(TableConfigFilterSet)
|
||||
class TableConfigFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
fieldsets = (
|
||||
FieldSet('q', 'filter_id'),
|
||||
@ -319,6 +325,7 @@ class TableConfigFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(WebhookFilterSet)
|
||||
class WebhookFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
model = Webhook
|
||||
fieldsets = (
|
||||
@ -346,6 +353,7 @@ class WebhookFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(EventRuleFilterSet)
|
||||
class EventRuleFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
model = EventRule
|
||||
fieldsets = (
|
||||
@ -382,6 +390,7 @@ class EventRuleFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(TagFilterSet)
|
||||
class TagFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
model = Tag
|
||||
content_type_id = ContentTypeMultipleChoiceField(
|
||||
@ -401,6 +410,7 @@ class TagFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(ConfigContextProfileFilterSet)
|
||||
class ConfigContextProfileFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
model = ConfigContextProfile
|
||||
fieldsets = (
|
||||
@ -422,6 +432,7 @@ class ConfigContextProfileFilterForm(FilterModifierMixin, PrimaryModelFilterSetF
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(ConfigContextFilterSet)
|
||||
class ConfigContextFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
model = ConfigContext
|
||||
fieldsets = (
|
||||
@ -523,6 +534,7 @@ class ConfigContextFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(ConfigTemplateFilterSet)
|
||||
class ConfigTemplateFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
model = ConfigTemplate
|
||||
fieldsets = (
|
||||
@ -587,6 +599,7 @@ class LocalConfigContextFilterForm(forms.Form):
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(JournalEntryFilterSet)
|
||||
class JournalEntryFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
model = JournalEntry
|
||||
fieldsets = (
|
||||
@ -622,6 +635,7 @@ class JournalEntryFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(NotificationGroupFilterSet)
|
||||
class NotificationGroupFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
model = NotificationGroup
|
||||
user_id = DynamicModelMultipleChoiceField(
|
||||
@ -634,21 +648,3 @@ class NotificationGroupFilterForm(FilterModifierMixin, SavedFiltersMixin, Filter
|
||||
required=False,
|
||||
label=_('Group')
|
||||
)
|
||||
|
||||
|
||||
# Register FilterSet mappings for FilterModifierMixin lookup verification
|
||||
FILTERSET_MAPPINGS[CustomFieldFilterForm] = CustomFieldFilterSet
|
||||
FILTERSET_MAPPINGS[CustomFieldChoiceSetFilterForm] = CustomFieldChoiceSetFilterSet
|
||||
FILTERSET_MAPPINGS[CustomLinkFilterForm] = CustomLinkFilterSet
|
||||
FILTERSET_MAPPINGS[ExportTemplateFilterForm] = ExportTemplateFilterSet
|
||||
FILTERSET_MAPPINGS[ImageAttachmentFilterForm] = ImageAttachmentFilterSet
|
||||
FILTERSET_MAPPINGS[SavedFilterFilterForm] = SavedFilterFilterSet
|
||||
FILTERSET_MAPPINGS[TableConfigFilterForm] = TableConfigFilterSet
|
||||
FILTERSET_MAPPINGS[WebhookFilterForm] = WebhookFilterSet
|
||||
FILTERSET_MAPPINGS[EventRuleFilterForm] = EventRuleFilterSet
|
||||
FILTERSET_MAPPINGS[TagFilterForm] = TagFilterSet
|
||||
FILTERSET_MAPPINGS[ConfigContextProfileFilterForm] = ConfigContextProfileFilterSet
|
||||
FILTERSET_MAPPINGS[ConfigContextFilterForm] = ConfigContextFilterSet
|
||||
FILTERSET_MAPPINGS[ConfigTemplateFilterForm] = ConfigTemplateFilterSet
|
||||
FILTERSET_MAPPINGS[JournalEntryFilterForm] = JournalEntryFilterSet
|
||||
FILTERSET_MAPPINGS[NotificationGroupFilterForm] = NotificationGroupFilterSet
|
||||
|
||||
@ -8,9 +8,8 @@ from ipam.filtersets import *
|
||||
from ipam.models import *
|
||||
from netbox.forms import NetBoxModelFilterSetForm, OrganizationalModelFilterSetForm, PrimaryModelFilterSetForm
|
||||
from tenancy.forms import ContactModelFilterForm, TenancyFilterForm
|
||||
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, add_blank_choice
|
||||
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, add_blank_choice, register_filterset
|
||||
from utilities.forms.fields import DynamicModelChoiceField, DynamicModelMultipleChoiceField, TagFilterField
|
||||
from utilities.forms.filterset_mappings import FILTERSET_MAPPINGS
|
||||
from utilities.forms.mixins import FilterModifierMixin
|
||||
from utilities.forms.rendering import FieldSet
|
||||
from virtualization.models import VirtualMachine, ClusterGroup, Cluster
|
||||
@ -45,6 +44,7 @@ IPADDRESS_MASK_LENGTH_CHOICES = add_blank_choice([
|
||||
])
|
||||
|
||||
|
||||
@register_filterset(VRFFilterSet)
|
||||
class VRFFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||
model = VRF
|
||||
fieldsets = (
|
||||
@ -65,6 +65,7 @@ class VRFFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSe
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(RouteTargetFilterSet)
|
||||
class RouteTargetFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||
model = RouteTarget
|
||||
fieldsets = (
|
||||
@ -85,6 +86,7 @@ class RouteTargetFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModel
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(RIRFilterSet)
|
||||
class RIRFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm):
|
||||
model = RIR
|
||||
fieldsets = (
|
||||
@ -101,6 +103,7 @@ class RIRFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(AggregateFilterSet)
|
||||
class AggregateFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||
model = Aggregate
|
||||
fieldsets = (
|
||||
@ -122,6 +125,7 @@ class AggregateFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFi
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(ASNRangeFilterSet)
|
||||
class ASNRangeFilterForm(FilterModifierMixin, TenancyFilterForm, OrganizationalModelFilterSetForm):
|
||||
model = ASNRange
|
||||
fieldsets = (
|
||||
@ -145,6 +149,7 @@ class ASNRangeFilterForm(FilterModifierMixin, TenancyFilterForm, OrganizationalM
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(ASNFilterSet)
|
||||
class ASNFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||
model = ASN
|
||||
fieldsets = (
|
||||
@ -170,6 +175,7 @@ class ASNFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSe
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(RoleFilterSet)
|
||||
class RoleFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm):
|
||||
model = Role
|
||||
fieldsets = (
|
||||
@ -178,6 +184,7 @@ class RoleFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(PrefixFilterSet)
|
||||
class PrefixFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||
model = Prefix
|
||||
fieldsets = (
|
||||
@ -284,6 +291,7 @@ class PrefixFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilte
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(IPRangeFilterSet)
|
||||
class IPRangeFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||
model = IPRange
|
||||
fieldsets = (
|
||||
@ -331,6 +339,7 @@ class IPRangeFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilt
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(IPAddressFilterSet)
|
||||
class IPAddressFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||
model = IPAddress
|
||||
fieldsets = (
|
||||
@ -409,6 +418,7 @@ class IPAddressFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFi
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(FHRPGroupFilterSet)
|
||||
class FHRPGroupFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
model = FHRPGroup
|
||||
fieldsets = (
|
||||
@ -442,6 +452,7 @@ class FHRPGroupFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(VLANGroupFilterSet)
|
||||
class VLANGroupFilterForm(FilterModifierMixin, TenancyFilterForm, OrganizationalModelFilterSetForm):
|
||||
fieldsets = (
|
||||
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
||||
@ -495,6 +506,7 @@ class VLANGroupFilterForm(FilterModifierMixin, TenancyFilterForm, Organizational
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(VLANTranslationPolicyFilterSet)
|
||||
class VLANTranslationPolicyFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
model = VLANTranslationPolicy
|
||||
fieldsets = (
|
||||
@ -508,6 +520,7 @@ class VLANTranslationPolicyFilterForm(FilterModifierMixin, PrimaryModelFilterSet
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(VLANTranslationRuleFilterSet)
|
||||
class VLANTranslationRuleFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
model = VLANTranslationRule
|
||||
fieldsets = (
|
||||
@ -532,6 +545,7 @@ class VLANTranslationRuleFilterForm(FilterModifierMixin, NetBoxModelFilterSetFor
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(VLANFilterSet)
|
||||
class VLANFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||
model = VLAN
|
||||
fieldsets = (
|
||||
@ -604,6 +618,7 @@ class VLANFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterS
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(ServiceTemplateFilterSet)
|
||||
class ServiceTemplateFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
model = ServiceTemplate
|
||||
fieldsets = (
|
||||
@ -622,6 +637,7 @@ class ServiceTemplateFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(ServiceFilterSet)
|
||||
class ServiceFilterForm(ContactModelFilterForm, ServiceTemplateFilterForm):
|
||||
model = Service
|
||||
fieldsets = (
|
||||
@ -646,23 +662,3 @@ class ServiceFilterForm(ContactModelFilterForm, ServiceTemplateFilterForm):
|
||||
label=_('FHRP Group'),
|
||||
)
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
# Register FilterSet mappings for FilterModifierMixin lookup verification
|
||||
FILTERSET_MAPPINGS[AggregateFilterForm] = AggregateFilterSet
|
||||
FILTERSET_MAPPINGS[ASNFilterForm] = ASNFilterSet
|
||||
FILTERSET_MAPPINGS[ASNRangeFilterForm] = ASNRangeFilterSet
|
||||
FILTERSET_MAPPINGS[FHRPGroupFilterForm] = FHRPGroupFilterSet
|
||||
FILTERSET_MAPPINGS[IPAddressFilterForm] = IPAddressFilterSet
|
||||
FILTERSET_MAPPINGS[IPRangeFilterForm] = IPRangeFilterSet
|
||||
FILTERSET_MAPPINGS[PrefixFilterForm] = PrefixFilterSet
|
||||
FILTERSET_MAPPINGS[RIRFilterForm] = RIRFilterSet
|
||||
FILTERSET_MAPPINGS[RoleFilterForm] = RoleFilterSet
|
||||
FILTERSET_MAPPINGS[RouteTargetFilterForm] = RouteTargetFilterSet
|
||||
FILTERSET_MAPPINGS[ServiceFilterForm] = ServiceFilterSet
|
||||
FILTERSET_MAPPINGS[ServiceTemplateFilterForm] = ServiceTemplateFilterSet
|
||||
FILTERSET_MAPPINGS[VLANFilterForm] = VLANFilterSet
|
||||
FILTERSET_MAPPINGS[VLANGroupFilterForm] = VLANGroupFilterSet
|
||||
FILTERSET_MAPPINGS[VLANTranslationPolicyFilterForm] = VLANTranslationPolicyFilterSet
|
||||
FILTERSET_MAPPINGS[VLANTranslationRuleFilterForm] = VLANTranslationRuleFilterSet
|
||||
FILTERSET_MAPPINGS[VRFFilterForm] = VRFFilterSet
|
||||
|
||||
@ -26,6 +26,7 @@ registry = Registry({
|
||||
'data_backends': dict(),
|
||||
'denormalized_fields': collections.defaultdict(list),
|
||||
'event_types': dict(),
|
||||
'filtersets': dict(),
|
||||
'model_features': dict(),
|
||||
'models': collections.defaultdict(set),
|
||||
'plugins': dict(),
|
||||
|
||||
@ -13,7 +13,7 @@ from tenancy.forms import ContactModelFilterForm
|
||||
from utilities.forms.fields import (
|
||||
ContentTypeMultipleChoiceField, DynamicModelMultipleChoiceField, TagFilterField,
|
||||
)
|
||||
from utilities.forms.filterset_mappings import FILTERSET_MAPPINGS
|
||||
from utilities.forms import register_filterset
|
||||
from utilities.forms.mixins import FilterModifierMixin
|
||||
from utilities.forms.rendering import FieldSet
|
||||
|
||||
@ -31,6 +31,7 @@ __all__ = (
|
||||
# Tenants
|
||||
#
|
||||
|
||||
@register_filterset(TenantGroupFilterSet)
|
||||
class TenantGroupFilterForm(FilterModifierMixin, NestedGroupModelFilterSetForm):
|
||||
model = TenantGroup
|
||||
fieldsets = (
|
||||
@ -45,6 +46,7 @@ class TenantGroupFilterForm(FilterModifierMixin, NestedGroupModelFilterSetForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(TenantFilterSet)
|
||||
class TenantFilterForm(FilterModifierMixin, ContactModelFilterForm, PrimaryModelFilterSetForm):
|
||||
model = Tenant
|
||||
fieldsets = (
|
||||
@ -65,6 +67,7 @@ class TenantFilterForm(FilterModifierMixin, ContactModelFilterForm, PrimaryModel
|
||||
# Contacts
|
||||
#
|
||||
|
||||
@register_filterset(ContactGroupFilterSet)
|
||||
class ContactGroupFilterForm(FilterModifierMixin, NestedGroupModelFilterSetForm):
|
||||
model = ContactGroup
|
||||
fieldsets = (
|
||||
@ -79,6 +82,7 @@ class ContactGroupFilterForm(FilterModifierMixin, NestedGroupModelFilterSetForm)
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(ContactRoleFilterSet)
|
||||
class ContactRoleFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm):
|
||||
model = ContactRole
|
||||
fieldsets = (
|
||||
@ -87,6 +91,7 @@ class ContactRoleFilterForm(FilterModifierMixin, OrganizationalModelFilterSetFor
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(ContactFilterSet)
|
||||
class ContactFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
model = Contact
|
||||
fieldsets = (
|
||||
@ -102,6 +107,7 @@ class ContactFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(ContactAssignmentFilterSet)
|
||||
class ContactAssignmentFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
model = ContactAssignment
|
||||
fieldsets = (
|
||||
@ -134,12 +140,3 @@ class ContactAssignmentFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm)
|
||||
required=False
|
||||
)
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
# Register FilterSet mappings for FilterModifierMixin lookup verification
|
||||
FILTERSET_MAPPINGS[ContactAssignmentFilterForm] = ContactAssignmentFilterSet
|
||||
FILTERSET_MAPPINGS[ContactFilterForm] = ContactFilterSet
|
||||
FILTERSET_MAPPINGS[ContactGroupFilterForm] = ContactGroupFilterSet
|
||||
FILTERSET_MAPPINGS[ContactRoleFilterForm] = ContactRoleFilterSet
|
||||
FILTERSET_MAPPINGS[TenantFilterForm] = TenantFilterSet
|
||||
FILTERSET_MAPPINGS[TenantGroupFilterForm] = TenantGroupFilterSet
|
||||
|
||||
@ -5,9 +5,8 @@ from netbox.forms import NetBoxModelFilterSetForm
|
||||
from netbox.forms.mixins import SavedFiltersMixin
|
||||
from users.choices import TokenVersionChoices
|
||||
from users.models import Group, ObjectPermission, Owner, OwnerGroup, Token, User
|
||||
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm
|
||||
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm, register_filterset
|
||||
from utilities.forms.fields import DynamicModelMultipleChoiceField
|
||||
from utilities.forms.filterset_mappings import FILTERSET_MAPPINGS
|
||||
from utilities.forms.mixins import FilterModifierMixin
|
||||
from utilities.forms.rendering import FieldSet
|
||||
from utilities.forms.utils import add_blank_choice
|
||||
@ -24,6 +23,7 @@ __all__ = (
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(GroupFilterSet)
|
||||
class GroupFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
model = Group
|
||||
fieldsets = (
|
||||
@ -31,6 +31,7 @@ class GroupFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(UserFilterSet)
|
||||
class UserFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
model = User
|
||||
fieldsets = (
|
||||
@ -59,6 +60,7 @@ class UserFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(ObjectPermissionFilterSet)
|
||||
class ObjectPermissionFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
model = ObjectPermission
|
||||
fieldsets = (
|
||||
@ -113,6 +115,7 @@ class ObjectPermissionFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(TokenFilterSet)
|
||||
class TokenFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
model = Token
|
||||
fieldsets = (
|
||||
@ -154,6 +157,7 @@ class TokenFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(OwnerGroupFilterSet)
|
||||
class OwnerGroupFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
model = OwnerGroup
|
||||
fieldsets = (
|
||||
@ -161,6 +165,7 @@ class OwnerGroupFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(OwnerFilterSet)
|
||||
class OwnerFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
model = Owner
|
||||
fieldsets = (
|
||||
@ -183,12 +188,3 @@ class OwnerFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
required=False,
|
||||
label=_('Users')
|
||||
)
|
||||
|
||||
|
||||
# Register FilterSet mappings for FilterModifierMixin lookup verification
|
||||
FILTERSET_MAPPINGS[GroupFilterForm] = GroupFilterSet
|
||||
FILTERSET_MAPPINGS[UserFilterForm] = UserFilterSet
|
||||
FILTERSET_MAPPINGS[ObjectPermissionFilterForm] = ObjectPermissionFilterSet
|
||||
FILTERSET_MAPPINGS[TokenFilterForm] = TokenFilterSet
|
||||
FILTERSET_MAPPINGS[OwnerGroupFilterForm] = OwnerGroupFilterSet
|
||||
FILTERSET_MAPPINGS[OwnerFilterForm] = OwnerFilterSet
|
||||
|
||||
@ -2,3 +2,22 @@ from .constants import *
|
||||
from .forms import *
|
||||
from .mixins import *
|
||||
from .utils import *
|
||||
|
||||
|
||||
def register_filterset(filterset_class):
|
||||
"""
|
||||
Decorator for registering a FilterForm -> FilterSet mapping.
|
||||
|
||||
Usage:
|
||||
@register_filterset(DeviceFilterSet)
|
||||
class DeviceFilterForm(NetBoxModelFilterSetForm):
|
||||
...
|
||||
|
||||
Args:
|
||||
filterset_class: The corresponding filterset class
|
||||
"""
|
||||
def decorator(form_class):
|
||||
from netbox.registry import registry
|
||||
registry['filtersets'][form_class] = filterset_class
|
||||
return form_class
|
||||
return decorator
|
||||
|
||||
@ -1,11 +0,0 @@
|
||||
# Mapping of filter form classes to their corresponding FilterSet classes
|
||||
# This enables the FilterModifierMixin to verify which lookups are actually supported
|
||||
# by checking the FilterSet's auto-generated lookup filters.
|
||||
#
|
||||
# Usage:
|
||||
# from utilities.forms.filterset_mappings import FILTERSET_MAPPINGS
|
||||
# from .forms.filtersets import XFilterForm
|
||||
# from .filtersets import XFilterSet
|
||||
# FILTERSET_MAPPINGS[XFilterForm] = XFilterSet
|
||||
|
||||
FILTERSET_MAPPINGS = {}
|
||||
@ -172,10 +172,10 @@ class FilterModifierMixin:
|
||||
def _enhance_fields_with_modifiers(self):
|
||||
"""Wrap compatible field widgets with FilterModifierWidget."""
|
||||
from utilities.forms.widgets import FilterModifierWidget
|
||||
from utilities.forms.filterset_mappings import FILTERSET_MAPPINGS
|
||||
from netbox.registry import registry
|
||||
|
||||
# Get the corresponding FilterSet if registered
|
||||
filterset_class = FILTERSET_MAPPINGS.get(self.__class__)
|
||||
filterset_class = registry['filtersets'].get(self.__class__)
|
||||
filterset = filterset_class() if filterset_class else None
|
||||
|
||||
for field_name, field in self.fields.items():
|
||||
|
||||
@ -9,9 +9,8 @@ from ipam.models import VRF, VLANTranslationPolicy
|
||||
from netbox.forms import NetBoxModelFilterSetForm, OrganizationalModelFilterSetForm, PrimaryModelFilterSetForm
|
||||
from tenancy.forms import ContactModelFilterForm, TenancyFilterForm
|
||||
from users.models import Owner
|
||||
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES
|
||||
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, register_filterset
|
||||
from utilities.forms.fields import DynamicModelChoiceField, DynamicModelMultipleChoiceField, TagFilterField
|
||||
from utilities.forms.filterset_mappings import FILTERSET_MAPPINGS
|
||||
from utilities.forms.mixins import FilterModifierMixin
|
||||
from utilities.forms.rendering import FieldSet
|
||||
from virtualization.choices import *
|
||||
@ -29,6 +28,7 @@ __all__ = (
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(ClusterTypeFilterSet)
|
||||
class ClusterTypeFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm):
|
||||
model = ClusterType
|
||||
fieldsets = (
|
||||
@ -37,6 +37,7 @@ class ClusterTypeFilterForm(FilterModifierMixin, OrganizationalModelFilterSetFor
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(ClusterGroupFilterSet)
|
||||
class ClusterGroupFilterForm(FilterModifierMixin, ContactModelFilterForm, OrganizationalModelFilterSetForm):
|
||||
model = ClusterGroup
|
||||
tag = TagFilterField(model)
|
||||
@ -46,6 +47,7 @@ class ClusterGroupFilterForm(FilterModifierMixin, ContactModelFilterForm, Organi
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(ClusterFilterSet)
|
||||
class ClusterFilterForm(FilterModifierMixin, TenancyFilterForm, ContactModelFilterForm, PrimaryModelFilterSetForm):
|
||||
model = Cluster
|
||||
fieldsets = (
|
||||
@ -100,6 +102,7 @@ class ClusterFilterForm(FilterModifierMixin, TenancyFilterForm, ContactModelFilt
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(VirtualMachineFilterSet)
|
||||
class VirtualMachineFilterForm(
|
||||
FilterModifierMixin,
|
||||
LocalConfigContextFilterForm,
|
||||
@ -209,6 +212,7 @@ class VirtualMachineFilterForm(
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(VMInterfaceFilterSet)
|
||||
class VMInterfaceFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
model = VMInterface
|
||||
fieldsets = (
|
||||
@ -271,6 +275,7 @@ class VMInterfaceFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(VirtualDiskFilterSet)
|
||||
class VirtualDiskFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
model = VirtualDisk
|
||||
fieldsets = (
|
||||
@ -294,12 +299,3 @@ class VirtualDiskFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
label=_('Owner'),
|
||||
)
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
# Register FilterSet mappings for FilterModifierMixin lookup verification
|
||||
FILTERSET_MAPPINGS[ClusterFilterForm] = ClusterFilterSet
|
||||
FILTERSET_MAPPINGS[ClusterGroupFilterForm] = ClusterGroupFilterSet
|
||||
FILTERSET_MAPPINGS[ClusterTypeFilterForm] = ClusterTypeFilterSet
|
||||
FILTERSET_MAPPINGS[VirtualDiskFilterForm] = VirtualDiskFilterSet
|
||||
FILTERSET_MAPPINGS[VirtualMachineFilterForm] = VirtualMachineFilterSet
|
||||
FILTERSET_MAPPINGS[VMInterfaceFilterForm] = VMInterfaceFilterSet
|
||||
|
||||
@ -9,7 +9,7 @@ from tenancy.forms import ContactModelFilterForm, TenancyFilterForm
|
||||
from utilities.forms.fields import (
|
||||
ContentTypeMultipleChoiceField, DynamicModelChoiceField, DynamicModelMultipleChoiceField, TagFilterField,
|
||||
)
|
||||
from utilities.forms.filterset_mappings import FILTERSET_MAPPINGS
|
||||
from utilities.forms import register_filterset
|
||||
from utilities.forms.mixins import FilterModifierMixin
|
||||
from utilities.forms.rendering import FieldSet
|
||||
from utilities.forms.utils import add_blank_choice
|
||||
@ -33,6 +33,7 @@ __all__ = (
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(TunnelGroupFilterSet)
|
||||
class TunnelGroupFilterForm(FilterModifierMixin, ContactModelFilterForm, OrganizationalModelFilterSetForm):
|
||||
model = TunnelGroup
|
||||
fieldsets = (
|
||||
@ -42,6 +43,7 @@ class TunnelGroupFilterForm(FilterModifierMixin, ContactModelFilterForm, Organiz
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(TunnelFilterSet)
|
||||
class TunnelFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||
model = Tunnel
|
||||
fieldsets = (
|
||||
@ -78,6 +80,7 @@ class TunnelFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilte
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(TunnelTerminationFilterSet)
|
||||
class TunnelTerminationFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
model = TunnelTermination
|
||||
fieldsets = (
|
||||
@ -97,6 +100,7 @@ class TunnelTerminationFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm)
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(IKEProposalFilterSet)
|
||||
class IKEProposalFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
model = IKEProposal
|
||||
fieldsets = (
|
||||
@ -128,6 +132,7 @@ class IKEProposalFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(IKEPolicyFilterSet)
|
||||
class IKEPolicyFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
model = IKEPolicy
|
||||
fieldsets = (
|
||||
@ -152,6 +157,7 @@ class IKEPolicyFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(IPSecProposalFilterSet)
|
||||
class IPSecProposalFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
model = IPSecProposal
|
||||
fieldsets = (
|
||||
@ -171,6 +177,7 @@ class IPSecProposalFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(IPSecPolicyFilterSet)
|
||||
class IPSecPolicyFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
model = IPSecPolicy
|
||||
fieldsets = (
|
||||
@ -190,6 +197,7 @@ class IPSecPolicyFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(IPSecProfileFilterSet)
|
||||
class IPSecProfileFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
model = IPSecProfile
|
||||
fieldsets = (
|
||||
@ -214,6 +222,7 @@ class IPSecProfileFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(L2VPNFilterSet)
|
||||
class L2VPNFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||
model = L2VPN
|
||||
fieldsets = (
|
||||
@ -245,6 +254,7 @@ class L2VPNFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilter
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(L2VPNTerminationFilterSet)
|
||||
class L2VPNTerminationFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
model = L2VPNTermination
|
||||
fieldsets = (
|
||||
@ -307,16 +317,3 @@ class L2VPNTerminationFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||
label=_('Virtual Machine')
|
||||
)
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
# Register FilterSet mappings for FilterModifierMixin lookup verification
|
||||
FILTERSET_MAPPINGS[IKEPolicyFilterForm] = IKEPolicyFilterSet
|
||||
FILTERSET_MAPPINGS[IKEProposalFilterForm] = IKEProposalFilterSet
|
||||
FILTERSET_MAPPINGS[IPSecPolicyFilterForm] = IPSecPolicyFilterSet
|
||||
FILTERSET_MAPPINGS[IPSecProfileFilterForm] = IPSecProfileFilterSet
|
||||
FILTERSET_MAPPINGS[IPSecProposalFilterForm] = IPSecProposalFilterSet
|
||||
FILTERSET_MAPPINGS[L2VPNFilterForm] = L2VPNFilterSet
|
||||
FILTERSET_MAPPINGS[L2VPNTerminationFilterForm] = L2VPNTerminationFilterSet
|
||||
FILTERSET_MAPPINGS[TunnelFilterForm] = TunnelFilterSet
|
||||
FILTERSET_MAPPINGS[TunnelGroupFilterForm] = TunnelGroupFilterSet
|
||||
FILTERSET_MAPPINGS[TunnelTerminationFilterForm] = TunnelTerminationFilterSet
|
||||
|
||||
@ -6,9 +6,8 @@ from dcim.models import Location, Region, Site, SiteGroup
|
||||
from netbox.choices import *
|
||||
from netbox.forms import NestedGroupModelFilterSetForm, PrimaryModelFilterSetForm
|
||||
from tenancy.forms import TenancyFilterForm
|
||||
from utilities.forms import add_blank_choice
|
||||
from utilities.forms import add_blank_choice, register_filterset
|
||||
from utilities.forms.fields import DynamicModelMultipleChoiceField, TagFilterField
|
||||
from utilities.forms.filterset_mappings import FILTERSET_MAPPINGS
|
||||
from utilities.forms.mixins import FilterModifierMixin
|
||||
from utilities.forms.rendering import FieldSet
|
||||
from wireless.choices import *
|
||||
@ -22,6 +21,7 @@ __all__ = (
|
||||
)
|
||||
|
||||
|
||||
@register_filterset(WirelessLANGroupFilterSet)
|
||||
class WirelessLANGroupFilterForm(FilterModifierMixin, NestedGroupModelFilterSetForm):
|
||||
model = WirelessLANGroup
|
||||
fieldsets = (
|
||||
@ -36,6 +36,7 @@ class WirelessLANGroupFilterForm(FilterModifierMixin, NestedGroupModelFilterSetF
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(WirelessLANFilterSet)
|
||||
class WirelessLANFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||
model = WirelessLAN
|
||||
fieldsets = (
|
||||
@ -102,6 +103,7 @@ class WirelessLANFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModel
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
@register_filterset(WirelessLinkFilterSet)
|
||||
class WirelessLinkFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||
model = WirelessLink
|
||||
fieldsets = (
|
||||
@ -143,9 +145,3 @@ class WirelessLinkFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryMode
|
||||
required=False
|
||||
)
|
||||
tag = TagFilterField(model)
|
||||
|
||||
|
||||
# Register FilterSet mappings for FilterModifierMixin lookup verification
|
||||
FILTERSET_MAPPINGS[WirelessLANFilterForm] = WirelessLANFilterSet
|
||||
FILTERSET_MAPPINGS[WirelessLANGroupFilterForm] = WirelessLANGroupFilterSet
|
||||
FILTERSET_MAPPINGS[WirelessLinkFilterForm] = WirelessLinkFilterSet
|
||||
|
||||
Loading…
Reference in New Issue
Block a user