Просмотр исходного кода

Rename ContentTypes REST API endpoint & resources

Jeremy Stretch 1 год назад
Родитель
Сommit
5552f2a7dd

+ 1 - 1
netbox/extras/api/serializers.py

@@ -1,7 +1,7 @@
+from .serializers_.objecttypes import *
 from .serializers_.attachments import *
 from .serializers_.attachments import *
 from .serializers_.bookmarks import *
 from .serializers_.bookmarks import *
 from .serializers_.change_logging import *
 from .serializers_.change_logging import *
-from .serializers_.contenttypes import *
 from .serializers_.customfields import *
 from .serializers_.customfields import *
 from .serializers_.customlinks import *
 from .serializers_.customlinks import *
 from .serializers_.dashboard import *
 from .serializers_.dashboard import *

+ 3 - 3
netbox/extras/api/serializers_/contenttypes.py → netbox/extras/api/serializers_/objecttypes.py

@@ -4,12 +4,12 @@ from core.models import ObjectType
 from netbox.api.serializers import BaseModelSerializer
 from netbox.api.serializers import BaseModelSerializer
 
 
 __all__ = (
 __all__ = (
-    'ContentTypeSerializer',
+    'ObjectTypeSerializer',
 )
 )
 
 
 
 
-class ContentTypeSerializer(BaseModelSerializer):
-    url = serializers.HyperlinkedIdentityField(view_name='extras-api:contenttype-detail')
+class ObjectTypeSerializer(BaseModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='extras-api:objecttype-detail')
 
 
     class Meta:
     class Meta:
         model = ObjectType
         model = ObjectType

+ 1 - 1
netbox/extras/api/urls.py

@@ -22,7 +22,7 @@ router.register('config-contexts', views.ConfigContextViewSet)
 router.register('config-templates', views.ConfigTemplateViewSet)
 router.register('config-templates', views.ConfigTemplateViewSet)
 router.register('scripts', views.ScriptViewSet, basename='script')
 router.register('scripts', views.ScriptViewSet, basename='script')
 router.register('object-changes', views.ObjectChangeViewSet)
 router.register('object-changes', views.ObjectChangeViewSet)
