mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-12 11:29:36 -06:00
Refactor register_filterset to be more generic and simple
This commit is contained in:
parent
84ba09bf02
commit
ab5005ec09
@ -11,6 +11,7 @@ from tenancy.filtersets import ContactModelFilterSet, TenancyFilterSet
|
|||||||
from utilities.filters import (
|
from utilities.filters import (
|
||||||
ContentTypeFilter, MultiValueCharFilter, MultiValueNumberFilter, TreeNodeMultipleChoiceFilter,
|
ContentTypeFilter, MultiValueCharFilter, MultiValueNumberFilter, TreeNodeMultipleChoiceFilter,
|
||||||
)
|
)
|
||||||
|
from utilities.filtersets import register_filterset
|
||||||
from .choices import *
|
from .choices import *
|
||||||
from .models import *
|
from .models import *
|
||||||
|
|
||||||
@ -29,6 +30,7 @@ __all__ = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ProviderFilterSet(PrimaryModelFilterSet, ContactModelFilterSet):
|
class ProviderFilterSet(PrimaryModelFilterSet, ContactModelFilterSet):
|
||||||
region_id = TreeNodeMultipleChoiceFilter(
|
region_id = TreeNodeMultipleChoiceFilter(
|
||||||
queryset=Region.objects.all(),
|
queryset=Region.objects.all(),
|
||||||
@ -93,6 +95,7 @@ class ProviderFilterSet(PrimaryModelFilterSet, ContactModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ProviderAccountFilterSet(PrimaryModelFilterSet, ContactModelFilterSet):
|
class ProviderAccountFilterSet(PrimaryModelFilterSet, ContactModelFilterSet):
|
||||||
provider_id = django_filters.ModelMultipleChoiceFilter(
|
provider_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=Provider.objects.all(),
|
queryset=Provider.objects.all(),
|
||||||
@ -120,6 +123,7 @@ class ProviderAccountFilterSet(PrimaryModelFilterSet, ContactModelFilterSet):
|
|||||||
).distinct()
|
).distinct()
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ProviderNetworkFilterSet(PrimaryModelFilterSet):
|
class ProviderNetworkFilterSet(PrimaryModelFilterSet):
|
||||||
provider_id = django_filters.ModelMultipleChoiceFilter(
|
provider_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=Provider.objects.all(),
|
queryset=Provider.objects.all(),
|
||||||
@ -147,6 +151,7 @@ class ProviderNetworkFilterSet(PrimaryModelFilterSet):
|
|||||||
).distinct()
|
).distinct()
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class CircuitTypeFilterSet(OrganizationalModelFilterSet):
|
class CircuitTypeFilterSet(OrganizationalModelFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -154,6 +159,7 @@ class CircuitTypeFilterSet(OrganizationalModelFilterSet):
|
|||||||
fields = ('id', 'name', 'slug', 'color', 'description')
|
fields = ('id', 'name', 'slug', 'color', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class CircuitFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
class CircuitFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
||||||
provider_id = django_filters.ModelMultipleChoiceFilter(
|
provider_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=Provider.objects.all(),
|
queryset=Provider.objects.all(),
|
||||||
@ -265,6 +271,7 @@ class CircuitFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilt
|
|||||||
).distinct()
|
).distinct()
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class CircuitTerminationFilterSet(NetBoxModelFilterSet, CabledObjectFilterSet):
|
class CircuitTerminationFilterSet(NetBoxModelFilterSet, CabledObjectFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -360,6 +367,7 @@ class CircuitTerminationFilterSet(NetBoxModelFilterSet, CabledObjectFilterSet):
|
|||||||
).distinct()
|
).distinct()
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class CircuitGroupFilterSet(OrganizationalModelFilterSet, TenancyFilterSet):
|
class CircuitGroupFilterSet(OrganizationalModelFilterSet, TenancyFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -367,6 +375,7 @@ class CircuitGroupFilterSet(OrganizationalModelFilterSet, TenancyFilterSet):
|
|||||||
fields = ('id', 'name', 'slug', 'description')
|
fields = ('id', 'name', 'slug', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class CircuitGroupAssignmentFilterSet(NetBoxModelFilterSet):
|
class CircuitGroupAssignmentFilterSet(NetBoxModelFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -466,6 +475,7 @@ class CircuitGroupAssignmentFilterSet(NetBoxModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class VirtualCircuitTypeFilterSet(OrganizationalModelFilterSet):
|
class VirtualCircuitTypeFilterSet(OrganizationalModelFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -473,6 +483,7 @@ class VirtualCircuitTypeFilterSet(OrganizationalModelFilterSet):
|
|||||||
fields = ('id', 'name', 'slug', 'color', 'description')
|
fields = ('id', 'name', 'slug', 'color', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class VirtualCircuitFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
class VirtualCircuitFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
||||||
provider_id = django_filters.ModelMultipleChoiceFilter(
|
provider_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='provider_network__provider',
|
field_name='provider_network__provider',
|
||||||
@ -529,6 +540,7 @@ class VirtualCircuitFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
|||||||
).distinct()
|
).distinct()
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class VirtualCircuitTerminationFilterSet(NetBoxModelFilterSet):
|
class VirtualCircuitTerminationFilterSet(NetBoxModelFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
|
|||||||
@ -11,7 +11,7 @@ from ipam.models import ASN
|
|||||||
from netbox.choices import DistanceUnitChoices
|
from netbox.choices import DistanceUnitChoices
|
||||||
from netbox.forms import NetBoxModelFilterSetForm, OrganizationalModelFilterSetForm, PrimaryModelFilterSetForm
|
from netbox.forms import NetBoxModelFilterSetForm, OrganizationalModelFilterSetForm, PrimaryModelFilterSetForm
|
||||||
from tenancy.forms import TenancyFilterForm, ContactModelFilterForm
|
from tenancy.forms import TenancyFilterForm, ContactModelFilterForm
|
||||||
from utilities.forms import add_blank_choice, register_filterset
|
from utilities.forms import add_blank_choice
|
||||||
from utilities.forms.fields import ColorField, DynamicModelMultipleChoiceField, TagFilterField
|
from utilities.forms.fields import ColorField, DynamicModelMultipleChoiceField, TagFilterField
|
||||||
from utilities.forms.rendering import FieldSet
|
from utilities.forms.rendering import FieldSet
|
||||||
from utilities.forms.widgets import DatePicker, NumberWithOptions
|
from utilities.forms.widgets import DatePicker, NumberWithOptions
|
||||||
@ -32,7 +32,6 @@ __all__ = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ProviderFilterSet)
|
|
||||||
class ProviderFilterForm(ContactModelFilterForm, PrimaryModelFilterSetForm):
|
class ProviderFilterForm(ContactModelFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = Provider
|
model = Provider
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -68,7 +67,6 @@ class ProviderFilterForm(ContactModelFilterForm, PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ProviderAccountFilterSet)
|
|
||||||
class ProviderAccountFilterForm(ContactModelFilterForm, PrimaryModelFilterSetForm):
|
class ProviderAccountFilterForm(ContactModelFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = ProviderAccount
|
model = ProviderAccount
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -88,7 +86,6 @@ class ProviderAccountFilterForm(ContactModelFilterForm, PrimaryModelFilterSetFor
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ProviderNetworkFilterSet)
|
|
||||||
class ProviderNetworkFilterForm(PrimaryModelFilterSetForm):
|
class ProviderNetworkFilterForm(PrimaryModelFilterSetForm):
|
||||||
model = ProviderNetwork
|
model = ProviderNetwork
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -108,7 +105,6 @@ class ProviderNetworkFilterForm(PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(CircuitTypeFilterSet)
|
|
||||||
class CircuitTypeFilterForm(OrganizationalModelFilterSetForm):
|
class CircuitTypeFilterForm(OrganizationalModelFilterSetForm):
|
||||||
model = CircuitType
|
model = CircuitType
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -123,7 +119,6 @@ class CircuitTypeFilterForm(OrganizationalModelFilterSetForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(CircuitFilterSet)
|
|
||||||
class CircuitFilterForm(TenancyFilterForm, ContactModelFilterForm, PrimaryModelFilterSetForm):
|
class CircuitFilterForm(TenancyFilterForm, ContactModelFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = Circuit
|
model = Circuit
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -223,7 +218,6 @@ class CircuitFilterForm(TenancyFilterForm, ContactModelFilterForm, PrimaryModelF
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(CircuitTerminationFilterSet)
|
|
||||||
class CircuitTerminationFilterForm(NetBoxModelFilterSetForm):
|
class CircuitTerminationFilterForm(NetBoxModelFilterSetForm):
|
||||||
model = CircuitTermination
|
model = CircuitTermination
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -278,7 +272,6 @@ class CircuitTerminationFilterForm(NetBoxModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(CircuitGroupFilterSet)
|
|
||||||
class CircuitGroupFilterForm(TenancyFilterForm, OrganizationalModelFilterSetForm):
|
class CircuitGroupFilterForm(TenancyFilterForm, OrganizationalModelFilterSetForm):
|
||||||
model = CircuitGroup
|
model = CircuitGroup
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -288,7 +281,6 @@ class CircuitGroupFilterForm(TenancyFilterForm, OrganizationalModelFilterSetForm
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(CircuitGroupAssignmentFilterSet)
|
|
||||||
class CircuitGroupAssignmentFilterForm(NetBoxModelFilterSetForm):
|
class CircuitGroupAssignmentFilterForm(NetBoxModelFilterSetForm):
|
||||||
model = CircuitGroupAssignment
|
model = CircuitGroupAssignment
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -318,7 +310,6 @@ class CircuitGroupAssignmentFilterForm(NetBoxModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(VirtualCircuitTypeFilterSet)
|
|
||||||
class VirtualCircuitTypeFilterForm(OrganizationalModelFilterSetForm):
|
class VirtualCircuitTypeFilterForm(OrganizationalModelFilterSetForm):
|
||||||
model = VirtualCircuitType
|
model = VirtualCircuitType
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -333,7 +324,6 @@ class VirtualCircuitTypeFilterForm(OrganizationalModelFilterSetForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(VirtualCircuitFilterSet)
|
|
||||||
class VirtualCircuitFilterForm(
|
class VirtualCircuitFilterForm(
|
||||||
TenancyFilterForm,
|
TenancyFilterForm,
|
||||||
ContactModelFilterForm,
|
ContactModelFilterForm,
|
||||||
@ -381,7 +371,6 @@ class VirtualCircuitFilterForm(
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(VirtualCircuitTerminationFilterSet)
|
|
||||||
class VirtualCircuitTerminationFilterForm(NetBoxModelFilterSetForm):
|
class VirtualCircuitTerminationFilterForm(NetBoxModelFilterSetForm):
|
||||||
model = VirtualCircuitTermination
|
model = VirtualCircuitTermination
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
|
|||||||
@ -7,6 +7,7 @@ from netbox.filtersets import BaseFilterSet, ChangeLoggedModelFilterSet, Primary
|
|||||||
from netbox.utils import get_data_backend_choices
|
from netbox.utils import get_data_backend_choices
|
||||||
from users.models import User
|
from users.models import User
|
||||||
from utilities.filters import ContentTypeFilter
|
from utilities.filters import ContentTypeFilter
|
||||||
|
from utilities.filtersets import register_filterset
|
||||||
from .choices import *
|
from .choices import *
|
||||||
from .models import *
|
from .models import *
|
||||||
|
|
||||||
@ -20,6 +21,7 @@ __all__ = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class DataSourceFilterSet(PrimaryModelFilterSet):
|
class DataSourceFilterSet(PrimaryModelFilterSet):
|
||||||
type = django_filters.MultipleChoiceFilter(
|
type = django_filters.MultipleChoiceFilter(
|
||||||
choices=get_data_backend_choices,
|
choices=get_data_backend_choices,
|
||||||
@ -48,6 +50,7 @@ class DataSourceFilterSet(PrimaryModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class DataFileFilterSet(ChangeLoggedModelFilterSet):
|
class DataFileFilterSet(ChangeLoggedModelFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search'
|
method='search'
|
||||||
@ -75,6 +78,7 @@ class DataFileFilterSet(ChangeLoggedModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class JobFilterSet(BaseFilterSet):
|
class JobFilterSet(BaseFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -139,6 +143,7 @@ class JobFilterSet(BaseFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ObjectTypeFilterSet(BaseFilterSet):
|
class ObjectTypeFilterSet(BaseFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -164,6 +169,7 @@ class ObjectTypeFilterSet(BaseFilterSet):
|
|||||||
return queryset.filter(features__icontains=value)
|
return queryset.filter(features__icontains=value)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ObjectChangeFilterSet(BaseFilterSet):
|
class ObjectChangeFilterSet(BaseFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -203,6 +209,7 @@ class ObjectChangeFilterSet(BaseFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ConfigRevisionFilterSet(BaseFilterSet):
|
class ConfigRevisionFilterSet(BaseFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
|
|||||||
@ -7,7 +7,7 @@ from netbox.forms import NetBoxModelFilterSetForm, PrimaryModelFilterSetForm
|
|||||||
from netbox.forms.mixins import SavedFiltersMixin
|
from netbox.forms.mixins import SavedFiltersMixin
|
||||||
from netbox.utils import get_data_backend_choices
|
from netbox.utils import get_data_backend_choices
|
||||||
from users.models import User
|
from users.models import User
|
||||||
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm, add_blank_choice, register_filterset
|
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm, add_blank_choice
|
||||||
from utilities.forms.fields import (
|
from utilities.forms.fields import (
|
||||||
ContentTypeChoiceField, ContentTypeMultipleChoiceField, DynamicModelMultipleChoiceField, TagFilterField,
|
ContentTypeChoiceField, ContentTypeMultipleChoiceField, DynamicModelMultipleChoiceField, TagFilterField,
|
||||||
)
|
)
|
||||||
@ -24,7 +24,6 @@ __all__ = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(DataSourceFilterSet)
|
|
||||||
class DataSourceFilterForm(PrimaryModelFilterSetForm):
|
class DataSourceFilterForm(PrimaryModelFilterSetForm):
|
||||||
model = DataSource
|
model = DataSource
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -56,7 +55,6 @@ class DataSourceFilterForm(PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(DataFileFilterSet)
|
|
||||||
class DataFileFilterForm(NetBoxModelFilterSetForm):
|
class DataFileFilterForm(NetBoxModelFilterSetForm):
|
||||||
model = DataFile
|
model = DataFile
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -70,7 +68,6 @@ class DataFileFilterForm(NetBoxModelFilterSetForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(JobFilterSet)
|
|
||||||
class JobFilterForm(SavedFiltersMixin, FilterForm):
|
class JobFilterForm(SavedFiltersMixin, FilterForm):
|
||||||
model = Job
|
model = Job
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -138,7 +135,6 @@ class JobFilterForm(SavedFiltersMixin, FilterForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ObjectChangeFilterSet)
|
|
||||||
class ObjectChangeFilterForm(SavedFiltersMixin, FilterForm):
|
class ObjectChangeFilterForm(SavedFiltersMixin, FilterForm):
|
||||||
model = ObjectChange
|
model = ObjectChange
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -173,7 +169,6 @@ class ObjectChangeFilterForm(SavedFiltersMixin, FilterForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ConfigRevisionFilterSet)
|
|
||||||
class ConfigRevisionFilterForm(SavedFiltersMixin, FilterForm):
|
class ConfigRevisionFilterForm(SavedFiltersMixin, FilterForm):
|
||||||
model = ConfigRevision
|
model = ConfigRevision
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
|
|||||||
@ -22,6 +22,7 @@ from utilities.filters import (
|
|||||||
ContentTypeFilter, MultiValueCharFilter, MultiValueMACAddressFilter, MultiValueNumberFilter, MultiValueWWNFilter,
|
ContentTypeFilter, MultiValueCharFilter, MultiValueMACAddressFilter, MultiValueNumberFilter, MultiValueWWNFilter,
|
||||||
NumericArrayFilter, TreeNodeMultipleChoiceFilter,
|
NumericArrayFilter, TreeNodeMultipleChoiceFilter,
|
||||||
)
|
)
|
||||||
|
from utilities.filtersets import register_filterset
|
||||||
from virtualization.models import Cluster, ClusterGroup, VirtualMachine, VMInterface
|
from virtualization.models import Cluster, ClusterGroup, VirtualMachine, VMInterface
|
||||||
from vpn.models import L2VPN
|
from vpn.models import L2VPN
|
||||||
from wireless.choices import WirelessChannelChoices, WirelessRoleChoices
|
from wireless.choices import WirelessChannelChoices, WirelessRoleChoices
|
||||||
@ -84,6 +85,7 @@ __all__ = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class RegionFilterSet(NestedGroupModelFilterSet, ContactModelFilterSet):
|
class RegionFilterSet(NestedGroupModelFilterSet, ContactModelFilterSet):
|
||||||
parent_id = django_filters.ModelMultipleChoiceFilter(
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=Region.objects.all(),
|
queryset=Region.objects.all(),
|
||||||
@ -114,6 +116,7 @@ class RegionFilterSet(NestedGroupModelFilterSet, ContactModelFilterSet):
|
|||||||
fields = ('id', 'name', 'slug', 'description')
|
fields = ('id', 'name', 'slug', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class SiteGroupFilterSet(NestedGroupModelFilterSet, ContactModelFilterSet):
|
class SiteGroupFilterSet(NestedGroupModelFilterSet, ContactModelFilterSet):
|
||||||
parent_id = django_filters.ModelMultipleChoiceFilter(
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=SiteGroup.objects.all(),
|
queryset=SiteGroup.objects.all(),
|
||||||
@ -144,6 +147,7 @@ class SiteGroupFilterSet(NestedGroupModelFilterSet, ContactModelFilterSet):
|
|||||||
fields = ('id', 'name', 'slug', 'description')
|
fields = ('id', 'name', 'slug', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class SiteFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
class SiteFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
||||||
status = django_filters.MultipleChoiceFilter(
|
status = django_filters.MultipleChoiceFilter(
|
||||||
choices=SiteStatusChoices,
|
choices=SiteStatusChoices,
|
||||||
@ -208,6 +212,7 @@ class SiteFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterS
|
|||||||
return queryset.filter(qs_filter).distinct()
|
return queryset.filter(qs_filter).distinct()
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class LocationFilterSet(TenancyFilterSet, ContactModelFilterSet, NestedGroupModelFilterSet):
|
class LocationFilterSet(TenancyFilterSet, ContactModelFilterSet, NestedGroupModelFilterSet):
|
||||||
region_id = TreeNodeMultipleChoiceFilter(
|
region_id = TreeNodeMultipleChoiceFilter(
|
||||||
queryset=Region.objects.all(),
|
queryset=Region.objects.all(),
|
||||||
@ -287,6 +292,7 @@ class LocationFilterSet(TenancyFilterSet, ContactModelFilterSet, NestedGroupMode
|
|||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class RackRoleFilterSet(OrganizationalModelFilterSet):
|
class RackRoleFilterSet(OrganizationalModelFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -294,6 +300,7 @@ class RackRoleFilterSet(OrganizationalModelFilterSet):
|
|||||||
fields = ('id', 'name', 'slug', 'color', 'description')
|
fields = ('id', 'name', 'slug', 'color', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class RackTypeFilterSet(PrimaryModelFilterSet):
|
class RackTypeFilterSet(PrimaryModelFilterSet):
|
||||||
manufacturer_id = django_filters.ModelMultipleChoiceFilter(
|
manufacturer_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=Manufacturer.objects.all(),
|
queryset=Manufacturer.objects.all(),
|
||||||
@ -332,6 +339,7 @@ class RackTypeFilterSet(PrimaryModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class RackFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
class RackFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
||||||
region_id = TreeNodeMultipleChoiceFilter(
|
region_id = TreeNodeMultipleChoiceFilter(
|
||||||
queryset=Region.objects.all(),
|
queryset=Region.objects.all(),
|
||||||
@ -448,6 +456,7 @@ class RackFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterS
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class RackReservationFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
class RackReservationFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
||||||
rack_id = django_filters.ModelMultipleChoiceFilter(
|
rack_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=Rack.objects.all(),
|
queryset=Rack.objects.all(),
|
||||||
@ -537,6 +546,7 @@ class RackReservationFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ManufacturerFilterSet(OrganizationalModelFilterSet, ContactModelFilterSet):
|
class ManufacturerFilterSet(OrganizationalModelFilterSet, ContactModelFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -544,6 +554,7 @@ class ManufacturerFilterSet(OrganizationalModelFilterSet, ContactModelFilterSet)
|
|||||||
fields = ('id', 'name', 'slug', 'description')
|
fields = ('id', 'name', 'slug', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class DeviceTypeFilterSet(PrimaryModelFilterSet):
|
class DeviceTypeFilterSet(PrimaryModelFilterSet):
|
||||||
manufacturer_id = django_filters.ModelMultipleChoiceFilter(
|
manufacturer_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=Manufacturer.objects.all(),
|
queryset=Manufacturer.objects.all(),
|
||||||
@ -687,6 +698,7 @@ class DeviceTypeFilterSet(PrimaryModelFilterSet):
|
|||||||
return queryset.exclude(inventoryitemtemplates__isnull=value)
|
return queryset.exclude(inventoryitemtemplates__isnull=value)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ModuleTypeProfileFilterSet(PrimaryModelFilterSet):
|
class ModuleTypeProfileFilterSet(PrimaryModelFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -703,6 +715,7 @@ class ModuleTypeProfileFilterSet(PrimaryModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ModuleTypeFilterSet(AttributeFiltersMixin, PrimaryModelFilterSet):
|
class ModuleTypeFilterSet(AttributeFiltersMixin, PrimaryModelFilterSet):
|
||||||
profile_id = django_filters.ModelMultipleChoiceFilter(
|
profile_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=ModuleTypeProfile.objects.all(),
|
queryset=ModuleTypeProfile.objects.all(),
|
||||||
@ -819,6 +832,7 @@ class ModularDeviceTypeComponentFilterSet(DeviceTypeComponentFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ConsolePortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
class ConsolePortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -826,6 +840,7 @@ class ConsolePortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceType
|
|||||||
fields = ('id', 'name', 'label', 'type', 'description')
|
fields = ('id', 'name', 'label', 'type', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ConsoleServerPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
class ConsoleServerPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -833,6 +848,7 @@ class ConsoleServerPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDevi
|
|||||||
fields = ('id', 'name', 'label', 'type', 'description')
|
fields = ('id', 'name', 'label', 'type', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class PowerPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
class PowerPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -840,6 +856,7 @@ class PowerPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeCo
|
|||||||
fields = ('id', 'name', 'label', 'type', 'maximum_draw', 'allocated_draw', 'description')
|
fields = ('id', 'name', 'label', 'type', 'maximum_draw', 'allocated_draw', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class PowerOutletTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
class PowerOutletTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
||||||
feed_leg = django_filters.MultipleChoiceFilter(
|
feed_leg = django_filters.MultipleChoiceFilter(
|
||||||
choices=PowerOutletFeedLegChoices,
|
choices=PowerOutletFeedLegChoices,
|
||||||
@ -855,6 +872,7 @@ class PowerOutletTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceType
|
|||||||
fields = ('id', 'name', 'label', 'type', 'color', 'feed_leg', 'description')
|
fields = ('id', 'name', 'label', 'type', 'color', 'feed_leg', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class InterfaceTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
class InterfaceTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
||||||
type = django_filters.MultipleChoiceFilter(
|
type = django_filters.MultipleChoiceFilter(
|
||||||
choices=InterfaceTypeChoices,
|
choices=InterfaceTypeChoices,
|
||||||
@ -879,6 +897,7 @@ class InterfaceTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeCo
|
|||||||
fields = ('id', 'name', 'label', 'type', 'enabled', 'mgmt_only', 'description')
|
fields = ('id', 'name', 'label', 'type', 'enabled', 'mgmt_only', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class FrontPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
class FrontPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
||||||
type = django_filters.MultipleChoiceFilter(
|
type = django_filters.MultipleChoiceFilter(
|
||||||
choices=PortTypeChoices,
|
choices=PortTypeChoices,
|
||||||
@ -893,6 +912,7 @@ class FrontPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeCo
|
|||||||
fields = ('id', 'name', 'label', 'type', 'color', 'rear_port_position', 'description')
|
fields = ('id', 'name', 'label', 'type', 'color', 'rear_port_position', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class RearPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
class RearPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
||||||
type = django_filters.MultipleChoiceFilter(
|
type = django_filters.MultipleChoiceFilter(
|
||||||
choices=PortTypeChoices,
|
choices=PortTypeChoices,
|
||||||
@ -904,6 +924,7 @@ class RearPortTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeCom
|
|||||||
fields = ('id', 'name', 'label', 'type', 'color', 'positions', 'description')
|
fields = ('id', 'name', 'label', 'type', 'color', 'positions', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ModuleBayTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
class ModuleBayTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeComponentFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -911,6 +932,7 @@ class ModuleBayTemplateFilterSet(ChangeLoggedModelFilterSet, ModularDeviceTypeCo
|
|||||||
fields = ('id', 'name', 'label', 'position', 'description')
|
fields = ('id', 'name', 'label', 'position', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class DeviceBayTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeComponentFilterSet):
|
class DeviceBayTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeComponentFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -918,6 +940,7 @@ class DeviceBayTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeComponent
|
|||||||
fields = ('id', 'name', 'label', 'description')
|
fields = ('id', 'name', 'label', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class InventoryItemTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeComponentFilterSet):
|
class InventoryItemTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeComponentFilterSet):
|
||||||
parent_id = django_filters.ModelMultipleChoiceFilter(
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=InventoryItemTemplate.objects.all(),
|
queryset=InventoryItemTemplate.objects.all(),
|
||||||
@ -961,6 +984,7 @@ class InventoryItemTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeCompo
|
|||||||
return queryset.filter(qs_filter)
|
return queryset.filter(qs_filter)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class DeviceRoleFilterSet(NestedGroupModelFilterSet):
|
class DeviceRoleFilterSet(NestedGroupModelFilterSet):
|
||||||
config_template_id = django_filters.ModelMultipleChoiceFilter(
|
config_template_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=ConfigTemplate.objects.all(),
|
queryset=ConfigTemplate.objects.all(),
|
||||||
@ -995,6 +1019,7 @@ class DeviceRoleFilterSet(NestedGroupModelFilterSet):
|
|||||||
fields = ('id', 'name', 'slug', 'color', 'vm_role', 'description')
|
fields = ('id', 'name', 'slug', 'color', 'vm_role', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class PlatformFilterSet(NestedGroupModelFilterSet):
|
class PlatformFilterSet(NestedGroupModelFilterSet):
|
||||||
parent_id = django_filters.ModelMultipleChoiceFilter(
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=Platform.objects.all(),
|
queryset=Platform.objects.all(),
|
||||||
@ -1052,6 +1077,7 @@ class PlatformFilterSet(NestedGroupModelFilterSet):
|
|||||||
return queryset.filter(Q(manufacturer=None) | Q(manufacturer__device_types=value))
|
return queryset.filter(Q(manufacturer=None) | Q(manufacturer__device_types=value))
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class DeviceFilterSet(
|
class DeviceFilterSet(
|
||||||
PrimaryModelFilterSet,
|
PrimaryModelFilterSet,
|
||||||
TenancyFilterSet,
|
TenancyFilterSet,
|
||||||
@ -1354,6 +1380,7 @@ class DeviceFilterSet(
|
|||||||
return queryset.exclude(params)
|
return queryset.exclude(params)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class VirtualDeviceContextFilterSet(PrimaryModelFilterSet, TenancyFilterSet, PrimaryIPFilterSet):
|
class VirtualDeviceContextFilterSet(PrimaryModelFilterSet, TenancyFilterSet, PrimaryIPFilterSet):
|
||||||
device_id = django_filters.ModelMultipleChoiceFilter(
|
device_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='device',
|
field_name='device',
|
||||||
@ -1403,6 +1430,7 @@ class VirtualDeviceContextFilterSet(PrimaryModelFilterSet, TenancyFilterSet, Pri
|
|||||||
return queryset.exclude(params)
|
return queryset.exclude(params)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ModuleFilterSet(PrimaryModelFilterSet):
|
class ModuleFilterSet(PrimaryModelFilterSet):
|
||||||
manufacturer_id = django_filters.ModelMultipleChoiceFilter(
|
manufacturer_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='module_type__manufacturer',
|
field_name='module_type__manufacturer',
|
||||||
@ -1691,6 +1719,7 @@ class PathEndpointFilterSet(django_filters.FilterSet):
|
|||||||
return queryset.filter(Q(_path__isnull=True) | Q(_path__is_active=False))
|
return queryset.filter(Q(_path__isnull=True) | Q(_path__is_active=False))
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ConsolePortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet, PathEndpointFilterSet):
|
class ConsolePortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet, PathEndpointFilterSet):
|
||||||
type = django_filters.MultipleChoiceFilter(
|
type = django_filters.MultipleChoiceFilter(
|
||||||
choices=ConsolePortTypeChoices,
|
choices=ConsolePortTypeChoices,
|
||||||
@ -1702,6 +1731,7 @@ class ConsolePortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSe
|
|||||||
fields = ('id', 'name', 'label', 'speed', 'description', 'mark_connected', 'cable_end', 'cable_position')
|
fields = ('id', 'name', 'label', 'speed', 'description', 'mark_connected', 'cable_end', 'cable_position')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ConsoleServerPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet, PathEndpointFilterSet):
|
class ConsoleServerPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet, PathEndpointFilterSet):
|
||||||
type = django_filters.MultipleChoiceFilter(
|
type = django_filters.MultipleChoiceFilter(
|
||||||
choices=ConsolePortTypeChoices,
|
choices=ConsolePortTypeChoices,
|
||||||
@ -1713,6 +1743,7 @@ class ConsoleServerPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFi
|
|||||||
fields = ('id', 'name', 'label', 'speed', 'description', 'mark_connected', 'cable_end', 'cable_position')
|
fields = ('id', 'name', 'label', 'speed', 'description', 'mark_connected', 'cable_end', 'cable_position')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class PowerPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet, PathEndpointFilterSet):
|
class PowerPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet, PathEndpointFilterSet):
|
||||||
type = django_filters.MultipleChoiceFilter(
|
type = django_filters.MultipleChoiceFilter(
|
||||||
choices=PowerPortTypeChoices,
|
choices=PowerPortTypeChoices,
|
||||||
@ -1727,6 +1758,7 @@ class PowerPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet,
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class PowerOutletFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet, PathEndpointFilterSet):
|
class PowerOutletFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet, PathEndpointFilterSet):
|
||||||
type = django_filters.MultipleChoiceFilter(
|
type = django_filters.MultipleChoiceFilter(
|
||||||
choices=PowerOutletTypeChoices,
|
choices=PowerOutletTypeChoices,
|
||||||
@ -1753,6 +1785,7 @@ class PowerOutletFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSe
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class MACAddressFilterSet(PrimaryModelFilterSet):
|
class MACAddressFilterSet(PrimaryModelFilterSet):
|
||||||
mac_address = MultiValueMACAddressFilter()
|
mac_address = MultiValueMACAddressFilter()
|
||||||
assigned_object_type = ContentTypeFilter()
|
assigned_object_type = ContentTypeFilter()
|
||||||
@ -1934,6 +1967,7 @@ class CommonInterfaceFilterSet(django_filters.FilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class InterfaceFilterSet(
|
class InterfaceFilterSet(
|
||||||
ModularDeviceComponentFilterSet,
|
ModularDeviceComponentFilterSet,
|
||||||
CabledObjectFilterSet,
|
CabledObjectFilterSet,
|
||||||
@ -2096,6 +2130,7 @@ class InterfaceFilterSet(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class FrontPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet):
|
class FrontPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet):
|
||||||
type = django_filters.MultipleChoiceFilter(
|
type = django_filters.MultipleChoiceFilter(
|
||||||
choices=PortTypeChoices,
|
choices=PortTypeChoices,
|
||||||
@ -2113,6 +2148,7 @@ class FrontPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet)
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class RearPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet):
|
class RearPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet):
|
||||||
type = django_filters.MultipleChoiceFilter(
|
type = django_filters.MultipleChoiceFilter(
|
||||||
choices=PortTypeChoices,
|
choices=PortTypeChoices,
|
||||||
@ -2127,6 +2163,7 @@ class RearPortFilterSet(ModularDeviceComponentFilterSet, CabledObjectFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ModuleBayFilterSet(ModularDeviceComponentFilterSet):
|
class ModuleBayFilterSet(ModularDeviceComponentFilterSet):
|
||||||
parent_id = django_filters.ModelMultipleChoiceFilter(
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=ModuleBay.objects.all(),
|
queryset=ModuleBay.objects.all(),
|
||||||
@ -2143,6 +2180,7 @@ class ModuleBayFilterSet(ModularDeviceComponentFilterSet):
|
|||||||
fields = ('id', 'name', 'label', 'position', 'description')
|
fields = ('id', 'name', 'label', 'position', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class DeviceBayFilterSet(DeviceComponentFilterSet):
|
class DeviceBayFilterSet(DeviceComponentFilterSet):
|
||||||
installed_device_id = django_filters.ModelMultipleChoiceFilter(
|
installed_device_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=Device.objects.all(),
|
queryset=Device.objects.all(),
|
||||||
@ -2160,6 +2198,7 @@ class DeviceBayFilterSet(DeviceComponentFilterSet):
|
|||||||
fields = ('id', 'name', 'label', 'description')
|
fields = ('id', 'name', 'label', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class InventoryItemFilterSet(DeviceComponentFilterSet):
|
class InventoryItemFilterSet(DeviceComponentFilterSet):
|
||||||
parent_id = django_filters.ModelMultipleChoiceFilter(
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=InventoryItem.objects.all(),
|
queryset=InventoryItem.objects.all(),
|
||||||
@ -2212,6 +2251,7 @@ class InventoryItemFilterSet(DeviceComponentFilterSet):
|
|||||||
return queryset.filter(qs_filter)
|
return queryset.filter(qs_filter)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class InventoryItemRoleFilterSet(OrganizationalModelFilterSet):
|
class InventoryItemRoleFilterSet(OrganizationalModelFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -2219,6 +2259,7 @@ class InventoryItemRoleFilterSet(OrganizationalModelFilterSet):
|
|||||||
fields = ('id', 'name', 'slug', 'color', 'description')
|
fields = ('id', 'name', 'slug', 'color', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class VirtualChassisFilterSet(PrimaryModelFilterSet):
|
class VirtualChassisFilterSet(PrimaryModelFilterSet):
|
||||||
master_id = django_filters.ModelMultipleChoiceFilter(
|
master_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=Device.objects.all(),
|
queryset=Device.objects.all(),
|
||||||
@ -2295,6 +2336,7 @@ class VirtualChassisFilterSet(PrimaryModelFilterSet):
|
|||||||
return queryset.filter(qs_filter).distinct()
|
return queryset.filter(qs_filter).distinct()
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class CableFilterSet(TenancyFilterSet, PrimaryModelFilterSet):
|
class CableFilterSet(TenancyFilterSet, PrimaryModelFilterSet):
|
||||||
termination_a_type = ContentTypeFilter(
|
termination_a_type = ContentTypeFilter(
|
||||||
field_name='terminations__termination_type'
|
field_name='terminations__termination_type'
|
||||||
@ -2467,6 +2509,7 @@ class CableFilterSet(TenancyFilterSet, PrimaryModelFilterSet):
|
|||||||
return self.filter_by_termination_object(queryset, CircuitTermination, value)
|
return self.filter_by_termination_object(queryset, CircuitTermination, value)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class CableTerminationFilterSet(ChangeLoggedModelFilterSet):
|
class CableTerminationFilterSet(ChangeLoggedModelFilterSet):
|
||||||
termination_type = ContentTypeFilter()
|
termination_type = ContentTypeFilter()
|
||||||
|
|
||||||
@ -2475,6 +2518,7 @@ class CableTerminationFilterSet(ChangeLoggedModelFilterSet):
|
|||||||
fields = ('id', 'cable', 'cable_end', 'position', 'termination_type', 'termination_id')
|
fields = ('id', 'cable', 'cable_end', 'position', 'termination_type', 'termination_id')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class PowerPanelFilterSet(PrimaryModelFilterSet, ContactModelFilterSet):
|
class PowerPanelFilterSet(PrimaryModelFilterSet, ContactModelFilterSet):
|
||||||
region_id = TreeNodeMultipleChoiceFilter(
|
region_id = TreeNodeMultipleChoiceFilter(
|
||||||
queryset=Region.objects.all(),
|
queryset=Region.objects.all(),
|
||||||
@ -2533,6 +2577,7 @@ class PowerPanelFilterSet(PrimaryModelFilterSet, ContactModelFilterSet):
|
|||||||
return queryset.filter(qs_filter)
|
return queryset.filter(qs_filter)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class PowerFeedFilterSet(PrimaryModelFilterSet, CabledObjectFilterSet, PathEndpointFilterSet, TenancyFilterSet):
|
class PowerFeedFilterSet(PrimaryModelFilterSet, CabledObjectFilterSet, PathEndpointFilterSet, TenancyFilterSet):
|
||||||
region_id = TreeNodeMultipleChoiceFilter(
|
region_id = TreeNodeMultipleChoiceFilter(
|
||||||
queryset=Region.objects.all(),
|
queryset=Region.objects.all(),
|
||||||
@ -2645,6 +2690,7 @@ class ConnectionFilterSet(BaseFilterSet):
|
|||||||
return queryset.filter(qs_filter)
|
return queryset.filter(qs_filter)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ConsoleConnectionFilterSet(ConnectionFilterSet):
|
class ConsoleConnectionFilterSet(ConnectionFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -2652,6 +2698,7 @@ class ConsoleConnectionFilterSet(ConnectionFilterSet):
|
|||||||
fields = ('name',)
|
fields = ('name',)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class PowerConnectionFilterSet(ConnectionFilterSet):
|
class PowerConnectionFilterSet(ConnectionFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -2659,6 +2706,7 @@ class PowerConnectionFilterSet(ConnectionFilterSet):
|
|||||||
fields = ('name',)
|
fields = ('name',)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class InterfaceConnectionFilterSet(ConnectionFilterSet):
|
class InterfaceConnectionFilterSet(ConnectionFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|||||||
@ -15,7 +15,7 @@ from netbox.forms import (
|
|||||||
)
|
)
|
||||||
from tenancy.forms import ContactModelFilterForm, TenancyFilterForm
|
from tenancy.forms import ContactModelFilterForm, TenancyFilterForm
|
||||||
from users.models import Owner, User
|
from users.models import Owner, User
|
||||||
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm, add_blank_choice, register_filterset
|
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm, add_blank_choice
|
||||||
from utilities.forms.fields import ColorField, DynamicModelChoiceField, DynamicModelMultipleChoiceField, TagFilterField
|
from utilities.forms.fields import ColorField, DynamicModelChoiceField, DynamicModelMultipleChoiceField, TagFilterField
|
||||||
from utilities.forms.rendering import FieldSet
|
from utilities.forms.rendering import FieldSet
|
||||||
from utilities.forms.widgets import NumberWithOptions
|
from utilities.forms.widgets import NumberWithOptions
|
||||||
@ -148,7 +148,6 @@ class DeviceComponentFilterForm(NetBoxModelFilterSetForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(RegionFilterSet)
|
|
||||||
class RegionFilterForm(ContactModelFilterForm, NestedGroupModelFilterSetForm):
|
class RegionFilterForm(ContactModelFilterForm, NestedGroupModelFilterSetForm):
|
||||||
model = Region
|
model = Region
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -164,7 +163,6 @@ class RegionFilterForm(ContactModelFilterForm, NestedGroupModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(SiteGroupFilterSet)
|
|
||||||
class SiteGroupFilterForm(ContactModelFilterForm, NestedGroupModelFilterSetForm):
|
class SiteGroupFilterForm(ContactModelFilterForm, NestedGroupModelFilterSetForm):
|
||||||
model = SiteGroup
|
model = SiteGroup
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -180,7 +178,6 @@ class SiteGroupFilterForm(ContactModelFilterForm, NestedGroupModelFilterSetForm)
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(SiteFilterSet)
|
|
||||||
class SiteFilterForm(TenancyFilterForm, ContactModelFilterForm, PrimaryModelFilterSetForm):
|
class SiteFilterForm(TenancyFilterForm, ContactModelFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = Site
|
model = Site
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -213,7 +210,6 @@ class SiteFilterForm(TenancyFilterForm, ContactModelFilterForm, PrimaryModelFilt
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(LocationFilterSet)
|
|
||||||
class LocationFilterForm(TenancyFilterForm, ContactModelFilterForm, NestedGroupModelFilterSetForm):
|
class LocationFilterForm(TenancyFilterForm, ContactModelFilterForm, NestedGroupModelFilterSetForm):
|
||||||
model = Location
|
model = Location
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -262,7 +258,6 @@ class LocationFilterForm(TenancyFilterForm, ContactModelFilterForm, NestedGroupM
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(RackRoleFilterSet)
|
|
||||||
class RackRoleFilterForm(OrganizationalModelFilterSetForm):
|
class RackRoleFilterForm(OrganizationalModelFilterSetForm):
|
||||||
model = RackRole
|
model = RackRole
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -314,7 +309,6 @@ class RackBaseFilterForm(PrimaryModelFilterSetForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(RackTypeFilterSet)
|
|
||||||
class RackTypeFilterForm(RackBaseFilterForm):
|
class RackTypeFilterForm(RackBaseFilterForm):
|
||||||
model = RackType
|
model = RackType
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -337,7 +331,6 @@ class RackTypeFilterForm(RackBaseFilterForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(RackFilterSet)
|
|
||||||
class RackFilterForm(TenancyFilterForm, ContactModelFilterForm, RackBaseFilterForm):
|
class RackFilterForm(TenancyFilterForm, ContactModelFilterForm, RackBaseFilterForm):
|
||||||
model = Rack
|
model = Rack
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -439,7 +432,6 @@ class RackElevationFilterForm(RackFilterForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(RackReservationFilterSet)
|
|
||||||
class RackReservationFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
class RackReservationFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = RackReservation
|
model = RackReservation
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -498,7 +490,6 @@ class RackReservationFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ManufacturerFilterSet)
|
|
||||||
class ManufacturerFilterForm(ContactModelFilterForm, OrganizationalModelFilterSetForm):
|
class ManufacturerFilterForm(ContactModelFilterForm, OrganizationalModelFilterSetForm):
|
||||||
model = Manufacturer
|
model = Manufacturer
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -508,7 +499,6 @@ class ManufacturerFilterForm(ContactModelFilterForm, OrganizationalModelFilterSe
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(DeviceTypeFilterSet)
|
|
||||||
class DeviceTypeFilterForm(PrimaryModelFilterSetForm):
|
class DeviceTypeFilterForm(PrimaryModelFilterSetForm):
|
||||||
model = DeviceType
|
model = DeviceType
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -643,7 +633,6 @@ class DeviceTypeFilterForm(PrimaryModelFilterSetForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ModuleTypeProfileFilterSet)
|
|
||||||
class ModuleTypeProfileFilterForm(PrimaryModelFilterSetForm):
|
class ModuleTypeProfileFilterForm(PrimaryModelFilterSetForm):
|
||||||
model = ModuleTypeProfile
|
model = ModuleTypeProfile
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -653,7 +642,6 @@ class ModuleTypeProfileFilterForm(PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ModuleTypeFilterSet)
|
|
||||||
class ModuleTypeFilterForm(PrimaryModelFilterSetForm):
|
class ModuleTypeFilterForm(PrimaryModelFilterSetForm):
|
||||||
model = ModuleType
|
model = ModuleType
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -747,7 +735,6 @@ class ModuleTypeFilterForm(PrimaryModelFilterSetForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(DeviceRoleFilterSet)
|
|
||||||
class DeviceRoleFilterForm(NestedGroupModelFilterSetForm):
|
class DeviceRoleFilterForm(NestedGroupModelFilterSetForm):
|
||||||
model = DeviceRole
|
model = DeviceRole
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -767,7 +754,6 @@ class DeviceRoleFilterForm(NestedGroupModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(PlatformFilterSet)
|
|
||||||
class PlatformFilterForm(NestedGroupModelFilterSetForm):
|
class PlatformFilterForm(NestedGroupModelFilterSetForm):
|
||||||
model = Platform
|
model = Platform
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -793,7 +779,6 @@ class PlatformFilterForm(NestedGroupModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(DeviceFilterSet)
|
|
||||||
class DeviceFilterForm(
|
class DeviceFilterForm(
|
||||||
LocalConfigContextFilterForm,
|
LocalConfigContextFilterForm,
|
||||||
TenancyFilterForm,
|
TenancyFilterForm,
|
||||||
@ -992,7 +977,6 @@ class DeviceFilterForm(
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(VirtualDeviceContextFilterSet)
|
|
||||||
class VirtualDeviceContextFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
class VirtualDeviceContextFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = VirtualDeviceContext
|
model = VirtualDeviceContext
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -1020,7 +1004,6 @@ class VirtualDeviceContextFilterForm(TenancyFilterForm, PrimaryModelFilterSetFor
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ModuleFilterSet)
|
|
||||||
class ModuleFilterForm(LocalConfigContextFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
class ModuleFilterForm(LocalConfigContextFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = Module
|
model = Module
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -1104,7 +1087,6 @@ class ModuleFilterForm(LocalConfigContextFilterForm, TenancyFilterForm, PrimaryM
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(VirtualChassisFilterSet)
|
|
||||||
class VirtualChassisFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
class VirtualChassisFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = VirtualChassis
|
model = VirtualChassis
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -1134,7 +1116,6 @@ class VirtualChassisFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(CableFilterSet)
|
|
||||||
class CableFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
class CableFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = Cable
|
model = Cable
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -1224,7 +1205,6 @@ class CableFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(PowerPanelFilterSet)
|
|
||||||
class PowerPanelFilterForm(ContactModelFilterForm, PrimaryModelFilterSetForm):
|
class PowerPanelFilterForm(ContactModelFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = PowerPanel
|
model = PowerPanel
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -1264,7 +1244,6 @@ class PowerPanelFilterForm(ContactModelFilterForm, PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(PowerFeedFilterSet)
|
|
||||||
class PowerFeedFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
class PowerFeedFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = PowerFeed
|
model = PowerFeed
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -1375,7 +1354,6 @@ class PathEndpointFilterForm(CabledFilterForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ConsolePortFilterSet)
|
|
||||||
class ConsolePortFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
class ConsolePortFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
||||||
model = ConsolePort
|
model = ConsolePort
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -1400,7 +1378,6 @@ class ConsolePortFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ConsoleServerPortFilterSet)
|
|
||||||
class ConsoleServerPortFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
class ConsoleServerPortFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
||||||
model = ConsoleServerPort
|
model = ConsoleServerPort
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -1426,7 +1403,6 @@ class ConsoleServerPortFilterForm(PathEndpointFilterForm, DeviceComponentFilterF
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(PowerPortFilterSet)
|
|
||||||
class PowerPortFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
class PowerPortFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
||||||
model = PowerPort
|
model = PowerPort
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -1446,7 +1422,6 @@ class PowerPortFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(PowerOutletFilterSet)
|
|
||||||
class PowerOutletFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
class PowerOutletFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
||||||
model = PowerOutlet
|
model = PowerOutlet
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -1476,7 +1451,6 @@ class PowerOutletFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(InterfaceFilterSet)
|
|
||||||
class InterfaceFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
class InterfaceFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
||||||
model = Interface
|
model = Interface
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -1603,7 +1577,6 @@ class InterfaceFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(FrontPortFilterSet)
|
|
||||||
class FrontPortFilterForm(CabledFilterForm, DeviceComponentFilterForm):
|
class FrontPortFilterForm(CabledFilterForm, DeviceComponentFilterForm):
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
||||||
@ -1627,7 +1600,6 @@ class FrontPortFilterForm(CabledFilterForm, DeviceComponentFilterForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(RearPortFilterSet)
|
|
||||||
class RearPortFilterForm(CabledFilterForm, DeviceComponentFilterForm):
|
class RearPortFilterForm(CabledFilterForm, DeviceComponentFilterForm):
|
||||||
model = RearPort
|
model = RearPort
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -1652,7 +1624,6 @@ class RearPortFilterForm(CabledFilterForm, DeviceComponentFilterForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ModuleBayFilterSet)
|
|
||||||
class ModuleBayFilterForm(DeviceComponentFilterForm):
|
class ModuleBayFilterForm(DeviceComponentFilterForm):
|
||||||
model = ModuleBay
|
model = ModuleBay
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -1671,7 +1642,6 @@ class ModuleBayFilterForm(DeviceComponentFilterForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(DeviceBayFilterSet)
|
|
||||||
class DeviceBayFilterForm(DeviceComponentFilterForm):
|
class DeviceBayFilterForm(DeviceComponentFilterForm):
|
||||||
model = DeviceBay
|
model = DeviceBay
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -1686,7 +1656,6 @@ class DeviceBayFilterForm(DeviceComponentFilterForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(InventoryItemFilterSet)
|
|
||||||
class InventoryItemFilterForm(DeviceComponentFilterForm):
|
class InventoryItemFilterForm(DeviceComponentFilterForm):
|
||||||
model = InventoryItem
|
model = InventoryItem
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -1738,7 +1707,6 @@ class InventoryItemFilterForm(DeviceComponentFilterForm):
|
|||||||
# Device component roles
|
# Device component roles
|
||||||
#
|
#
|
||||||
|
|
||||||
@register_filterset(InventoryItemRoleFilterSet)
|
|
||||||
class InventoryItemRoleFilterForm(OrganizationalModelFilterSetForm):
|
class InventoryItemRoleFilterForm(OrganizationalModelFilterSetForm):
|
||||||
model = InventoryItemRole
|
model = InventoryItemRole
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -1751,7 +1719,6 @@ class InventoryItemRoleFilterForm(OrganizationalModelFilterSetForm):
|
|||||||
# Addressing
|
# Addressing
|
||||||
#
|
#
|
||||||
|
|
||||||
@register_filterset(MACAddressFilterSet)
|
|
||||||
class MACAddressFilterForm(PrimaryModelFilterSetForm):
|
class MACAddressFilterForm(PrimaryModelFilterSetForm):
|
||||||
model = MACAddress
|
model = MACAddress
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
|
|||||||
@ -12,6 +12,7 @@ from users.models import Group, User
|
|||||||
from utilities.filters import (
|
from utilities.filters import (
|
||||||
ContentTypeFilter, MultiValueCharFilter, MultiValueNumberFilter
|
ContentTypeFilter, MultiValueCharFilter, MultiValueNumberFilter
|
||||||
)
|
)
|
||||||
|
from utilities.filtersets import register_filterset
|
||||||
from virtualization.models import Cluster, ClusterGroup, ClusterType
|
from virtualization.models import Cluster, ClusterGroup, ClusterType
|
||||||
from .choices import *
|
from .choices import *
|
||||||
from .filters import TagFilter, TagIDFilter
|
from .filters import TagFilter, TagIDFilter
|
||||||
@ -40,6 +41,7 @@ __all__ = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ScriptFilterSet(BaseFilterSet):
|
class ScriptFilterSet(BaseFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -62,6 +64,7 @@ class ScriptFilterSet(BaseFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class WebhookFilterSet(OwnerFilterMixin, NetBoxModelFilterSet):
|
class WebhookFilterSet(OwnerFilterMixin, NetBoxModelFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -91,6 +94,7 @@ class WebhookFilterSet(OwnerFilterMixin, NetBoxModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class EventRuleFilterSet(OwnerFilterMixin, NetBoxModelFilterSet):
|
class EventRuleFilterSet(OwnerFilterMixin, NetBoxModelFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -131,6 +135,7 @@ class EventRuleFilterSet(OwnerFilterMixin, NetBoxModelFilterSet):
|
|||||||
return queryset.filter(event_types__overlap=value)
|
return queryset.filter(event_types__overlap=value)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class CustomFieldFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
class CustomFieldFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -180,6 +185,7 @@ class CustomFieldFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class CustomFieldChoiceSetFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
class CustomFieldChoiceSetFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -208,6 +214,7 @@ class CustomFieldChoiceSetFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet
|
|||||||
return queryset.filter(extra_choices__overlap=value)
|
return queryset.filter(extra_choices__overlap=value)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class CustomLinkFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
class CustomLinkFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -238,6 +245,7 @@ class CustomLinkFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ExportTemplateFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
class ExportTemplateFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -276,6 +284,7 @@ class ExportTemplateFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class SavedFilterFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
class SavedFilterFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -328,6 +337,7 @@ class SavedFilterFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
|||||||
return queryset.filter(Q(enabled=False) | Q(Q(shared=False) & ~Q(user=user)))
|
return queryset.filter(Q(enabled=False) | Q(Q(shared=False) & ~Q(user=user)))
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class TableConfigFilterSet(ChangeLoggedModelFilterSet):
|
class TableConfigFilterSet(ChangeLoggedModelFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -381,6 +391,7 @@ class TableConfigFilterSet(ChangeLoggedModelFilterSet):
|
|||||||
return queryset.filter(Q(enabled=False) | Q(Q(shared=False) & ~Q(user=user)))
|
return queryset.filter(Q(enabled=False) | Q(Q(shared=False) & ~Q(user=user)))
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class BookmarkFilterSet(BaseFilterSet):
|
class BookmarkFilterSet(BaseFilterSet):
|
||||||
created = django_filters.DateTimeFilter()
|
created = django_filters.DateTimeFilter()
|
||||||
object_type_id = MultiValueNumberFilter()
|
object_type_id = MultiValueNumberFilter()
|
||||||
@ -401,6 +412,7 @@ class BookmarkFilterSet(BaseFilterSet):
|
|||||||
fields = ('id', 'object_id')
|
fields = ('id', 'object_id')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class NotificationGroupFilterSet(ChangeLoggedModelFilterSet):
|
class NotificationGroupFilterSet(ChangeLoggedModelFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -444,6 +456,7 @@ class NotificationGroupFilterSet(ChangeLoggedModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ImageAttachmentFilterSet(ChangeLoggedModelFilterSet):
|
class ImageAttachmentFilterSet(ChangeLoggedModelFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -465,6 +478,7 @@ class ImageAttachmentFilterSet(ChangeLoggedModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class JournalEntryFilterSet(NetBoxModelFilterSet):
|
class JournalEntryFilterSet(NetBoxModelFilterSet):
|
||||||
created = django_filters.DateTimeFromToRangeFilter()
|
created = django_filters.DateTimeFromToRangeFilter()
|
||||||
assigned_object_type = ContentTypeFilter()
|
assigned_object_type = ContentTypeFilter()
|
||||||
@ -495,6 +509,7 @@ class JournalEntryFilterSet(NetBoxModelFilterSet):
|
|||||||
return queryset.filter(comments__icontains=value)
|
return queryset.filter(comments__icontains=value)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class TagFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
class TagFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -555,6 +570,7 @@ class TagFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class TaggedItemFilterSet(BaseFilterSet):
|
class TaggedItemFilterSet(BaseFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -590,6 +606,7 @@ class TaggedItemFilterSet(BaseFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ConfigContextProfileFilterSet(PrimaryModelFilterSet):
|
class ConfigContextProfileFilterSet(PrimaryModelFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -620,6 +637,7 @@ class ConfigContextProfileFilterSet(PrimaryModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ConfigContextFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
class ConfigContextFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -789,6 +807,7 @@ class ConfigContextFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ConfigTemplateFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
class ConfigTemplateFilterSet(OwnerFilterMixin, ChangeLoggedModelFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
|
|||||||
@ -10,7 +10,7 @@ from netbox.forms import NetBoxModelFilterSetForm, PrimaryModelFilterSetForm
|
|||||||
from netbox.forms.mixins import SavedFiltersMixin
|
from netbox.forms.mixins import SavedFiltersMixin
|
||||||
from tenancy.models import Tenant, TenantGroup
|
from tenancy.models import Tenant, TenantGroup
|
||||||
from users.models import Group, Owner, User
|
from users.models import Group, Owner, User
|
||||||
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm, add_blank_choice, register_filterset
|
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm, add_blank_choice
|
||||||
from utilities.forms.fields import (
|
from utilities.forms.fields import (
|
||||||
ContentTypeChoiceField, ContentTypeMultipleChoiceField, DynamicModelChoiceField, DynamicModelMultipleChoiceField,
|
ContentTypeChoiceField, ContentTypeMultipleChoiceField, DynamicModelChoiceField, DynamicModelMultipleChoiceField,
|
||||||
TagFilterField,
|
TagFilterField,
|
||||||
@ -40,7 +40,6 @@ __all__ = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(CustomFieldFilterSet)
|
|
||||||
class CustomFieldFilterForm(SavedFiltersMixin, FilterForm):
|
class CustomFieldFilterForm(SavedFiltersMixin, FilterForm):
|
||||||
model = CustomField
|
model = CustomField
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -128,7 +127,6 @@ class CustomFieldFilterForm(SavedFiltersMixin, FilterForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(CustomFieldChoiceSetFilterSet)
|
|
||||||
class CustomFieldChoiceSetFilterForm(SavedFiltersMixin, FilterForm):
|
class CustomFieldChoiceSetFilterForm(SavedFiltersMixin, FilterForm):
|
||||||
model = CustomFieldChoiceSet
|
model = CustomFieldChoiceSet
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -149,7 +147,6 @@ class CustomFieldChoiceSetFilterForm(SavedFiltersMixin, FilterForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(CustomLinkFilterSet)
|
|
||||||
class CustomLinkFilterForm(SavedFiltersMixin, FilterForm):
|
class CustomLinkFilterForm(SavedFiltersMixin, FilterForm):
|
||||||
model = CustomLink
|
model = CustomLink
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -186,7 +183,6 @@ class CustomLinkFilterForm(SavedFiltersMixin, FilterForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ExportTemplateFilterSet)
|
|
||||||
class ExportTemplateFilterForm(SavedFiltersMixin, FilterForm):
|
class ExportTemplateFilterForm(SavedFiltersMixin, FilterForm):
|
||||||
model = ExportTemplate
|
model = ExportTemplate
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -238,7 +234,6 @@ class ExportTemplateFilterForm(SavedFiltersMixin, FilterForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ImageAttachmentFilterSet)
|
|
||||||
class ImageAttachmentFilterForm(SavedFiltersMixin, FilterForm):
|
class ImageAttachmentFilterForm(SavedFiltersMixin, FilterForm):
|
||||||
model = ImageAttachment
|
model = ImageAttachment
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -256,7 +251,6 @@ class ImageAttachmentFilterForm(SavedFiltersMixin, FilterForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(SavedFilterFilterSet)
|
|
||||||
class SavedFilterFilterForm(SavedFiltersMixin, FilterForm):
|
class SavedFilterFilterForm(SavedFiltersMixin, FilterForm):
|
||||||
model = SavedFilter
|
model = SavedFilter
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -293,7 +287,6 @@ class SavedFilterFilterForm(SavedFiltersMixin, FilterForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(TableConfigFilterSet)
|
|
||||||
class TableConfigFilterForm(SavedFiltersMixin, FilterForm):
|
class TableConfigFilterForm(SavedFiltersMixin, FilterForm):
|
||||||
model = TableConfig
|
model = TableConfig
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -325,7 +318,6 @@ class TableConfigFilterForm(SavedFiltersMixin, FilterForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(WebhookFilterSet)
|
|
||||||
class WebhookFilterForm(NetBoxModelFilterSetForm):
|
class WebhookFilterForm(NetBoxModelFilterSetForm):
|
||||||
model = Webhook
|
model = Webhook
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -353,7 +345,6 @@ class WebhookFilterForm(NetBoxModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(EventRuleFilterSet)
|
|
||||||
class EventRuleFilterForm(NetBoxModelFilterSetForm):
|
class EventRuleFilterForm(NetBoxModelFilterSetForm):
|
||||||
model = EventRule
|
model = EventRule
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -390,7 +381,6 @@ class EventRuleFilterForm(NetBoxModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(TagFilterSet)
|
|
||||||
class TagFilterForm(SavedFiltersMixin, FilterForm):
|
class TagFilterForm(SavedFiltersMixin, FilterForm):
|
||||||
model = Tag
|
model = Tag
|
||||||
content_type_id = ContentTypeMultipleChoiceField(
|
content_type_id = ContentTypeMultipleChoiceField(
|
||||||
@ -410,7 +400,6 @@ class TagFilterForm(SavedFiltersMixin, FilterForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ConfigContextProfileFilterSet)
|
|
||||||
class ConfigContextProfileFilterForm(PrimaryModelFilterSetForm):
|
class ConfigContextProfileFilterForm(PrimaryModelFilterSetForm):
|
||||||
model = ConfigContextProfile
|
model = ConfigContextProfile
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -432,7 +421,6 @@ class ConfigContextProfileFilterForm(PrimaryModelFilterSetForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ConfigContextFilterSet)
|
|
||||||
class ConfigContextFilterForm(SavedFiltersMixin, FilterForm):
|
class ConfigContextFilterForm(SavedFiltersMixin, FilterForm):
|
||||||
model = ConfigContext
|
model = ConfigContext
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -534,7 +522,6 @@ class ConfigContextFilterForm(SavedFiltersMixin, FilterForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ConfigTemplateFilterSet)
|
|
||||||
class ConfigTemplateFilterForm(SavedFiltersMixin, FilterForm):
|
class ConfigTemplateFilterForm(SavedFiltersMixin, FilterForm):
|
||||||
model = ConfigTemplate
|
model = ConfigTemplate
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -599,7 +586,6 @@ class LocalConfigContextFilterForm(forms.Form):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(JournalEntryFilterSet)
|
|
||||||
class JournalEntryFilterForm(NetBoxModelFilterSetForm):
|
class JournalEntryFilterForm(NetBoxModelFilterSetForm):
|
||||||
model = JournalEntry
|
model = JournalEntry
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -635,7 +621,6 @@ class JournalEntryFilterForm(NetBoxModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(NotificationGroupFilterSet)
|
|
||||||
class NotificationGroupFilterForm(SavedFiltersMixin, FilterForm):
|
class NotificationGroupFilterForm(SavedFiltersMixin, FilterForm):
|
||||||
model = NotificationGroup
|
model = NotificationGroup
|
||||||
user_id = DynamicModelMultipleChoiceField(
|
user_id = DynamicModelMultipleChoiceField(
|
||||||
|
|||||||
@ -19,6 +19,7 @@ from tenancy.filtersets import ContactModelFilterSet, TenancyFilterSet
|
|||||||
from utilities.filters import (
|
from utilities.filters import (
|
||||||
ContentTypeFilter, MultiValueCharFilter, MultiValueNumberFilter, NumericArrayFilter, TreeNodeMultipleChoiceFilter,
|
ContentTypeFilter, MultiValueCharFilter, MultiValueNumberFilter, NumericArrayFilter, TreeNodeMultipleChoiceFilter,
|
||||||
)
|
)
|
||||||
|
from utilities.filtersets import register_filterset
|
||||||
from virtualization.models import VirtualMachine, VMInterface
|
from virtualization.models import VirtualMachine, VMInterface
|
||||||
from vpn.models import L2VPN
|
from vpn.models import L2VPN
|
||||||
from .choices import *
|
from .choices import *
|
||||||
@ -47,6 +48,7 @@ __all__ = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class VRFFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
class VRFFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
||||||
import_target_id = django_filters.ModelMultipleChoiceFilter(
|
import_target_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='import_targets',
|
field_name='import_targets',
|
||||||
@ -85,6 +87,7 @@ class VRFFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
|||||||
fields = ('id', 'name', 'rd', 'enforce_unique', 'description')
|
fields = ('id', 'name', 'rd', 'enforce_unique', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class RouteTargetFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
class RouteTargetFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
||||||
importing_vrf_id = django_filters.ModelMultipleChoiceFilter(
|
importing_vrf_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='importing_vrfs',
|
field_name='importing_vrfs',
|
||||||
@ -144,6 +147,7 @@ class RouteTargetFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
|||||||
fields = ('id', 'name', 'description')
|
fields = ('id', 'name', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class RIRFilterSet(OrganizationalModelFilterSet):
|
class RIRFilterSet(OrganizationalModelFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -151,6 +155,7 @@ class RIRFilterSet(OrganizationalModelFilterSet):
|
|||||||
fields = ('id', 'name', 'slug', 'is_private', 'description')
|
fields = ('id', 'name', 'slug', 'is_private', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class AggregateFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
class AggregateFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
||||||
family = django_filters.NumberFilter(
|
family = django_filters.NumberFilter(
|
||||||
field_name='prefix',
|
field_name='prefix',
|
||||||
@ -198,6 +203,7 @@ class AggregateFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFi
|
|||||||
return queryset.none()
|
return queryset.none()
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ASNRangeFilterSet(OrganizationalModelFilterSet, TenancyFilterSet):
|
class ASNRangeFilterSet(OrganizationalModelFilterSet, TenancyFilterSet):
|
||||||
rir_id = django_filters.ModelMultipleChoiceFilter(
|
rir_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=RIR.objects.all(),
|
queryset=RIR.objects.all(),
|
||||||
@ -223,6 +229,7 @@ class ASNRangeFilterSet(OrganizationalModelFilterSet, TenancyFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ASNFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
class ASNFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
||||||
rir_id = django_filters.ModelMultipleChoiceFilter(
|
rir_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=RIR.objects.all(),
|
queryset=RIR.objects.all(),
|
||||||
@ -285,6 +292,7 @@ class ASNFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
|||||||
return queryset.filter(qs_filter)
|
return queryset.filter(qs_filter)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class RoleFilterSet(OrganizationalModelFilterSet):
|
class RoleFilterSet(OrganizationalModelFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -292,6 +300,7 @@ class RoleFilterSet(OrganizationalModelFilterSet):
|
|||||||
fields = ('id', 'name', 'slug', 'description', 'weight')
|
fields = ('id', 'name', 'slug', 'description', 'weight')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class PrefixFilterSet(PrimaryModelFilterSet, ScopedFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
class PrefixFilterSet(PrimaryModelFilterSet, ScopedFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
||||||
family = django_filters.NumberFilter(
|
family = django_filters.NumberFilter(
|
||||||
field_name='prefix',
|
field_name='prefix',
|
||||||
@ -458,6 +467,7 @@ class PrefixFilterSet(PrimaryModelFilterSet, ScopedFilterSet, TenancyFilterSet,
|
|||||||
).distinct()
|
).distinct()
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class IPRangeFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
class IPRangeFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
||||||
family = django_filters.NumberFilter(
|
family = django_filters.NumberFilter(
|
||||||
field_name='start_address',
|
field_name='start_address',
|
||||||
@ -550,6 +560,7 @@ class IPRangeFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilt
|
|||||||
return queryset.filter(q)
|
return queryset.filter(q)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class IPAddressFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
class IPAddressFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
||||||
family = django_filters.NumberFilter(
|
family = django_filters.NumberFilter(
|
||||||
field_name='address',
|
field_name='address',
|
||||||
@ -786,6 +797,7 @@ class IPAddressFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFi
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class FHRPGroupFilterSet(PrimaryModelFilterSet):
|
class FHRPGroupFilterSet(PrimaryModelFilterSet):
|
||||||
protocol = django_filters.MultipleChoiceFilter(
|
protocol = django_filters.MultipleChoiceFilter(
|
||||||
choices=FHRPGroupProtocolChoices
|
choices=FHRPGroupProtocolChoices
|
||||||
@ -833,6 +845,7 @@ class FHRPGroupFilterSet(PrimaryModelFilterSet):
|
|||||||
return queryset.filter(ip_filter)
|
return queryset.filter(ip_filter)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class FHRPGroupAssignmentFilterSet(ChangeLoggedModelFilterSet):
|
class FHRPGroupAssignmentFilterSet(ChangeLoggedModelFilterSet):
|
||||||
interface_type = ContentTypeFilter()
|
interface_type = ContentTypeFilter()
|
||||||
group_id = django_filters.ModelMultipleChoiceFilter(
|
group_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
@ -887,6 +900,7 @@ class FHRPGroupAssignmentFilterSet(ChangeLoggedModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class VLANGroupFilterSet(OrganizationalModelFilterSet, TenancyFilterSet):
|
class VLANGroupFilterSet(OrganizationalModelFilterSet, TenancyFilterSet):
|
||||||
scope_type = ContentTypeFilter()
|
scope_type = ContentTypeFilter()
|
||||||
region = django_filters.NumberFilter(
|
region = django_filters.NumberFilter(
|
||||||
@ -936,6 +950,7 @@ class VLANGroupFilterSet(OrganizationalModelFilterSet, TenancyFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class VLANFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
class VLANFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
||||||
region_id = TreeNodeMultipleChoiceFilter(
|
region_id = TreeNodeMultipleChoiceFilter(
|
||||||
queryset=Region.objects.all(),
|
queryset=Region.objects.all(),
|
||||||
@ -1087,6 +1102,7 @@ class VLANFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
|||||||
).distinct()
|
).distinct()
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class VLANTranslationPolicyFilterSet(PrimaryModelFilterSet):
|
class VLANTranslationPolicyFilterSet(PrimaryModelFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -1103,6 +1119,7 @@ class VLANTranslationPolicyFilterSet(PrimaryModelFilterSet):
|
|||||||
return queryset.filter(qs_filter)
|
return queryset.filter(qs_filter)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class VLANTranslationRuleFilterSet(NetBoxModelFilterSet):
|
class VLANTranslationRuleFilterSet(NetBoxModelFilterSet):
|
||||||
policy_id = django_filters.ModelMultipleChoiceFilter(
|
policy_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=VLANTranslationPolicy.objects.all(),
|
queryset=VLANTranslationPolicy.objects.all(),
|
||||||
@ -1134,6 +1151,7 @@ class VLANTranslationRuleFilterSet(NetBoxModelFilterSet):
|
|||||||
return queryset.filter(qs_filter)
|
return queryset.filter(qs_filter)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ServiceTemplateFilterSet(PrimaryModelFilterSet):
|
class ServiceTemplateFilterSet(PrimaryModelFilterSet):
|
||||||
port = NumericArrayFilter(
|
port = NumericArrayFilter(
|
||||||
field_name='ports',
|
field_name='ports',
|
||||||
@ -1154,6 +1172,7 @@ class ServiceTemplateFilterSet(PrimaryModelFilterSet):
|
|||||||
return queryset.filter(qs_filter)
|
return queryset.filter(qs_filter)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ServiceFilterSet(ContactModelFilterSet, PrimaryModelFilterSet):
|
class ServiceFilterSet(ContactModelFilterSet, PrimaryModelFilterSet):
|
||||||
parent_object_type = ContentTypeFilter()
|
parent_object_type = ContentTypeFilter()
|
||||||
device = MultiValueCharFilter(
|
device = MultiValueCharFilter(
|
||||||
|
|||||||
@ -8,7 +8,7 @@ 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, register_filterset
|
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.rendering import FieldSet
|
from utilities.forms.rendering import FieldSet
|
||||||
from virtualization.models import VirtualMachine, ClusterGroup, Cluster
|
from virtualization.models import VirtualMachine, ClusterGroup, Cluster
|
||||||
@ -43,7 +43,6 @@ IPADDRESS_MASK_LENGTH_CHOICES = add_blank_choice([
|
|||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(VRFFilterSet)
|
|
||||||
class VRFFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
class VRFFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = VRF
|
model = VRF
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -64,7 +63,6 @@ class VRFFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(RouteTargetFilterSet)
|
|
||||||
class RouteTargetFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
class RouteTargetFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = RouteTarget
|
model = RouteTarget
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -85,7 +83,6 @@ class RouteTargetFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(RIRFilterSet)
|
|
||||||
class RIRFilterForm(OrganizationalModelFilterSetForm):
|
class RIRFilterForm(OrganizationalModelFilterSetForm):
|
||||||
model = RIR
|
model = RIR
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -102,7 +99,6 @@ class RIRFilterForm(OrganizationalModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(AggregateFilterSet)
|
|
||||||
class AggregateFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
class AggregateFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = Aggregate
|
model = Aggregate
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -124,7 +120,6 @@ class AggregateFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryMode
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ASNRangeFilterSet)
|
|
||||||
class ASNRangeFilterForm(TenancyFilterForm, OrganizationalModelFilterSetForm):
|
class ASNRangeFilterForm(TenancyFilterForm, OrganizationalModelFilterSetForm):
|
||||||
model = ASNRange
|
model = ASNRange
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -148,7 +143,6 @@ class ASNRangeFilterForm(TenancyFilterForm, OrganizationalModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ASNFilterSet)
|
|
||||||
class ASNFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
class ASNFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = ASN
|
model = ASN
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -174,7 +168,6 @@ class ASNFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(RoleFilterSet)
|
|
||||||
class RoleFilterForm(OrganizationalModelFilterSetForm):
|
class RoleFilterForm(OrganizationalModelFilterSetForm):
|
||||||
model = Role
|
model = Role
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -183,7 +176,6 @@ class RoleFilterForm(OrganizationalModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(PrefixFilterSet)
|
|
||||||
class PrefixFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
class PrefixFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = Prefix
|
model = Prefix
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -290,7 +282,6 @@ class PrefixFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFi
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(IPRangeFilterSet)
|
|
||||||
class IPRangeFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
class IPRangeFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = IPRange
|
model = IPRange
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -338,7 +329,6 @@ class IPRangeFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelF
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(IPAddressFilterSet)
|
|
||||||
class IPAddressFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
class IPAddressFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = IPAddress
|
model = IPAddress
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -417,7 +407,6 @@ class IPAddressFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryMode
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(FHRPGroupFilterSet)
|
|
||||||
class FHRPGroupFilterForm(PrimaryModelFilterSetForm):
|
class FHRPGroupFilterForm(PrimaryModelFilterSetForm):
|
||||||
model = FHRPGroup
|
model = FHRPGroup
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -451,7 +440,6 @@ class FHRPGroupFilterForm(PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(VLANGroupFilterSet)
|
|
||||||
class VLANGroupFilterForm(TenancyFilterForm, OrganizationalModelFilterSetForm):
|
class VLANGroupFilterForm(TenancyFilterForm, OrganizationalModelFilterSetForm):
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
|
||||||
@ -505,7 +493,6 @@ class VLANGroupFilterForm(TenancyFilterForm, OrganizationalModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(VLANTranslationPolicyFilterSet)
|
|
||||||
class VLANTranslationPolicyFilterForm(PrimaryModelFilterSetForm):
|
class VLANTranslationPolicyFilterForm(PrimaryModelFilterSetForm):
|
||||||
model = VLANTranslationPolicy
|
model = VLANTranslationPolicy
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -519,7 +506,6 @@ class VLANTranslationPolicyFilterForm(PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(VLANTranslationRuleFilterSet)
|
|
||||||
class VLANTranslationRuleFilterForm(NetBoxModelFilterSetForm):
|
class VLANTranslationRuleFilterForm(NetBoxModelFilterSetForm):
|
||||||
model = VLANTranslationRule
|
model = VLANTranslationRule
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -544,7 +530,6 @@ class VLANTranslationRuleFilterForm(NetBoxModelFilterSetForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(VLANFilterSet)
|
|
||||||
class VLANFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
class VLANFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = VLAN
|
model = VLAN
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -617,7 +602,6 @@ class VLANFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ServiceTemplateFilterSet)
|
|
||||||
class ServiceTemplateFilterForm(PrimaryModelFilterSetForm):
|
class ServiceTemplateFilterForm(PrimaryModelFilterSetForm):
|
||||||
model = ServiceTemplate
|
model = ServiceTemplate
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -636,7 +620,6 @@ class ServiceTemplateFilterForm(PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ServiceFilterSet)
|
|
||||||
class ServiceFilterForm(ContactModelFilterForm, ServiceTemplateFilterForm):
|
class ServiceFilterForm(ContactModelFilterForm, ServiceTemplateFilterForm):
|
||||||
model = Service
|
model = Service
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
|
|||||||
@ -6,6 +6,7 @@ from netbox.filtersets import (
|
|||||||
NestedGroupModelFilterSet, NetBoxModelFilterSet, OrganizationalModelFilterSet, PrimaryModelFilterSet,
|
NestedGroupModelFilterSet, NetBoxModelFilterSet, OrganizationalModelFilterSet, PrimaryModelFilterSet,
|
||||||
)
|
)
|
||||||
from utilities.filters import ContentTypeFilter, TreeNodeMultipleChoiceFilter
|
from utilities.filters import ContentTypeFilter, TreeNodeMultipleChoiceFilter
|
||||||
|
from utilities.filtersets import register_filterset
|
||||||
from .models import *
|
from .models import *
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
@ -24,6 +25,7 @@ __all__ = (
|
|||||||
# Contacts
|
# Contacts
|
||||||
#
|
#
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ContactGroupFilterSet(NestedGroupModelFilterSet):
|
class ContactGroupFilterSet(NestedGroupModelFilterSet):
|
||||||
parent_id = django_filters.ModelMultipleChoiceFilter(
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=ContactGroup.objects.all(),
|
queryset=ContactGroup.objects.all(),
|
||||||
@ -59,6 +61,7 @@ class ContactGroupFilterSet(NestedGroupModelFilterSet):
|
|||||||
fields = ('id', 'name', 'slug', 'description')
|
fields = ('id', 'name', 'slug', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ContactRoleFilterSet(OrganizationalModelFilterSet):
|
class ContactRoleFilterSet(OrganizationalModelFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -66,6 +69,7 @@ class ContactRoleFilterSet(OrganizationalModelFilterSet):
|
|||||||
fields = ('id', 'name', 'slug', 'description')
|
fields = ('id', 'name', 'slug', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ContactFilterSet(PrimaryModelFilterSet):
|
class ContactFilterSet(PrimaryModelFilterSet):
|
||||||
group_id = TreeNodeMultipleChoiceFilter(
|
group_id = TreeNodeMultipleChoiceFilter(
|
||||||
queryset=ContactGroup.objects.all(),
|
queryset=ContactGroup.objects.all(),
|
||||||
@ -100,6 +104,7 @@ class ContactFilterSet(PrimaryModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ContactAssignmentFilterSet(NetBoxModelFilterSet):
|
class ContactAssignmentFilterSet(NetBoxModelFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -170,6 +175,7 @@ class ContactModelFilterSet(django_filters.FilterSet):
|
|||||||
# Tenancy
|
# Tenancy
|
||||||
#
|
#
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class TenantGroupFilterSet(NestedGroupModelFilterSet):
|
class TenantGroupFilterSet(NestedGroupModelFilterSet):
|
||||||
parent_id = django_filters.ModelMultipleChoiceFilter(
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=TenantGroup.objects.all(),
|
queryset=TenantGroup.objects.all(),
|
||||||
@ -200,6 +206,7 @@ class TenantGroupFilterSet(NestedGroupModelFilterSet):
|
|||||||
fields = ('id', 'name', 'slug', 'description')
|
fields = ('id', 'name', 'slug', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class TenantFilterSet(PrimaryModelFilterSet, ContactModelFilterSet):
|
class TenantFilterSet(PrimaryModelFilterSet, ContactModelFilterSet):
|
||||||
group_id = TreeNodeMultipleChoiceFilter(
|
group_id = TreeNodeMultipleChoiceFilter(
|
||||||
queryset=TenantGroup.objects.all(),
|
queryset=TenantGroup.objects.all(),
|
||||||
|
|||||||
@ -13,7 +13,6 @@ from tenancy.forms import ContactModelFilterForm
|
|||||||
from utilities.forms.fields import (
|
from utilities.forms.fields import (
|
||||||
ContentTypeMultipleChoiceField, DynamicModelMultipleChoiceField, TagFilterField,
|
ContentTypeMultipleChoiceField, DynamicModelMultipleChoiceField, TagFilterField,
|
||||||
)
|
)
|
||||||
from utilities.forms import register_filterset
|
|
||||||
from utilities.forms.rendering import FieldSet
|
from utilities.forms.rendering import FieldSet
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
@ -30,7 +29,6 @@ __all__ = (
|
|||||||
# Tenants
|
# Tenants
|
||||||
#
|
#
|
||||||
|
|
||||||
@register_filterset(TenantGroupFilterSet)
|
|
||||||
class TenantGroupFilterForm(NestedGroupModelFilterSetForm):
|
class TenantGroupFilterForm(NestedGroupModelFilterSetForm):
|
||||||
model = TenantGroup
|
model = TenantGroup
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -45,7 +43,6 @@ class TenantGroupFilterForm(NestedGroupModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(TenantFilterSet)
|
|
||||||
class TenantFilterForm(ContactModelFilterForm, PrimaryModelFilterSetForm):
|
class TenantFilterForm(ContactModelFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = Tenant
|
model = Tenant
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -66,7 +63,6 @@ class TenantFilterForm(ContactModelFilterForm, PrimaryModelFilterSetForm):
|
|||||||
# Contacts
|
# Contacts
|
||||||
#
|
#
|
||||||
|
|
||||||
@register_filterset(ContactGroupFilterSet)
|
|
||||||
class ContactGroupFilterForm(NestedGroupModelFilterSetForm):
|
class ContactGroupFilterForm(NestedGroupModelFilterSetForm):
|
||||||
model = ContactGroup
|
model = ContactGroup
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -81,7 +77,6 @@ class ContactGroupFilterForm(NestedGroupModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ContactRoleFilterSet)
|
|
||||||
class ContactRoleFilterForm(OrganizationalModelFilterSetForm):
|
class ContactRoleFilterForm(OrganizationalModelFilterSetForm):
|
||||||
model = ContactRole
|
model = ContactRole
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -90,7 +85,6 @@ class ContactRoleFilterForm(OrganizationalModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ContactFilterSet)
|
|
||||||
class ContactFilterForm(PrimaryModelFilterSetForm):
|
class ContactFilterForm(PrimaryModelFilterSetForm):
|
||||||
model = Contact
|
model = Contact
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -106,7 +100,6 @@ class ContactFilterForm(PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ContactAssignmentFilterSet)
|
|
||||||
class ContactAssignmentFilterForm(NetBoxModelFilterSetForm):
|
class ContactAssignmentFilterForm(NetBoxModelFilterSetForm):
|
||||||
model = ContactAssignment
|
model = ContactAssignment
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
|
|||||||
@ -8,6 +8,7 @@ from extras.models import NotificationGroup
|
|||||||
from netbox.filtersets import BaseFilterSet
|
from netbox.filtersets import BaseFilterSet
|
||||||
from users.models import Group, ObjectPermission, Owner, OwnerGroup, Token, User
|
from users.models import Group, ObjectPermission, Owner, OwnerGroup, Token, User
|
||||||
from utilities.filters import ContentTypeFilter
|
from utilities.filters import ContentTypeFilter
|
||||||
|
from utilities.filtersets import register_filterset
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'GroupFilterSet',
|
'GroupFilterSet',
|
||||||
@ -19,6 +20,7 @@ __all__ = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class GroupFilterSet(BaseFilterSet):
|
class GroupFilterSet(BaseFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -64,6 +66,7 @@ class GroupFilterSet(BaseFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class UserFilterSet(BaseFilterSet):
|
class UserFilterSet(BaseFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -120,6 +123,7 @@ class UserFilterSet(BaseFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class TokenFilterSet(BaseFilterSet):
|
class TokenFilterSet(BaseFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -181,6 +185,7 @@ class TokenFilterSet(BaseFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ObjectPermissionFilterSet(BaseFilterSet):
|
class ObjectPermissionFilterSet(BaseFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -248,6 +253,7 @@ class ObjectPermissionFilterSet(BaseFilterSet):
|
|||||||
return queryset.exclude(actions__contains=[action])
|
return queryset.exclude(actions__contains=[action])
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class OwnerGroupFilterSet(BaseFilterSet):
|
class OwnerGroupFilterSet(BaseFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
@ -267,6 +273,7 @@ class OwnerGroupFilterSet(BaseFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class OwnerFilterSet(BaseFilterSet):
|
class OwnerFilterSet(BaseFilterSet):
|
||||||
q = django_filters.CharFilter(
|
q = django_filters.CharFilter(
|
||||||
method='search',
|
method='search',
|
||||||
|
|||||||
@ -5,7 +5,7 @@ from netbox.forms import NetBoxModelFilterSetForm
|
|||||||
from netbox.forms.mixins import SavedFiltersMixin
|
from netbox.forms.mixins import SavedFiltersMixin
|
||||||
from users.choices import TokenVersionChoices
|
from users.choices import TokenVersionChoices
|
||||||
from users.models import Group, ObjectPermission, Owner, OwnerGroup, Token, User
|
from users.models import Group, ObjectPermission, Owner, OwnerGroup, Token, User
|
||||||
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm, register_filterset
|
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm
|
||||||
from utilities.forms.fields import DynamicModelMultipleChoiceField
|
from utilities.forms.fields import DynamicModelMultipleChoiceField
|
||||||
from utilities.forms.rendering import FieldSet
|
from utilities.forms.rendering import FieldSet
|
||||||
from utilities.forms.utils import add_blank_choice
|
from utilities.forms.utils import add_blank_choice
|
||||||
@ -22,7 +22,6 @@ __all__ = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(GroupFilterSet)
|
|
||||||
class GroupFilterForm(NetBoxModelFilterSetForm):
|
class GroupFilterForm(NetBoxModelFilterSetForm):
|
||||||
model = Group
|
model = Group
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -30,7 +29,6 @@ class GroupFilterForm(NetBoxModelFilterSetForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(UserFilterSet)
|
|
||||||
class UserFilterForm(NetBoxModelFilterSetForm):
|
class UserFilterForm(NetBoxModelFilterSetForm):
|
||||||
model = User
|
model = User
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -59,7 +57,6 @@ class UserFilterForm(NetBoxModelFilterSetForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ObjectPermissionFilterSet)
|
|
||||||
class ObjectPermissionFilterForm(NetBoxModelFilterSetForm):
|
class ObjectPermissionFilterForm(NetBoxModelFilterSetForm):
|
||||||
model = ObjectPermission
|
model = ObjectPermission
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -114,7 +111,6 @@ class ObjectPermissionFilterForm(NetBoxModelFilterSetForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(TokenFilterSet)
|
|
||||||
class TokenFilterForm(SavedFiltersMixin, FilterForm):
|
class TokenFilterForm(SavedFiltersMixin, FilterForm):
|
||||||
model = Token
|
model = Token
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -156,7 +152,6 @@ class TokenFilterForm(SavedFiltersMixin, FilterForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(OwnerGroupFilterSet)
|
|
||||||
class OwnerGroupFilterForm(NetBoxModelFilterSetForm):
|
class OwnerGroupFilterForm(NetBoxModelFilterSetForm):
|
||||||
model = OwnerGroup
|
model = OwnerGroup
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -164,7 +159,6 @@ class OwnerGroupFilterForm(NetBoxModelFilterSetForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(OwnerFilterSet)
|
|
||||||
class OwnerFilterForm(NetBoxModelFilterSetForm):
|
class OwnerFilterForm(NetBoxModelFilterSetForm):
|
||||||
model = Owner
|
model = Owner
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
|
|||||||
13
netbox/utilities/filtersets.py
Normal file
13
netbox/utilities/filtersets.py
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
from netbox.registry import registry
|
||||||
|
|
||||||
|
|
||||||
|
def register_filterset(filterset_class):
|
||||||
|
"""
|
||||||
|
Decorator for registering a FilterSet with the application registry.
|
||||||
|
|
||||||
|
Uses model identifier as key to match search index pattern.
|
||||||
|
"""
|
||||||
|
model = filterset_class._meta.model
|
||||||
|
label = f'{model._meta.app_label}.{model._meta.model_name}'
|
||||||
|
registry['filtersets'][label] = filterset_class
|
||||||
|
return filterset_class
|
||||||
@ -2,18 +2,3 @@ from .constants import *
|
|||||||
from .forms import *
|
from .forms import *
|
||||||
from .mixins import *
|
from .mixins import *
|
||||||
from .utils import *
|
from .utils import *
|
||||||
|
|
||||||
|
|
||||||
def register_filterset(filterset_class):
|
|
||||||
"""
|
|
||||||
Decorator for registering a FilterSet with the application registry.
|
|
||||||
|
|
||||||
Uses model identifier as key to match search index pattern.
|
|
||||||
"""
|
|
||||||
def decorator(form_class):
|
|
||||||
from netbox.registry import registry
|
|
||||||
model = filterset_class._meta.model
|
|
||||||
key = f'{model._meta.app_label}.{model._meta.model_name}'
|
|
||||||
registry['filtersets'][key] = filterset_class
|
|
||||||
return form_class
|
|
||||||
return decorator
|
|
||||||
|
|||||||
@ -5,7 +5,9 @@ from django import forms
|
|||||||
from django.core.validators import MaxValueValidator, MinValueValidator
|
from django.core.validators import MaxValueValidator, MinValueValidator
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
from netbox.registry import registry
|
||||||
from utilities.forms.fields import ColorField, QueryField, TagFilterField
|
from utilities.forms.fields import ColorField, QueryField, TagFilterField
|
||||||
|
from utilities.forms.widgets import FilterModifierWidget
|
||||||
from utilities.forms.widgets.apiselect import APISelect
|
from utilities.forms.widgets.apiselect import APISelect
|
||||||
from utilities.forms.widgets.modifiers import MODIFIER_EMPTY_FALSE, MODIFIER_EMPTY_TRUE
|
from utilities.forms.widgets.modifiers import MODIFIER_EMPTY_FALSE, MODIFIER_EMPTY_TRUE
|
||||||
|
|
||||||
@ -174,8 +176,6 @@ class FilterModifierMixin:
|
|||||||
|
|
||||||
def _enhance_fields_with_modifiers(self):
|
def _enhance_fields_with_modifiers(self):
|
||||||
"""Wrap compatible field widgets with FilterModifierWidget."""
|
"""Wrap compatible field widgets with FilterModifierWidget."""
|
||||||
from utilities.forms.widgets import FilterModifierWidget
|
|
||||||
from netbox.registry import registry
|
|
||||||
|
|
||||||
model = getattr(self, 'model', None)
|
model = getattr(self, 'model', None)
|
||||||
if model is None and hasattr(self, '_meta'):
|
if model is None and hasattr(self, '_meta'):
|
||||||
@ -237,7 +237,7 @@ class FilterModifierMixin:
|
|||||||
|
|
||||||
def _is_api_widget_field(self, field):
|
def _is_api_widget_field(self, field):
|
||||||
"""Check if a field uses an API-based widget."""
|
"""Check if a field uses an API-based widget."""
|
||||||
if field.widget is APISelect:
|
if isinstance(field.widget, APISelect):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
if hasattr(field.widget, 'attrs') and field.widget.attrs:
|
if hasattr(field.widget, 'attrs') and field.widget.attrs:
|
||||||
|
|||||||
@ -14,6 +14,7 @@ from tenancy.filtersets import TenancyFilterSet, ContactModelFilterSet
|
|||||||
|
|
||||||
from users.filterset_mixins import OwnerFilterMixin
|
from users.filterset_mixins import OwnerFilterMixin
|
||||||
from utilities.filters import MultiValueCharFilter, MultiValueMACAddressFilter, TreeNodeMultipleChoiceFilter
|
from utilities.filters import MultiValueCharFilter, MultiValueMACAddressFilter, TreeNodeMultipleChoiceFilter
|
||||||
|
from utilities.filtersets import register_filterset
|
||||||
from .choices import *
|
from .choices import *
|
||||||
from .models import *
|
from .models import *
|
||||||
|
|
||||||
@ -27,6 +28,7 @@ __all__ = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ClusterTypeFilterSet(OrganizationalModelFilterSet):
|
class ClusterTypeFilterSet(OrganizationalModelFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -34,6 +36,7 @@ class ClusterTypeFilterSet(OrganizationalModelFilterSet):
|
|||||||
fields = ('id', 'name', 'slug', 'description')
|
fields = ('id', 'name', 'slug', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ClusterGroupFilterSet(OrganizationalModelFilterSet, ContactModelFilterSet):
|
class ClusterGroupFilterSet(OrganizationalModelFilterSet, ContactModelFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -41,6 +44,7 @@ class ClusterGroupFilterSet(OrganizationalModelFilterSet, ContactModelFilterSet)
|
|||||||
fields = ('id', 'name', 'slug', 'description')
|
fields = ('id', 'name', 'slug', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class ClusterFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ScopedFilterSet, ContactModelFilterSet):
|
class ClusterFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ScopedFilterSet, ContactModelFilterSet):
|
||||||
group_id = django_filters.ModelMultipleChoiceFilter(
|
group_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=ClusterGroup.objects.all(),
|
queryset=ClusterGroup.objects.all(),
|
||||||
@ -81,6 +85,7 @@ class ClusterFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ScopedFilterSet,
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class VirtualMachineFilterSet(
|
class VirtualMachineFilterSet(
|
||||||
PrimaryModelFilterSet,
|
PrimaryModelFilterSet,
|
||||||
TenancyFilterSet,
|
TenancyFilterSet,
|
||||||
@ -241,6 +246,7 @@ class VirtualMachineFilterSet(
|
|||||||
return queryset.exclude(params)
|
return queryset.exclude(params)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class VMInterfaceFilterSet(CommonInterfaceFilterSet, OwnerFilterMixin, NetBoxModelFilterSet):
|
class VMInterfaceFilterSet(CommonInterfaceFilterSet, OwnerFilterMixin, NetBoxModelFilterSet):
|
||||||
cluster_id = django_filters.ModelMultipleChoiceFilter(
|
cluster_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='virtual_machine__cluster',
|
field_name='virtual_machine__cluster',
|
||||||
@ -303,6 +309,7 @@ class VMInterfaceFilterSet(CommonInterfaceFilterSet, OwnerFilterMixin, NetBoxMod
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class VirtualDiskFilterSet(OwnerFilterMixin, NetBoxModelFilterSet):
|
class VirtualDiskFilterSet(OwnerFilterMixin, NetBoxModelFilterSet):
|
||||||
virtual_machine_id = django_filters.ModelMultipleChoiceFilter(
|
virtual_machine_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='virtual_machine',
|
field_name='virtual_machine',
|
||||||
|
|||||||
@ -9,7 +9,7 @@ from ipam.models import VRF, VLANTranslationPolicy
|
|||||||
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 users.models import Owner
|
from users.models import Owner
|
||||||
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, register_filterset
|
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES
|
||||||
from utilities.forms.fields import DynamicModelChoiceField, DynamicModelMultipleChoiceField, TagFilterField
|
from utilities.forms.fields import DynamicModelChoiceField, DynamicModelMultipleChoiceField, TagFilterField
|
||||||
from utilities.forms.rendering import FieldSet
|
from utilities.forms.rendering import FieldSet
|
||||||
from virtualization.choices import *
|
from virtualization.choices import *
|
||||||
@ -27,7 +27,6 @@ __all__ = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ClusterTypeFilterSet)
|
|
||||||
class ClusterTypeFilterForm(OrganizationalModelFilterSetForm):
|
class ClusterTypeFilterForm(OrganizationalModelFilterSetForm):
|
||||||
model = ClusterType
|
model = ClusterType
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -36,7 +35,6 @@ class ClusterTypeFilterForm(OrganizationalModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ClusterGroupFilterSet)
|
|
||||||
class ClusterGroupFilterForm(ContactModelFilterForm, OrganizationalModelFilterSetForm):
|
class ClusterGroupFilterForm(ContactModelFilterForm, OrganizationalModelFilterSetForm):
|
||||||
model = ClusterGroup
|
model = ClusterGroup
|
||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
@ -46,7 +44,6 @@ class ClusterGroupFilterForm(ContactModelFilterForm, OrganizationalModelFilterSe
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(ClusterFilterSet)
|
|
||||||
class ClusterFilterForm(TenancyFilterForm, ContactModelFilterForm, PrimaryModelFilterSetForm):
|
class ClusterFilterForm(TenancyFilterForm, ContactModelFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = Cluster
|
model = Cluster
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -101,7 +98,6 @@ class ClusterFilterForm(TenancyFilterForm, ContactModelFilterForm, PrimaryModelF
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(VirtualMachineFilterSet)
|
|
||||||
class VirtualMachineFilterForm(
|
class VirtualMachineFilterForm(
|
||||||
LocalConfigContextFilterForm,
|
LocalConfigContextFilterForm,
|
||||||
TenancyFilterForm,
|
TenancyFilterForm,
|
||||||
@ -210,7 +206,6 @@ class VirtualMachineFilterForm(
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(VMInterfaceFilterSet)
|
|
||||||
class VMInterfaceFilterForm(NetBoxModelFilterSetForm):
|
class VMInterfaceFilterForm(NetBoxModelFilterSetForm):
|
||||||
model = VMInterface
|
model = VMInterface
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -273,7 +268,6 @@ class VMInterfaceFilterForm(NetBoxModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(VirtualDiskFilterSet)
|
|
||||||
class VirtualDiskFilterForm(NetBoxModelFilterSetForm):
|
class VirtualDiskFilterForm(NetBoxModelFilterSetForm):
|
||||||
model = VirtualDisk
|
model = VirtualDisk
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
|
|||||||
@ -8,6 +8,7 @@ from ipam.models import IPAddress, RouteTarget, VLAN
|
|||||||
from netbox.filtersets import NetBoxModelFilterSet, OrganizationalModelFilterSet, PrimaryModelFilterSet
|
from netbox.filtersets import NetBoxModelFilterSet, OrganizationalModelFilterSet, PrimaryModelFilterSet
|
||||||
from tenancy.filtersets import ContactModelFilterSet, TenancyFilterSet
|
from tenancy.filtersets import ContactModelFilterSet, TenancyFilterSet
|
||||||
from utilities.filters import ContentTypeFilter, MultiValueCharFilter, MultiValueNumberFilter
|
from utilities.filters import ContentTypeFilter, MultiValueCharFilter, MultiValueNumberFilter
|
||||||
|
from utilities.filtersets import register_filterset
|
||||||
from virtualization.models import VirtualMachine, VMInterface
|
from virtualization.models import VirtualMachine, VMInterface
|
||||||
from .choices import *
|
from .choices import *
|
||||||
from .models import *
|
from .models import *
|
||||||
@ -26,6 +27,7 @@ __all__ = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class TunnelGroupFilterSet(OrganizationalModelFilterSet, ContactModelFilterSet):
|
class TunnelGroupFilterSet(OrganizationalModelFilterSet, ContactModelFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -33,6 +35,7 @@ class TunnelGroupFilterSet(OrganizationalModelFilterSet, ContactModelFilterSet):
|
|||||||
fields = ('id', 'name', 'slug', 'description')
|
fields = ('id', 'name', 'slug', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class TunnelFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
class TunnelFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
||||||
status = django_filters.MultipleChoiceFilter(
|
status = django_filters.MultipleChoiceFilter(
|
||||||
choices=TunnelStatusChoices
|
choices=TunnelStatusChoices
|
||||||
@ -75,6 +78,7 @@ class TunnelFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilte
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class TunnelTerminationFilterSet(NetBoxModelFilterSet):
|
class TunnelTerminationFilterSet(NetBoxModelFilterSet):
|
||||||
tunnel_id = django_filters.ModelMultipleChoiceFilter(
|
tunnel_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='tunnel',
|
field_name='tunnel',
|
||||||
@ -124,6 +128,7 @@ class TunnelTerminationFilterSet(NetBoxModelFilterSet):
|
|||||||
fields = ('id', 'termination_id')
|
fields = ('id', 'termination_id')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class IKEProposalFilterSet(PrimaryModelFilterSet):
|
class IKEProposalFilterSet(PrimaryModelFilterSet):
|
||||||
ike_policy_id = django_filters.ModelMultipleChoiceFilter(
|
ike_policy_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='ike_policies',
|
field_name='ike_policies',
|
||||||
@ -163,6 +168,7 @@ class IKEProposalFilterSet(PrimaryModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class IKEPolicyFilterSet(PrimaryModelFilterSet):
|
class IKEPolicyFilterSet(PrimaryModelFilterSet):
|
||||||
version = django_filters.MultipleChoiceFilter(
|
version = django_filters.MultipleChoiceFilter(
|
||||||
choices=IKEVersionChoices
|
choices=IKEVersionChoices
|
||||||
@ -194,6 +200,7 @@ class IKEPolicyFilterSet(PrimaryModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class IPSecProposalFilterSet(PrimaryModelFilterSet):
|
class IPSecProposalFilterSet(PrimaryModelFilterSet):
|
||||||
ipsec_policy_id = django_filters.ModelMultipleChoiceFilter(
|
ipsec_policy_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='ipsec_policies',
|
field_name='ipsec_policies',
|
||||||
@ -227,6 +234,7 @@ class IPSecProposalFilterSet(PrimaryModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class IPSecPolicyFilterSet(PrimaryModelFilterSet):
|
class IPSecPolicyFilterSet(PrimaryModelFilterSet):
|
||||||
pfs_group = django_filters.MultipleChoiceFilter(
|
pfs_group = django_filters.MultipleChoiceFilter(
|
||||||
choices=DHGroupChoices
|
choices=DHGroupChoices
|
||||||
@ -255,6 +263,7 @@ class IPSecPolicyFilterSet(PrimaryModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class IPSecProfileFilterSet(PrimaryModelFilterSet):
|
class IPSecProfileFilterSet(PrimaryModelFilterSet):
|
||||||
mode = django_filters.MultipleChoiceFilter(
|
mode = django_filters.MultipleChoiceFilter(
|
||||||
choices=IPSecModeChoices
|
choices=IPSecModeChoices
|
||||||
@ -294,6 +303,7 @@ class IPSecProfileFilterSet(PrimaryModelFilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class L2VPNFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
class L2VPNFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilterSet):
|
||||||
type = django_filters.MultipleChoiceFilter(
|
type = django_filters.MultipleChoiceFilter(
|
||||||
choices=L2VPNTypeChoices,
|
choices=L2VPNTypeChoices,
|
||||||
@ -340,6 +350,7 @@ class L2VPNFilterSet(PrimaryModelFilterSet, TenancyFilterSet, ContactModelFilter
|
|||||||
return queryset.filter(qs_filter)
|
return queryset.filter(qs_filter)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class L2VPNTerminationFilterSet(NetBoxModelFilterSet):
|
class L2VPNTerminationFilterSet(NetBoxModelFilterSet):
|
||||||
l2vpn_id = django_filters.ModelMultipleChoiceFilter(
|
l2vpn_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=L2VPN.objects.all(),
|
queryset=L2VPN.objects.all(),
|
||||||
|
|||||||
@ -9,7 +9,6 @@ from tenancy.forms import ContactModelFilterForm, TenancyFilterForm
|
|||||||
from utilities.forms.fields import (
|
from utilities.forms.fields import (
|
||||||
ContentTypeMultipleChoiceField, DynamicModelChoiceField, DynamicModelMultipleChoiceField, TagFilterField,
|
ContentTypeMultipleChoiceField, DynamicModelChoiceField, DynamicModelMultipleChoiceField, TagFilterField,
|
||||||
)
|
)
|
||||||
from utilities.forms import register_filterset
|
|
||||||
from utilities.forms.rendering import FieldSet
|
from utilities.forms.rendering import FieldSet
|
||||||
from utilities.forms.utils import add_blank_choice
|
from utilities.forms.utils import add_blank_choice
|
||||||
from virtualization.models import VirtualMachine
|
from virtualization.models import VirtualMachine
|
||||||
@ -32,7 +31,6 @@ __all__ = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(TunnelGroupFilterSet)
|
|
||||||
class TunnelGroupFilterForm(ContactModelFilterForm, OrganizationalModelFilterSetForm):
|
class TunnelGroupFilterForm(ContactModelFilterForm, OrganizationalModelFilterSetForm):
|
||||||
model = TunnelGroup
|
model = TunnelGroup
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -42,7 +40,6 @@ class TunnelGroupFilterForm(ContactModelFilterForm, OrganizationalModelFilterSet
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(TunnelFilterSet)
|
|
||||||
class TunnelFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
class TunnelFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = Tunnel
|
model = Tunnel
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -79,7 +76,6 @@ class TunnelFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFi
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(TunnelTerminationFilterSet)
|
|
||||||
class TunnelTerminationFilterForm(NetBoxModelFilterSetForm):
|
class TunnelTerminationFilterForm(NetBoxModelFilterSetForm):
|
||||||
model = TunnelTermination
|
model = TunnelTermination
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -99,7 +95,6 @@ class TunnelTerminationFilterForm(NetBoxModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(IKEProposalFilterSet)
|
|
||||||
class IKEProposalFilterForm(PrimaryModelFilterSetForm):
|
class IKEProposalFilterForm(PrimaryModelFilterSetForm):
|
||||||
model = IKEProposal
|
model = IKEProposal
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -131,7 +126,6 @@ class IKEProposalFilterForm(PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(IKEPolicyFilterSet)
|
|
||||||
class IKEPolicyFilterForm(PrimaryModelFilterSetForm):
|
class IKEPolicyFilterForm(PrimaryModelFilterSetForm):
|
||||||
model = IKEPolicy
|
model = IKEPolicy
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -156,7 +150,6 @@ class IKEPolicyFilterForm(PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(IPSecProposalFilterSet)
|
|
||||||
class IPSecProposalFilterForm(PrimaryModelFilterSetForm):
|
class IPSecProposalFilterForm(PrimaryModelFilterSetForm):
|
||||||
model = IPSecProposal
|
model = IPSecProposal
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -176,7 +169,6 @@ class IPSecProposalFilterForm(PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(IPSecPolicyFilterSet)
|
|
||||||
class IPSecPolicyFilterForm(PrimaryModelFilterSetForm):
|
class IPSecPolicyFilterForm(PrimaryModelFilterSetForm):
|
||||||
model = IPSecPolicy
|
model = IPSecPolicy
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -196,7 +188,6 @@ class IPSecPolicyFilterForm(PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(IPSecProfileFilterSet)
|
|
||||||
class IPSecProfileFilterForm(PrimaryModelFilterSetForm):
|
class IPSecProfileFilterForm(PrimaryModelFilterSetForm):
|
||||||
model = IPSecProfile
|
model = IPSecProfile
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -221,7 +212,6 @@ class IPSecProfileFilterForm(PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(L2VPNFilterSet)
|
|
||||||
class L2VPNFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
class L2VPNFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = L2VPN
|
model = L2VPN
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -253,7 +243,6 @@ class L2VPNFilterForm(ContactModelFilterForm, TenancyFilterForm, PrimaryModelFil
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(L2VPNTerminationFilterSet)
|
|
||||||
class L2VPNTerminationFilterForm(NetBoxModelFilterSetForm):
|
class L2VPNTerminationFilterForm(NetBoxModelFilterSetForm):
|
||||||
model = L2VPNTermination
|
model = L2VPNTermination
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
|
|||||||
@ -8,6 +8,7 @@ from ipam.models import VLAN
|
|||||||
from netbox.filtersets import NestedGroupModelFilterSet, PrimaryModelFilterSet
|
from netbox.filtersets import NestedGroupModelFilterSet, PrimaryModelFilterSet
|
||||||
from tenancy.filtersets import TenancyFilterSet
|
from tenancy.filtersets import TenancyFilterSet
|
||||||
from utilities.filters import TreeNodeMultipleChoiceFilter
|
from utilities.filters import TreeNodeMultipleChoiceFilter
|
||||||
|
from utilities.filtersets import register_filterset
|
||||||
from .choices import *
|
from .choices import *
|
||||||
from .models import *
|
from .models import *
|
||||||
|
|
||||||
@ -18,6 +19,7 @@ __all__ = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class WirelessLANGroupFilterSet(NestedGroupModelFilterSet):
|
class WirelessLANGroupFilterSet(NestedGroupModelFilterSet):
|
||||||
parent_id = django_filters.ModelMultipleChoiceFilter(
|
parent_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=WirelessLANGroup.objects.all()
|
queryset=WirelessLANGroup.objects.all()
|
||||||
@ -44,6 +46,7 @@ class WirelessLANGroupFilterSet(NestedGroupModelFilterSet):
|
|||||||
fields = ('id', 'name', 'slug', 'description')
|
fields = ('id', 'name', 'slug', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class WirelessLANFilterSet(PrimaryModelFilterSet, ScopedFilterSet, TenancyFilterSet):
|
class WirelessLANFilterSet(PrimaryModelFilterSet, ScopedFilterSet, TenancyFilterSet):
|
||||||
group_id = TreeNodeMultipleChoiceFilter(
|
group_id = TreeNodeMultipleChoiceFilter(
|
||||||
queryset=WirelessLANGroup.objects.all(),
|
queryset=WirelessLANGroup.objects.all(),
|
||||||
@ -87,6 +90,7 @@ class WirelessLANFilterSet(PrimaryModelFilterSet, ScopedFilterSet, TenancyFilter
|
|||||||
return queryset.filter(qs_filter)
|
return queryset.filter(qs_filter)
|
||||||
|
|
||||||
|
|
||||||
|
@register_filterset
|
||||||
class WirelessLinkFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
class WirelessLinkFilterSet(PrimaryModelFilterSet, TenancyFilterSet):
|
||||||
interface_a_id = django_filters.ModelMultipleChoiceFilter(
|
interface_a_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=Interface.objects.all()
|
queryset=Interface.objects.all()
|
||||||
|
|||||||
@ -6,7 +6,7 @@ from dcim.models import Location, Region, Site, SiteGroup
|
|||||||
from netbox.choices import *
|
from netbox.choices import *
|
||||||
from netbox.forms import NestedGroupModelFilterSetForm, PrimaryModelFilterSetForm
|
from netbox.forms import NestedGroupModelFilterSetForm, PrimaryModelFilterSetForm
|
||||||
from tenancy.forms import TenancyFilterForm
|
from tenancy.forms import TenancyFilterForm
|
||||||
from utilities.forms import add_blank_choice, register_filterset
|
from utilities.forms import add_blank_choice
|
||||||
from utilities.forms.fields import DynamicModelMultipleChoiceField, TagFilterField
|
from utilities.forms.fields import DynamicModelMultipleChoiceField, TagFilterField
|
||||||
from utilities.forms.rendering import FieldSet
|
from utilities.forms.rendering import FieldSet
|
||||||
from wireless.choices import *
|
from wireless.choices import *
|
||||||
@ -20,7 +20,6 @@ __all__ = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(WirelessLANGroupFilterSet)
|
|
||||||
class WirelessLANGroupFilterForm(NestedGroupModelFilterSetForm):
|
class WirelessLANGroupFilterForm(NestedGroupModelFilterSetForm):
|
||||||
model = WirelessLANGroup
|
model = WirelessLANGroup
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -35,7 +34,6 @@ class WirelessLANGroupFilterForm(NestedGroupModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(WirelessLANFilterSet)
|
|
||||||
class WirelessLANFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
class WirelessLANFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = WirelessLAN
|
model = WirelessLAN
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
@ -102,7 +100,6 @@ class WirelessLANFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
|||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
|
|
||||||
@register_filterset(WirelessLinkFilterSet)
|
|
||||||
class WirelessLinkFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
class WirelessLinkFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm):
|
||||||
model = WirelessLink
|
model = WirelessLink
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user