mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-12 11:29:36 -06:00
Enable filter form modifiers on IPAM models
This commit is contained in:
parent
067c670243
commit
e7ad66f2ef
@ -4,11 +4,14 @@ from django.utils.translation import gettext_lazy as _
|
|||||||
from dcim.models import Location, Rack, Region, Site, SiteGroup, Device
|
from dcim.models import Location, Rack, Region, Site, SiteGroup, Device
|
||||||
from ipam.choices import *
|
from ipam.choices import *
|
||||||
from ipam.constants import *
|
from ipam.constants import *
|
||||||
|
from ipam.filtersets import *
|
||||||
from ipam.models import *
|
from ipam.models import *
|
||||||
from netbox.forms import NetBoxModelFilterSetForm, OrganizationalModelFilterSetForm, PrimaryModelFilterSetForm
|
from netbox.forms import NetBoxModelFilterSetForm, OrganizationalModelFilterSetForm, PrimaryModelFilterSetForm
|
||||||
from tenancy.forms import ContactModelFilterForm, TenancyFilterForm
|
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
|
||||||
from utilities.forms.fields import DynamicModelChoiceField, DynamicModelMultipleChoiceField, TagFilterField
|
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 utilities.forms.rendering import FieldSet
|
||||||
from virtualization.models import VirtualMachine, ClusterGroup, Cluster
|
from virtualization.models import VirtualMachine, ClusterGroup, Cluster
|
||||||
from vpn.models import L2VPN
|
from vpn.models import L2VPN
|
||||||
@ -42,7 +45,7 @@ IPADDRESS_MASK_LENGTH_CHOICES = add_blank_choice([
|
|||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
class VRFFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
class VRFFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = VRF
|
model = VRF
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
||||||
@ -62,7 +65,7 @@ class VRFFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
class RouteTargetFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
class RouteTargetFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = RouteTarget
|
model = RouteTarget
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
||||||
@ -82,7 +85,7 @@ class RouteTargetFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
class RIRFilterForm(OrganizationalModelFilterSetForm):
|
class RIRFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm):
|
||||||
model = RIR
|
model = RIR
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
||||||
@ -98,7 +101,7 @@ class RIRFilterForm(OrganizationalModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
class AggregateFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
class AggregateFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = Aggregate
|
model = Aggregate
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
||||||
@ -119,7 +122,7 @@ class AggregateFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryMode
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
class ASNRangeFilterForm(TenancyFilterForm, OrganizationalModelFilterSetForm):
|
class ASNRangeFilterForm(FilterModifierMixin, TenancyFilterForm, OrganizationalModelFilterSetForm):
|
||||||
model = ASNRange
|
model = ASNRange
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
||||||
@ -142,7 +145,7 @@ class ASNRangeFilterForm(TenancyFilterForm, OrganizationalModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
class ASNFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
class ASNFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = ASN
|
model = ASN
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
||||||
@ -167,7 +170,7 @@ class ASNFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
class RoleFilterForm(OrganizationalModelFilterSetForm):
|
class RoleFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm):
|
||||||
model = Role
|
model = Role
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
||||||
@ -175,7 +178,7 @@ class RoleFilterForm(OrganizationalModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
class PrefixFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
class PrefixFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = Prefix
|
model = Prefix
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
||||||
@ -281,7 +284,7 @@ class PrefixFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFi
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
class IPRangeFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
class IPRangeFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = IPRange
|
model = IPRange
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
||||||
@ -328,7 +331,7 @@ class IPRangeFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelF
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
class IPAddressFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
class IPAddressFilterForm(FilterModifierMixin, ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = IPAddress
|
model = IPAddress
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
||||||
@ -406,7 +409,7 @@ class IPAddressFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryMode
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
class FHRPGroupFilterForm(PrimaryModelFilterSetForm):
|
class FHRPGroupFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||||
model = FHRPGroup
|
model = FHRPGroup
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
||||||
@ -439,7 +442,7 @@ class FHRPGroupFilterForm(PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
class VLANGroupFilterForm(TenancyFilterForm, OrganizationalModelFilterSetForm):
|
class VLANGroupFilterForm(FilterModifierMixin, TenancyFilterForm, OrganizationalModelFilterSetForm):
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
||||||
FieldSet('region', 'site_group', 'site', 'location', 'rack', name=_('Location')),
|
FieldSet('region', 'site_group', 'site', 'location', 'rack', name=_('Location')),
|
||||||
@ -492,7 +495,7 @@ class VLANGroupFilterForm(TenancyFilterForm, OrganizationalModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
class VLANTranslationPolicyFilterForm(PrimaryModelFilterSetForm):
|
class VLANTranslationPolicyFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||||
model = VLANTranslationPolicy
|
model = VLANTranslationPolicy
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
||||||
@ -505,7 +508,7 @@ class VLANTranslationPolicyFilterForm(PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
class VLANTranslationRuleFilterForm(NetBoxModelFilterSetForm):
|
class VLANTranslationRuleFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
|
||||||
model = VLANTranslationRule
|
model = VLANTranslationRule
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
FieldSet('q', 'filter_id', 'tag'),
|
FieldSet('q', 'filter_id', 'tag'),
|
||||||
@ -529,7 +532,7 @@ class VLANTranslationRuleFilterForm(NetBoxModelFilterSetForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class VLANFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
class VLANFilterForm(FilterModifierMixin, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = VLAN
|
model = VLAN
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
||||||
@ -601,7 +604,7 @@ class VLANFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
class ServiceTemplateFilterForm(PrimaryModelFilterSetForm):
|
class ServiceTemplateFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
|
||||||
model = ServiceTemplate
|
model = ServiceTemplate
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
||||||
@ -643,3 +646,23 @@ class ServiceFilterForm(ContactModelFilterForm, ServiceTemplateFilterForm):
|
|||||||
label=_('FHRP Group'),
|
label=_('FHRP Group'),
|
||||||
)
|
)
|
||||||
tag = TagFilterField(model)
|
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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user