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

1from typing import Annotated 

2 

3import strawberry 

4import strawberry_django 

5from strawberry_django import DatetimeFilterLookup, FilterLookup, StrFilterLookup 

6 

7from netbox.graphql.filters import BaseModelFilter, register_filter 

8from users import models 

9 

10__all__ = ( 

11 'GroupFilter', 

12 'OwnerFilter', 

13 'OwnerGroupFilter', 

14 'UserFilter', 

15) 

16 

17 

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() 

22 

23 

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() 

35 

36 

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() 

48 

49 

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()