Coverage for tenancy/api/views.py: 97%

32 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-10 18:35 +0000

1from rest_framework.routers import APIRootView 

2 

3from netbox.api.viewsets import NetBoxModelViewSet 

4from tenancy import filtersets 

5from tenancy.models import * 

6 

7from . import serializers 

8 

9 

10class TenancyRootView(APIRootView): 

11 """ 

12 Tenancy API root view 

13 """ 

14 def get_view_name(self): 

15 return 'Tenancy' 

16 

17 

18# 

19# Tenants 

20# 

21 

22class TenantGroupViewSet(NetBoxModelViewSet): 

23 queryset = TenantGroup.objects.add_related_count( 

24 TenantGroup.objects.all(), 

25 Tenant, 

26 'group', 

27 'tenant_count', 

28 cumulative=True 

29 ) 

30 serializer_class = serializers.TenantGroupSerializer 

31 filterset_class = filtersets.TenantGroupFilterSet 

32 

33 

34class TenantViewSet(NetBoxModelViewSet): 

35 queryset = Tenant.objects.all() 

36 serializer_class = serializers.TenantSerializer 

37 filterset_class = filtersets.TenantFilterSet 

38 

39 

40# 

41# Contacts 

42# 

43 

44class ContactGroupViewSet(NetBoxModelViewSet): 

45 queryset = ContactGroup.objects.annotate_contacts() 

46 serializer_class = serializers.ContactGroupSerializer 

47 filterset_class = filtersets.ContactGroupFilterSet 

48 

49 

50class ContactRoleViewSet(NetBoxModelViewSet): 

51 queryset = ContactRole.objects.all() 

52 serializer_class = serializers.ContactRoleSerializer 

53 filterset_class = filtersets.ContactRoleFilterSet 

54 

55 

56class ContactViewSet(NetBoxModelViewSet): 

57 queryset = Contact.objects.all() 

58 serializer_class = serializers.ContactSerializer 

59 filterset_class = filtersets.ContactFilterSet 

60 

61 

62class ContactAssignmentViewSet(NetBoxModelViewSet): 

63 queryset = ContactAssignment.objects.all() 

64 serializer_class = serializers.ContactAssignmentSerializer 

65 filterset_class = filtersets.ContactAssignmentFilterSet