Coverage for users/graphql/filters.py: 100%
33 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 Annotated
3import strawberry
4import strawberry_django
5from strawberry_django import DatetimeFilterLookup, FilterLookup, StrFilterLookup
7from netbox.graphql.filters import BaseModelFilter, register_filter
8from users import models
10__all__ = (
11 'GroupFilter',
12 'OwnerFilter',
13 'OwnerGroupFilter',
14 'UserFilter',
15)
18@register_filter(models.Group, lookups=True)
19class GroupFilter(BaseModelFilter):
20 name: StrFilterLookup | None = strawberry_django.filter_field()
21 description: StrFilterLookup | None = strawberry_django.filter_field()
24@register_filter(models.User, lookups=True)
25class UserFilter(BaseModelFilter):
26 username: StrFilterLookup | None = strawberry_django.filter_field()
27 first_name: StrFilterLookup | None = strawberry_django.filter_field()
28 last_name: StrFilterLookup | None = strawberry_django.filter_field()
29 email: StrFilterLookup | None = strawberry_django.filter_field()
30 is_superuser: FilterLookup[bool] | None = strawberry_django.filter_field()
31 is_active: FilterLookup[bool] | None = strawberry_django.filter_field()
32 date_joined: DatetimeFilterLookup | None = strawberry_django.filter_field()
33 last_login: DatetimeFilterLookup | None = strawberry_django.filter_field()
34 groups: Annotated['GroupFilter', strawberry.lazy('users.graphql.filters')] | None = strawberry_django.filter_field()
37@register_filter(models.Owner, lookups=True)
38class OwnerFilter(BaseModelFilter):
39 name: StrFilterLookup | None = strawberry_django.filter_field()
40 description: StrFilterLookup | None = strawberry_django.filter_field()
41 group: Annotated['OwnerGroupFilter', strawberry.lazy('users.graphql.filters')] | None = (
42 strawberry_django.filter_field()
43 )
44 user_groups: Annotated['GroupFilter', strawberry.lazy('users.graphql.filters')] | None = (
45 strawberry_django.filter_field()
46 )
47 users: Annotated['UserFilter', strawberry.lazy('users.graphql.filters')] | None = strawberry_django.filter_field()
50@register_filter(models.OwnerGroup, lookups=True)
51class OwnerGroupFilter(BaseModelFilter):
52 name: StrFilterLookup | None = strawberry_django.filter_field()
53 description: StrFilterLookup | None = strawberry_django.filter_field()