diff --git a/mayan/apps/documents/api_views.py b/mayan/apps/documents/api_views.py index 51b2cb5033..859754d246 100644 --- a/mayan/apps/documents/api_views.py +++ b/mayan/apps/documents/api_views.py @@ -41,19 +41,18 @@ class APIDocumentListView(generics.ListAPIView): Returns a list of all the documents. """ - serializer_class = DocumentSerializer queryset = Document.objects.all() permission_classes = (MayanPermission,) filter_backends = (MayanObjectPermissionsFilter,) - mayan_object_permissions = {'GET': [PERMISSION_DOCUMENT_VIEW]} + mayan_object_permissions = {'GET': [PERMISSION_DOCUMENT_VIEW], + 'POST': [PERMISSION_DOCUMENT_CREATE]} - -class APINewDocumentView(generics.GenericAPIView): - serializer_class = NewDocumentSerializer - - permission_classes = (MayanPermission,) - mayan_view_permissions = {'POST': [PERMISSION_DOCUMENT_CREATE]} + def get_serializer_class(self): + if self.request.method == 'GET': + return DocumentSerializer + elif self.request.method == 'POST': + return NewDocumentSerializer def post(self, request, *args, **kwargs): """Create a new document.""" diff --git a/mayan/apps/documents/tests.py b/mayan/apps/documents/tests.py index 50eae7c41a..c99a9573ec 100644 --- a/mayan/apps/documents/tests.py +++ b/mayan/apps/documents/tests.py @@ -146,7 +146,7 @@ class DocumentAPICreateDocumentTestCase(TestCase): # Create a blank document with no token in the header with open(TEST_SMALL_DOCUMENT_PATH) as file_descriptor: - response = document_client.post(reverse('newdocument-view'), {'document_type': self.document_type.pk, 'file': file_descriptor}) + response = document_client.post(reverse('document-list'), {'document_type': self.document_type.pk, 'file': file_descriptor}) # Make sure toke authentication is working, should fail self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED) @@ -155,7 +155,7 @@ class DocumentAPICreateDocumentTestCase(TestCase): # Create a blank document with open(TEST_SMALL_DOCUMENT_PATH) as file_descriptor: - document_response = document_client.post(reverse('newdocument-view'), {'document_type': self.document_type.pk, 'file': file_descriptor}) + document_response = document_client.post(reverse('document-list'), {'document_type': self.document_type.pk, 'file': file_descriptor}) self.assertEqual(document_response.status_code, status.HTTP_202_ACCEPTED) diff --git a/mayan/apps/documents/urls.py b/mayan/apps/documents/urls.py index b6de002001..1c43bd5012 100644 --- a/mayan/apps/documents/urls.py +++ b/mayan/apps/documents/urls.py @@ -5,8 +5,7 @@ from django.conf.urls import patterns, url from .api_views import (APIDocumentView, APIDocumentImageView, APIDocumentListView, APIDocumentPageView, APIDocumentTypeDocumentListView, APIDocumentTypeListView, APIDocumentTypeView, - APIDocumentVersionCreateView, APIDocumentVersionView, - APINewDocumentView) + APIDocumentVersionCreateView, APIDocumentVersionView) from .settings import PRINT_SIZE, DISPLAY_SIZE from .views import DocumentListView @@ -74,7 +73,6 @@ urlpatterns = patterns('documents.views', api_urls = patterns('', url(r'^documents/$', APIDocumentListView.as_view(), name='document-list'), - url(r'^documents/new/$', APINewDocumentView.as_view(), name='newdocument-view'), url(r'^documents/(?P[0-9]+)/$', APIDocumentView.as_view(), name='document-detail'), url(r'^document_version/(?P[0-9]+)/$', APIDocumentVersionView.as_view(), name='documentversion-detail'), url(r'^document_page/(?P[0-9]+)/$', APIDocumentPageView.as_view(), name='documentpage-detail'),