Merge new document API view with the document list API view (as a POST action)

This commit is contained in:
Roberto Rosario
2014-12-09 03:26:25 -04:00
parent ab37b4bc35
commit e3f3553965
3 changed files with 10 additions and 13 deletions

View File

@@ -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."""

View File

@@ -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)

View File

@@ -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<pk>[0-9]+)/$', APIDocumentView.as_view(), name='document-detail'),
url(r'^document_version/(?P<pk>[0-9]+)/$', APIDocumentVersionView.as_view(), name='documentversion-detail'),
url(r'^document_page/(?P<pk>[0-9]+)/$', APIDocumentPageView.as_view(), name='documentpage-detail'),