Add document type change API endpoint

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
Roberto Rosario
2019-11-18 02:20:48 -04:00
parent cd72a3bab4
commit e281607ca6
5 changed files with 97 additions and 15 deletions

View File

@@ -30,9 +30,10 @@ from .permissions import (
from .serializers import (
DeletedDocumentSerializer, DocumentPageSerializer, DocumentSerializer,
DocumentTypeSerializer, DocumentVersionSerializer,
NewDocumentSerializer, NewDocumentVersionSerializer,
RecentDocumentSerializer, WritableDocumentSerializer,
WritableDocumentTypeSerializer, WritableDocumentVersionSerializer
NewDocumentDocumentTypeSerializer, NewDocumentSerializer,
NewDocumentVersionSerializer, RecentDocumentSerializer,
WritableDocumentSerializer, WritableDocumentTypeSerializer,
WritableDocumentVersionSerializer
)
from .settings import settings_document_page_image_cache_time
from .tasks import task_generate_document_page_image
@@ -83,6 +84,26 @@ class APIDeletedDocumentRestoreView(generics.GenericAPIView):
return Response(status=status.HTTP_200_OK)
class APIDocumentDocumentTypeChangeView(generics.GenericAPIView):
"""
post: Change the type of the selected document.
"""
mayan_object_permissions = {
'POST': (permission_document_properties_edit,),
}
queryset = Document.objects.all()
serializer_class = NewDocumentDocumentTypeSerializer
def post(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
document_type = DocumentType.objects.get(pk=request.data['new_document_type'])
self.get_object().set_document_type(
document_type=document_type, _user=self.request.user
)
return Response(status=status.HTTP_200_OK)
class APIDocumentDownloadView(DownloadMixin, generics.RetrieveAPIView):
"""
get: Download the latest version of a document.