2020-08-13 12:45:38 -04:00
|
|
|
from rest_framework.routers import APIRootView
|
|
|
|
|
2023-10-17 07:35:01 -07:00
|
|
|
from netbox.api.viewsets import NetBoxModelViewSet, MPTTLockedMixin
|
2021-04-29 16:38:56 -04:00
|
|
|
from tenancy import filtersets
|
2021-10-18 11:45:05 -04:00
|
|
|
from tenancy.models import *
|
2016-07-26 14:58:37 -04:00
|
|
|
from . import serializers
|
|
|
|
|
|
|
|
|
2020-08-13 12:45:38 -04:00
|
|
|
class TenancyRootView(APIRootView):
|
|
|
|
"""
|
|
|
|
Tenancy API root view
|
|
|
|
"""
|
|
|
|
def get_view_name(self):
|
|
|
|
return 'Tenancy'
|
|
|
|
|
|
|
|
|
2017-01-24 17:12:16 -05:00
|
|
|
#
|
2021-10-18 11:45:05 -04:00
|
|
|
# Tenants
|
2017-01-24 17:12:16 -05:00
|
|
|
#
|
2016-07-26 14:58:37 -04:00
|
|
|
|
2023-10-17 07:35:01 -07:00
|
|
|
class TenantGroupViewSet(MPTTLockedMixin, NetBoxModelViewSet):
|
2020-07-20 12:07:19 -04:00
|
|
|
queryset = TenantGroup.objects.add_related_count(
|
|
|
|
TenantGroup.objects.all(),
|
|
|
|
Tenant,
|
|
|
|
'group',
|
|
|
|
'tenant_count',
|
|
|
|
cumulative=True
|
2024-02-14 09:28:37 -05:00
|
|
|
)
|
2016-07-26 14:58:37 -04:00
|
|
|
serializer_class = serializers.TenantGroupSerializer
|
2021-04-29 16:38:56 -04:00
|
|
|
filterset_class = filtersets.TenantGroupFilterSet
|
2016-07-26 14:58:37 -04:00
|
|
|
|
|
|
|
|
2022-03-09 11:44:55 -05:00
|
|
|
class TenantViewSet(NetBoxModelViewSet):
|
2024-02-15 14:49:27 -05:00
|
|
|
queryset = Tenant.objects.all()
|
2016-07-26 14:58:37 -04:00
|
|
|
serializer_class = serializers.TenantSerializer
|
2021-04-29 16:38:56 -04:00
|
|
|
filterset_class = filtersets.TenantFilterSet
|
2021-10-18 11:45:05 -04:00
|
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
# Contacts
|
|
|
|
#
|
|
|
|
|
2023-10-17 07:35:01 -07:00
|
|
|
class ContactGroupViewSet(MPTTLockedMixin, NetBoxModelViewSet):
|
2021-10-18 11:45:05 -04:00
|
|
|
queryset = ContactGroup.objects.add_related_count(
|
|
|
|
ContactGroup.objects.all(),
|
|
|
|
Contact,
|
|
|
|
'group',
|
|
|
|
'contact_count',
|
|
|
|
cumulative=True
|
2024-02-14 09:28:37 -05:00
|
|
|
)
|
2021-10-18 11:45:05 -04:00
|
|
|
serializer_class = serializers.ContactGroupSerializer
|
|
|
|
filterset_class = filtersets.ContactGroupFilterSet
|
|
|
|
|
|
|
|
|
2022-03-09 11:44:55 -05:00
|
|
|
class ContactRoleViewSet(NetBoxModelViewSet):
|
2024-02-14 09:28:37 -05:00
|
|
|
queryset = ContactRole.objects.all()
|
2021-10-18 11:45:05 -04:00
|
|
|
serializer_class = serializers.ContactRoleSerializer
|
|
|
|
filterset_class = filtersets.ContactRoleFilterSet
|
|
|
|
|
|
|
|
|
2022-03-09 11:44:55 -05:00
|
|
|
class ContactViewSet(NetBoxModelViewSet):
|
2024-02-14 09:28:37 -05:00
|
|
|
queryset = Contact.objects.all()
|
2021-10-18 11:45:05 -04:00
|
|
|
serializer_class = serializers.ContactSerializer
|
|
|
|
filterset_class = filtersets.ContactFilterSet
|
|
|
|
|
|
|
|
|
2022-03-09 11:44:55 -05:00
|
|
|
class ContactAssignmentViewSet(NetBoxModelViewSet):
|
2024-02-14 09:28:37 -05:00
|
|
|
queryset = ContactAssignment.objects.all()
|
2021-10-18 11:45:05 -04:00
|
|
|
serializer_class = serializers.ContactAssignmentSerializer
|
|
|
|
filterset_class = filtersets.ContactAssignmentFilterSet
|