views.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. from rest_framework.routers import APIRootView
  2. from netbox.api.viewsets import NetBoxModelViewSet, MPTTLockedMixin
  3. from tenancy import filtersets
  4. from tenancy.models import *
  5. from . import serializers
  6. class TenancyRootView(APIRootView):
  7. """
  8. Tenancy API root view
  9. """
  10. def get_view_name(self):
  11. return 'Tenancy'
  12. #
  13. # Tenants
  14. #
  15. class TenantGroupViewSet(MPTTLockedMixin, NetBoxModelViewSet):
  16. queryset = TenantGroup.objects.add_related_count(
  17. TenantGroup.objects.all(),
  18. Tenant,
  19. 'group',
  20. 'tenant_count',
  21. cumulative=True
  22. )
  23. serializer_class = serializers.TenantGroupSerializer
  24. filterset_class = filtersets.TenantGroupFilterSet
  25. class TenantViewSet(NetBoxModelViewSet):
  26. queryset = Tenant.objects.all()
  27. serializer_class = serializers.TenantSerializer
  28. filterset_class = filtersets.TenantFilterSet
  29. #
  30. # Contacts
  31. #
  32. class ContactGroupViewSet(MPTTLockedMixin, NetBoxModelViewSet):
  33. queryset = ContactGroup.objects.add_related_count(
  34. ContactGroup.objects.all(),
  35. Contact,
  36. 'groups',
  37. 'contact_count',
  38. cumulative=True
  39. )
  40. serializer_class = serializers.ContactGroupSerializer
  41. filterset_class = filtersets.ContactGroupFilterSet
  42. class ContactRoleViewSet(NetBoxModelViewSet):
  43. queryset = ContactRole.objects.all()
  44. serializer_class = serializers.ContactRoleSerializer
  45. filterset_class = filtersets.ContactRoleFilterSet
  46. class ContactViewSet(NetBoxModelViewSet):
  47. queryset = Contact.objects.all()
  48. serializer_class = serializers.ContactSerializer
  49. filterset_class = filtersets.ContactFilterSet
  50. class ContactAssignmentViewSet(NetBoxModelViewSet):
  51. queryset = ContactAssignment.objects.all()
  52. serializer_class = serializers.ContactAssignmentSerializer
  53. filterset_class = filtersets.ContactAssignmentFilterSet