-router.register('content-types', views.ContentTypeViewSet)
+router.register('object-types', views.ObjectTypeViewSet)
 
 
 app_name = 'extras-api'
 app_name = 'extras-api'
 urlpatterns = [
 urlpatterns = [

+ 7 - 8
netbox/extras/api/views.py

@@ -1,4 +1,3 @@
-from django.contrib.contenttypes.models import ContentType
 from django.shortcuts import get_object_or_404
 from django.shortcuts import get_object_or_404
 from django_rq.queues import get_connection
 from django_rq.queues import get_connection
 from rest_framework import status
 from rest_framework import status
@@ -11,7 +10,7 @@ from rest_framework.routers import APIRootView
 from rest_framework.viewsets import ModelViewSet, ReadOnlyModelViewSet
 from rest_framework.viewsets import ModelViewSet, ReadOnlyModelViewSet
 from rq import Worker
 from rq import Worker
 
 
-from core.models import Job
+from core.models import Job, ObjectType
 from extras import filtersets
 from extras import filtersets
 from extras.models import *
 from extras.models import *
 from extras.scripts import run_script
 from extras.scripts import run_script
@@ -275,17 +274,17 @@ class ObjectChangeViewSet(ReadOnlyModelViewSet):
 
 
 
 
 #
 #
-# ContentTypes
+# Object types
 #
 #
 
 
-class ContentTypeViewSet(ReadOnlyModelViewSet):
+class ObjectTypeViewSet(ReadOnlyModelViewSet):
     """
     """
-    Read-only list of ContentTypes. Limit results to ContentTypes pertinent to NetBox objects.
+    Read-only list of ObjectTypes.
     """
     """
     permission_classes = [IsAuthenticatedOrLoginNotRequired]
     permission_classes = [IsAuthenticatedOrLoginNotRequired]
-    queryset = ContentType.objects.order_by('app_label', 'model')
-    serializer_class = serializers.ContentTypeSerializer
-    filterset_class = filtersets.ContentTypeFilterSet
+    queryset = ObjectType.objects.order_by('app_label', 'model')
+    serializer_class = serializers.ObjectTypeSerializer
+    filterset_class = filtersets.ObjectTypeFilterSet
 
 
 
 
 #
 #

+ 4 - 4
netbox/extras/filtersets.py

@@ -4,7 +4,7 @@ from django.contrib.contenttypes.models import ContentType
 from django.db.models import Q
 from django.db.models import Q
 from django.utils.translation import gettext as _
 from django.utils.translation import gettext as _
 
 
-from core.models import DataSource
+from core.models import DataSource, ObjectType
 from dcim.models import DeviceRole, DeviceType, Location, Platform, Region, Site, SiteGroup
 from dcim.models import DeviceRole, DeviceType, Location, Platform, Region, Site, SiteGroup
 from netbox.filtersets import BaseFilterSet, ChangeLoggedModelFilterSet, NetBoxModelFilterSet
 from netbox.filtersets import BaseFilterSet, ChangeLoggedModelFilterSet, NetBoxModelFilterSet
 from tenancy.models import Tenant, TenantGroup
 from tenancy.models import Tenant, TenantGroup
@@ -18,7 +18,6 @@ __all__ = (
     'BookmarkFilterSet',
     'BookmarkFilterSet',
     'ConfigContextFilterSet',
     'ConfigContextFilterSet',
     'ConfigTemplateFilterSet',
     'ConfigTemplateFilterSet',
-    'ContentTypeFilterSet',
     'CustomFieldChoiceSetFilterSet',
     'CustomFieldChoiceSetFilterSet',
     'CustomFieldFilterSet',
     'CustomFieldFilterSet',
     'CustomLinkFilterSet',
     'CustomLinkFilterSet',
@@ -28,6 +27,7 @@ __all__ = (
     'JournalEntryFilterSet',
     'JournalEntryFilterSet',
     'LocalConfigContextFilterSet',
     'LocalConfigContextFilterSet',
     'ObjectChangeFilterSet',
     'ObjectChangeFilterSet',
+    'ObjectTypeFilterSet',
     'SavedFilterFilterSet',
     'SavedFilterFilterSet',
     'ScriptFilterSet',
     'ScriptFilterSet',
     'TagFilterSet',
     'TagFilterSet',
@@ -662,14 +662,14 @@ class ObjectChangeFilterSet(BaseFilterSet):
 # ContentTypes
 # ContentTypes
 #
 #
 
 
-class ContentTypeFilterSet(django_filters.FilterSet):
+class ObjectTypeFilterSet(django_filters.FilterSet):
     q = django_filters.CharFilter(
     q = django_filters.CharFilter(
         method='search',
         method='search',
         label=_('Search'),
         label=_('Search'),
     )
     )
 
 
     class Meta:
     class Meta:
-        model = ContentType
+        model = ObjectType
         fields = ['id', 'app_label', 'model']
         fields = ['id', 'app_label', 'model']
 
 
     def search(self, queryset, name, value):
     def search(self, queryset, name, value):

+ 6 - 6
netbox/extras/tests/test_api.py

@@ -876,17 +876,17 @@ class CreatedUpdatedFilterTest(APITestCase):
         self.assertEqual(response.data['results'][0]['id'], rack2.pk)
         self.assertEqual(response.data['results'][0]['id'], rack2.pk)
 
 
 
 
-class ContentTypeTest(APITestCase):
+class ObjectTypeTest(APITestCase):
 
 
     def test_list_objects(self):
     def test_list_objects(self):
-        contenttype_count = ContentType.objects.count()
+        object_type_count = ObjectType.objects.count()
 
 
-        response = self.client.get(reverse('extras-api:contenttype-list'), **self.header)
+        response = self.client.get(reverse('extras-api:objecttype-list'), **self.header)
         self.assertHttpStatus(response, status.HTTP_200_OK)
         self.assertHttpStatus(response, status.HTTP_200_OK)
-        self.assertEqual(response.data['count'], contenttype_count)
+        self.assertEqual(response.data['count'], object_type_count)
 
 
     def test_get_object(self):
     def test_get_object(self):
-        contenttype = ContentType.objects.first()
+        object_type = ObjectType.objects.first()
 
 
-        url = reverse('extras-api:contenttype-detail', kwargs={'pk': contenttype.pk})
+        url = reverse('extras-api:objecttype-detail', kwargs={'pk': object_type.pk})
         self.assertHttpStatus(self.client.get(url, **self.header), status.HTTP_200_OK)
         self.assertHttpStatus(self.client.get(url, **self.header), status.HTTP_200_OK)