diff --git a/mayan/apps/documents/__init__.py b/mayan/apps/documents/__init__.py index 6e93f6a158..801b2a1bca 100644 --- a/mayan/apps/documents/__init__.py +++ b/mayan/apps/documents/__init__.py @@ -158,3 +158,4 @@ namespace.add_statistic(DocumentUsageStatistics(name='document_usage', label=_(u endpoint = APIEndPoint('documents') endpoint.register_urls(api_urls) endpoint.add_endpoint('document-list', _(u'Returns a list of all the documents.')) +endpoint.add_endpoint('documenttype-list', _(u'Returns a list of all the document types.')) diff --git a/mayan/apps/documents/api_views.py b/mayan/apps/documents/api_views.py index 8e982fba4d..b19754160d 100644 --- a/mayan/apps/documents/api_views.py +++ b/mayan/apps/documents/api_views.py @@ -21,6 +21,7 @@ from .permissions import (PERMISSION_DOCUMENT_CREATE, PERMISSION_DOCUMENT_NEW_VERSION, PERMISSION_DOCUMENT_PROPERTIES_EDIT, PERMISSION_DOCUMENT_VIEW, + PERMISSION_DOCUMENT_TYPE_CREATE, PERMISSION_DOCUMENT_TYPE_DELETE, PERMISSION_DOCUMENT_TYPE_EDIT, PERMISSION_DOCUMENT_TYPE_VIEW) @@ -187,6 +188,20 @@ class APIDocumentPageView(generics.RetrieveUpdateAPIView): mayan_permission_attribute_check = 'document' +class APIDocumentTypeListView(generics.ListCreateAPIView): + """ + Returns a list of all the document types. + """ + + serializer_class = DocumentTypeSerializer + queryset = DocumentType.objects.all() + + permission_classes = (MayanPermission,) + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = {'GET': [PERMISSION_DOCUMENT_TYPE_VIEW]} + mayan_view_permissions = {'POST': [PERMISSION_DOCUMENT_TYPE_CREATE]} + + class APIDocumentTypeView(generics.RetrieveUpdateDestroyAPIView): """ Returns the selected document type details. diff --git a/mayan/apps/documents/urls.py b/mayan/apps/documents/urls.py index 21cd65e787..a4c9448592 100644 --- a/mayan/apps/documents/urls.py +++ b/mayan/apps/documents/urls.py @@ -3,8 +3,9 @@ from __future__ import absolute_import from django.conf.urls import patterns, url from .api_views import (APIDocumentView, APIDocumentImageView, APIDocumentListView, - APIDocumentPageView, APIDocumentTypeView, - APIDocumentVersionCreateView, APIDocumentVersionView) + APIDocumentPageView, APIDocumentTypeListView, + APIDocumentTypeView, APIDocumentVersionCreateView, + APIDocumentVersionView) from .conf.settings import PRINT_SIZE, DISPLAY_SIZE urlpatterns = patterns('documents.views', @@ -76,5 +77,6 @@ api_urls = patterns('', url(r'^document_page/(?P[0-9]+)/$', APIDocumentPageView.as_view(), name='documentpage-detail'), url(r'^documents/(?P[0-9]+)/image/$', APIDocumentImageView.as_view(), name='document-image'), url(r'^documents/(?P[0-9]+)/new_version/$', APIDocumentVersionCreateView.as_view(), name='document-new-version'), + url(r'^documenttypes/$', APIDocumentTypeListView.as_view(), name='documenttype-list'), url(r'^documenttypes/(?P[0-9]+)/$', APIDocumentTypeView.as_view(), name='documenttype-detail'), )