Coverage for wireless/graphql/filters.py: 89%
35 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
1from typing import TYPE_CHECKING, Annotated
3import strawberry
4import strawberry_django
5from strawberry.scalars import ID
6from strawberry_django import BaseFilterLookup, StrFilterLookup
8from dcim.graphql.filter_mixins import ScopedFilterMixin
9from netbox.graphql.filter_mixins import DistanceFilterMixin
10from netbox.graphql.filters import NestedGroupModelFilter, PrimaryModelFilter, register_filter
11from tenancy.graphql.filter_mixins import TenancyFilterMixin
12from wireless import models
14from .filter_mixins import WirelessAuthenticationFilterMixin
16if TYPE_CHECKING: 16 ↛ 17line 16 didn't jump to line 17 because the condition on line 16 was never true
17 from dcim.graphql.filters import InterfaceFilter
18 from ipam.graphql.filters import VLANFilter
20 from .enums import *
22__all__ = (
23 'WirelessLANFilter',
24 'WirelessLANGroupFilter',
25 'WirelessLinkFilter',
26)
29@register_filter(models.WirelessLANGroup, lookups=True)
30class WirelessLANGroupFilter(NestedGroupModelFilter):
31 pass
34@register_filter(models.WirelessLAN, lookups=True)
35class WirelessLANFilter(
36 WirelessAuthenticationFilterMixin,
37 ScopedFilterMixin,
38 TenancyFilterMixin,
39 PrimaryModelFilter
40):
41 ssid: StrFilterLookup | None = strawberry_django.filter_field()
42 status: BaseFilterLookup[Annotated['WirelessLANStatusEnum', strawberry.lazy('wireless.graphql.enums')]] | None = (
43 strawberry_django.filter_field()
44 )
45 group: Annotated['WirelessLANGroupFilter', strawberry.lazy('wireless.graphql.filters')] | None = (
46 strawberry_django.filter_field()
47 )
48 group_id: ID | None = strawberry_django.filter_field()
49 vlan: Annotated['VLANFilter', strawberry.lazy('ipam.graphql.filters')] | None = strawberry_django.filter_field()
50 vlan_id: ID | None = strawberry_django.filter_field()
53@register_filter(models.WirelessLink, lookups=True)
54class WirelessLinkFilter(
55 WirelessAuthenticationFilterMixin,
56 DistanceFilterMixin,
57 TenancyFilterMixin,
58 PrimaryModelFilter
59):
60 interface_a: Annotated['InterfaceFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
61 strawberry_django.filter_field()
62 )
63 interface_a_id: ID | None = strawberry_django.filter_field()
64 interface_b: Annotated['InterfaceFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
65 strawberry_django.filter_field()
66 )
67 interface_b_id: ID | None = strawberry_django.filter_field()
68 ssid: StrFilterLookup | None = strawberry_django.filter_field()
69 status: BaseFilterLookup[Annotated['WirelessLANStatusEnum', strawberry.lazy('wireless.graphql.enums')]] | None = (
70 strawberry_django.filter_field()
71 )