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
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
1from rest_framework.routers import APIRootView
3from netbox.api.viewsets import NetBoxModelViewSet
4from tenancy import filtersets
5from tenancy.models import *
7from . import serializers
10class TenancyRootView(APIRootView):
11 """
12 Tenancy API root view
13 """
14 def get_view_name(self):
15 return 'Tenancy'
18#
19# Tenants
20#
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
34class TenantViewSet(NetBoxModelViewSet):
35 queryset = Tenant.objects.all()
36 serializer_class = serializers.TenantSerializer
37 filterset_class = filtersets.TenantFilterSet
40#
41# Contacts
42#
44class ContactGroupViewSet(NetBoxModelViewSet):
45 queryset = ContactGroup.objects.annotate_contacts()
46 serializer_class = serializers.ContactGroupSerializer
47 filterset_class = filtersets.ContactGroupFilterSet
50class ContactRoleViewSet(NetBoxModelViewSet):
51 queryset = ContactRole.objects.all()
52 serializer_class = serializers.ContactRoleSerializer
53 filterset_class = filtersets.ContactRoleFilterSet
56class ContactViewSet(NetBoxModelViewSet):
57 queryset = Contact.objects.all()
58 serializer_class = serializers.ContactSerializer
59 filterset_class = filtersets.ContactFilterSet
62class ContactAssignmentViewSet(NetBoxModelViewSet):
63 queryset = ContactAssignment.objects.all()
64 serializer_class = serializers.ContactAssignmentSerializer
65 filterset_class = filtersets.ContactAssignmentFilterSet