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 extras.graphql.filters import *
|
||||||
from ipam.graphql.filters import *
|
from ipam.graphql.filters import *
|
||||||
|
|
||||||
__all__ = [
|
__all__ = (
|
||||||
'ComponentModelFilterMixin',
|
|
||||||
'ModularComponentModelFilterMixin',
|
|
||||||
'CabledObjectModelFilterMixin',
|
'CabledObjectModelFilterMixin',
|
||||||
|
'ComponentModelFilterMixin',
|
||||||
'ComponentTemplateFilterMixin',
|
'ComponentTemplateFilterMixin',
|
||||||
'ModularComponentTemplateFilterMixin',
|
|
||||||
'RenderConfigFilterMixin',
|
|
||||||
'InterfaceBaseFilterMixin',
|
'InterfaceBaseFilterMixin',
|
||||||
|
'ModularComponentModelFilterMixin',
|
||||||
|
'ModularComponentTemplateFilterMixin',
|
||||||
'RackBaseFilterMixin',
|
'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
|
@dataclass
|
||||||
|
@ -11,9 +11,9 @@ from strawberry_django import (
|
|||||||
DateFilterLookup,
|
DateFilterLookup,
|
||||||
)
|
)
|
||||||
from core.graphql.filter_mixins import *
|
from core.graphql.filter_mixins import *
|
||||||
|
from dcim.graphql.filter_mixins import ScopedFilterMixin
|
||||||
from netbox.graphql.filter_mixins import *
|
from netbox.graphql.filter_mixins import *
|
||||||
from tenancy.graphql.filter_mixins import *
|
from tenancy.graphql.filter_mixins import *
|
||||||
|
|
||||||
from ipam import models
|
from ipam import models
|
||||||
from ipam.graphql.filter_mixins import *
|
from ipam.graphql.filter_mixins import *
|
||||||
|
|
||||||
@ -191,7 +191,7 @@ class IPRangeFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMi
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.Prefix, lookups=True)
|
@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()
|
prefix: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
vrf: Annotated['VRFFilter', strawberry.lazy('ipam.graphql.filters')] | 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()
|
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()
|
role_id: ID | None = strawberry_django.filter_field()
|
||||||
is_pool: FilterLookup[bool] | None = strawberry_django.filter_field()
|
is_pool: FilterLookup[bool] | None = strawberry_django.filter_field()
|
||||||
mark_utilized: 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)
|
@strawberry_django.filter(models.RIR, lookups=True)
|
||||||
@ -278,12 +274,7 @@ class VLANFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.VLANGroup, lookups=True)
|
@strawberry_django.filter(models.VLANGroup, lookups=True)
|
||||||
class VLANGroupFilter(OrganizationalModelFilterMixin):
|
class VLANGroupFilter(ScopedFilterMixin, 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()
|
|
||||||
vid_ranges: Annotated['IntegerArrayLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
vid_ranges: Annotated['IntegerArrayLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
@ -40,7 +40,7 @@ __all__ = (
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.Cluster, lookups=True)
|
@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()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
type: Annotated['ClusterTypeFilter', strawberry.lazy('virtualization.graphql.filters')] | None = (
|
type: Annotated['ClusterTypeFilter', strawberry.lazy('virtualization.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
|
@ -5,6 +5,7 @@ import strawberry_django
|
|||||||
from strawberry_django import (
|
from strawberry_django import (
|
||||||
FilterLookup,
|
FilterLookup,
|
||||||
)
|
)
|
||||||
|
from dcim.graphql.filter_mixins import ScopedFilterMixin
|
||||||
from extras.graphql.filter_mixins import *
|
from extras.graphql.filter_mixins import *
|
||||||
from netbox.graphql.filter_mixins import *
|
from netbox.graphql.filter_mixins import *
|
||||||
from core.graphql.filter_mixins import *
|
from core.graphql.filter_mixins import *
|
||||||
@ -41,7 +42,12 @@ class WirelessLANGroupFilter(NestedGroupModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.WirelessLAN, lookups=True)
|
@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()
|
ssid: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
group: Annotated['WirelessLANGroupFilter', strawberry.lazy('wireless.graphql.filters')] | None = (
|
group: Annotated['WirelessLANGroupFilter', strawberry.lazy('wireless.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
|
Loading…
Reference in New Issue
Block a user