mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-27 10:58:37 -06:00
Introduce ScopedFilterMixin
This commit is contained in:
parent
5fcf32cc9e
commit
380c9c1041
@ -14,16 +14,25 @@ if TYPE_CHECKING:
|
||||
from extras.graphql.filters import *
|
||||
from ipam.graphql.filters import *
|
||||
|
||||
__all__ = [
|
||||
'ComponentModelFilterMixin',
|
||||
'ModularComponentModelFilterMixin',
|
||||
__all__ = (
|
||||
'CabledObjectModelFilterMixin',
|
||||
'ComponentModelFilterMixin',
|
||||
'ComponentTemplateFilterMixin',
|
||||
'ModularComponentTemplateFilterMixin',
|
||||
'RenderConfigFilterMixin',
|
||||
'InterfaceBaseFilterMixin',
|
||||
'ModularComponentModelFilterMixin',
|
||||
'ModularComponentTemplateFilterMixin',
|
||||
'RackBaseFilterMixin',
|
||||
]
|
||||
'RenderConfigFilterMixin',
|
||||
'ScopedFilterMixin',
|
||||
)
|
||||
|
||||
|
||||
@dataclass
|
||||
class ScopedFilterMixin(BaseFilterMixin):
|
||||
scope_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
scope_id: ID | None = strawberry_django.filter_field()
|
||||
|
||||
|
||||
@dataclass
|
||||
|
@ -11,9 +11,9 @@ from strawberry_django import (
|
||||
DateFilterLookup,
|
||||
)
|
||||
from core.graphql.filter_mixins import *
|
||||
from dcim.graphql.filter_mixins import ScopedFilterMixin
|
||||
from netbox.graphql.filter_mixins import *
|
||||
from tenancy.graphql.filter_mixins import *
|
||||
|
||||
from ipam import models
|
||||
from ipam.graphql.filter_mixins import *
|
||||
|
||||
@ -191,7 +191,7 @@ class IPRangeFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMi
|
||||
|
||||
|
||||
@strawberry_django.filter(models.Prefix, lookups=True)
|
||||
class PrefixFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
|
||||
class PrefixFilter(ContactFilterMixin, ScopedFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
|
||||
prefix: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||
vrf: Annotated['VRFFilter', strawberry.lazy('ipam.graphql.filters')] | None = strawberry_django.filter_field()
|
||||
vrf_id: ID | None = strawberry_django.filter_field()
|
||||
@ -204,10 +204,6 @@ class PrefixFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMix
|
||||
role_id: ID | None = strawberry_django.filter_field()
|
||||
is_pool: FilterLookup[bool] | None = strawberry_django.filter_field()
|
||||
mark_utilized: FilterLookup[bool] | None = strawberry_django.filter_field()
|
||||
scope_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
scope_id: ID | None = strawberry_django.filter_field()
|
||||
|
||||
|
||||
@strawberry_django.filter(models.RIR, lookups=True)
|
||||
@ -278,12 +274,7 @@ class VLANFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
|
||||
|
||||
|
||||
@strawberry_django.filter(models.VLANGroup, lookups=True)
|
||||
class VLANGroupFilter(OrganizationalModelFilterMixin):
|
||||
scope_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
scope_type_id: ID | None = strawberry_django.filter_field()
|
||||
scope_id: ID | None = strawberry_django.filter_field()
|
||||
class VLANGroupFilter(ScopedFilterMixin, OrganizationalModelFilterMixin):
|
||||
vid_ranges: Annotated['IntegerArrayLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
|
@ -40,7 +40,7 @@ __all__ = (
|
||||
|
||||
|
||||
@strawberry_django.filter(models.Cluster, lookups=True)
|
||||
class ClusterFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
|
||||
class ClusterFilter(ContactFilterMixin, ScopedFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
|
||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||
type: Annotated['ClusterTypeFilter', strawberry.lazy('virtualization.graphql.filters')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
|
@ -5,6 +5,7 @@ import strawberry_django
|
||||
from strawberry_django import (
|
||||
FilterLookup,
|
||||
)
|
||||
from dcim.graphql.filter_mixins import ScopedFilterMixin
|
||||
from extras.graphql.filter_mixins import *
|
||||
from netbox.graphql.filter_mixins import *
|
||||
from core.graphql.filter_mixins import *
|
||||
@ -41,7 +42,12 @@ class WirelessLANGroupFilter(NestedGroupModelFilterMixin):
|
||||
|
||||
|
||||
@strawberry_django.filter(models.WirelessLAN, lookups=True)
|
||||
class WirelessLANFilter(WirelessAuthenticationBaseFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
|
||||
class WirelessLANFilter(
|
||||
WirelessAuthenticationBaseFilterMixin,
|
||||
ScopedFilterMixin,
|
||||
TenancyFilterMixin,
|
||||
PrimaryModelFilterMixin
|
||||
):
|
||||
ssid: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||
group: Annotated['WirelessLANGroupFilter', strawberry.lazy('wireless.graphql.filters')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
|
Loading…
Reference in New Issue
Block a user