Add content type list API view to the common app.

This commit is contained in:
Roberto Rosario
2017-01-28 22:55:48 -04:00
parent 2f67f0cffa
commit 3a13027be0
5 changed files with 46 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
from __future__ import unicode_literals
from django.contrib.contenttypes.models import ContentType
from rest_framework import generics
from .serializers import ContentTypeSerializer
class APIContentTypeList(generics.ListAPIView):
"""
Returns a list of all the available content types.
"""
serializer_class = ContentTypeSerializer
queryset = ContentType.objects.order_by('app_label', 'model')

View File

@@ -15,6 +15,7 @@ from django.db.models.signals import post_save
from django.utils.translation import ugettext_lazy as _
from mayan.celery import app
from rest_api.classes import APIEndPoint
from .classes import Package
from .handlers import (
@@ -74,6 +75,8 @@ class CommonApp(MayanAppConfig):
def ready(self):
super(CommonApp, self).ready()
APIEndPoint(app=self, version_string='1')
Package(label='Django', license_text='''
Copyright (c) Django Software Foundation and individual contributors.
All rights reserved.

View File

@@ -0,0 +1,11 @@
from __future__ import unicode_literals
from django.contrib.contenttypes.models import ContentType
from rest_framework import serializers
class ContentTypeSerializer(serializers.ModelSerializer):
class Meta:
fields = ('app_label', 'id', 'model')
model = ContentType

View File

@@ -0,0 +1,11 @@
from __future__ import unicode_literals
from django.core.urlresolvers import reverse
from rest_framework.test import APITestCase
class CommonAPITestCase(APITestCase):
def test_content_type_list_view(self):
response = self.client.get(reverse('rest_api:content-type-list'))
self.assertEqual(response.status_code, 200)

View File

@@ -5,6 +5,7 @@ from django.contrib.staticfiles.templatetags.staticfiles import static
from django.views.generic import RedirectView
from django.views.i18n import javascript_catalog
from api_views import APIContentTypeList
from .views import (
AboutView, CurrentUserDetailsView, CurrentUserEditView,
CurrentUserLocaleProfileDetailsView, CurrentUserLocaleProfileEditView,
@@ -66,3 +67,7 @@ urlpatterns += patterns(
name='set_language'
),
)
api_urls = [
url(r'^content_types/$', APIContentTypeList.as_view(), name='content-type-list'),
]