diff --git a/netbox/extras/api/serializers.py b/netbox/extras/api/serializers.py index 809bd78ed..bd19b3184 100644 --- a/netbox/extras/api/serializers.py +++ b/netbox/extras/api/serializers.py @@ -1,7 +1,7 @@ +from .serializers_.objecttypes import * from .serializers_.attachments import * from .serializers_.bookmarks import * from .serializers_.change_logging import * -from .serializers_.contenttypes import * from .serializers_.customfields import * from .serializers_.customlinks import * from .serializers_.dashboard import * diff --git a/netbox/extras/api/serializers_/contenttypes.py b/netbox/extras/api/serializers_/objecttypes.py similarity index 75% rename from netbox/extras/api/serializers_/contenttypes.py rename to netbox/extras/api/serializers_/objecttypes.py index 75d25a5bf..8e4806652 100644 --- a/netbox/extras/api/serializers_/contenttypes.py +++ b/netbox/extras/api/serializers_/objecttypes.py @@ -4,12 +4,12 @@ from core.models import ObjectType from netbox.api.serializers import BaseModelSerializer __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: model = ObjectType diff --git a/netbox/extras/api/urls.py b/netbox/extras/api/urls.py index 68b4488bc..301cc1b0a 100644 --- a/netbox/extras/api/urls.py +++ b/netbox/extras/api/urls.py @@ -22,7 +22,7 @@ router.register('config-contexts', views.ConfigContextViewSet) router.register('config-templates', views.ConfigTemplateViewSet) router.register('scripts', views.ScriptViewSet, basename='script') router.register('object-changes', views.ObjectChangeViewSet) -router.register('content-types', views.ContentTypeViewSet) +router.register('object-types', views.ObjectTypeViewSet) app_name = 'extras-api' urlpatterns = [ diff --git a/netbox/extras/api/views.py b/netbox/extras/api/views.py index 72450f9c9..3439f6f3f 100644 --- a/netbox/extras/api/views.py +++ b/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_rq.queues import get_connection from rest_framework import status @@ -11,7 +10,7 @@ from rest_framework.routers import APIRootView from rest_framework.viewsets import ModelViewSet, ReadOnlyModelViewSet from rq import Worker -from core.models import Job +from core.models import Job, ObjectType from extras import filtersets from extras.models import * 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] - 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 # diff --git a/netbox/extras/filtersets.py b/netbox/extras/filtersets.py index 797c76b51..450514e66 100644 --- a/netbox/extras/filtersets.py +++ b/netbox/extras/filtersets.py @@ -4,7 +4,7 @@ from django.contrib.contenttypes.models import ContentType from django.db.models import Q 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 netbox.filtersets import BaseFilterSet, ChangeLoggedModelFilterSet, NetBoxModelFilterSet from tenancy.models import Tenant, TenantGroup @@ -18,7 +18,6 @@ __all__ = ( 'BookmarkFilterSet', 'ConfigContextFilterSet', 'ConfigTemplateFilterSet', - 'ContentTypeFilterSet', 'CustomFieldChoiceSetFilterSet', 'CustomFieldFilterSet', 'CustomLinkFilterSet', @@ -28,6 +27,7 @@ __all__ = ( 'JournalEntryFilterSet', 'LocalConfigContextFilterSet', 'ObjectChangeFilterSet', + 'ObjectTypeFilterSet', 'SavedFilterFilterSet', 'ScriptFilterSet', 'TagFilterSet', @@ -662,14 +662,14 @@ class ObjectChangeFilterSet(BaseFilterSet): # ContentTypes # -class ContentTypeFilterSet(django_filters.FilterSet): +class ObjectTypeFilterSet(django_filters.FilterSet): q = django_filters.CharFilter( method='search', label=_('Search'), ) class Meta: - model = ContentType + model = ObjectType fields = ['id', 'app_label', 'model'] def search(self, queryset, name, value): diff --git a/netbox/extras/tests/test_api.py b/netbox/extras/tests/test_api.py index 53d981123..5d243ae1a 100644 --- a/netbox/extras/tests/test_api.py +++ b/netbox/extras/tests/test_api.py @@ -876,17 +876,17 @@ class CreatedUpdatedFilterTest(APITestCase): self.assertEqual(response.data['results'][0]['id'], rack2.pk) -class ContentTypeTest(APITestCase): +class ObjectTypeTest(APITestCase): 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.assertEqual(response.data['count'], contenttype_count) + self.assertEqual(response.data['count'], object_type_count) 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)