Consolidate the docstring of the API methods into a class docstring.

Signed-off-by: Michael Price <loneviking72@gmail.com>
This commit is contained in:
Michael Price
2018-03-13 18:13:24 -04:00
committed by Roberto Rosario
parent ff9e291cd7
commit 1fc06a350b
18 changed files with 273 additions and 1132 deletions

View File

@@ -18,13 +18,10 @@ from .serializers import (
class APIObjectACLListView(generics.ListCreateAPIView): class APIObjectACLListView(generics.ListCreateAPIView):
def get(self, *args, **kwargs):
""" """
Returns a list of all the object's access control lists get: Returns a list of all the object's access control lists
post: Create a new access control list for the selected object.
""" """
return super(APIObjectACLListView, self).get(*args, **kwargs)
def get_content_object(self): def get_content_object(self):
content_type = get_object_or_404( content_type = get_object_or_404(
ContentType, app_label=self.kwargs['app_label'], ContentType, app_label=self.kwargs['app_label'],
@@ -80,31 +77,14 @@ class APIObjectACLListView(generics.ListCreateAPIView):
else: else:
return WritableAccessControlListSerializer return WritableAccessControlListSerializer
def post(self, *args, **kwargs):
"""
Create a new access control list for the selected object.
"""
return super(APIObjectACLListView, self).post(*args, **kwargs)
class APIObjectACLView(generics.RetrieveDestroyAPIView): class APIObjectACLView(generics.RetrieveDestroyAPIView):
"""
delete: Delete the selected access control list.
get: Returns the details of the selected access control list.
"""
serializer_class = AccessControlListSerializer serializer_class = AccessControlListSerializer
def delete(self, *args, **kwargs):
"""
Delete the selected access control list.
"""
return super(APIObjectACLView, self).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Returns the details of the selected access control list.
"""
return super(APIObjectACLView, self).get(*args, **kwargs)
def get_content_object(self): def get_content_object(self):
if self.request.method == 'GET': if self.request.method == 'GET':
permission_required = permission_acl_view permission_required = permission_acl_view
@@ -136,15 +116,10 @@ class APIObjectACLView(generics.RetrieveDestroyAPIView):
class APIObjectACLPermissionListView(generics.ListCreateAPIView): class APIObjectACLPermissionListView(generics.ListCreateAPIView):
def get(self, *args, **kwargs):
""" """
Returns the access control list permission list. get: Returns the access control list permission list.
post: Add a new permission to the selected access control list.
""" """
return super(
APIObjectACLPermissionListView, self
).get(*args, **kwargs)
def get_acl(self): def get_acl(self):
return get_object_or_404( return get_object_or_404(
self.get_content_object().acls, pk=self.kwargs['pk'] self.get_content_object().acls, pk=self.kwargs['pk']
@@ -197,38 +172,15 @@ class APIObjectACLPermissionListView(generics.ListCreateAPIView):
return context return context
def post(self, *args, **kwargs):
"""
Add a new permission to the selected access control list.
"""
return super(
APIObjectACLPermissionListView, self
).post(*args, **kwargs)
class APIObjectACLPermissionView(generics.RetrieveDestroyAPIView): class APIObjectACLPermissionView(generics.RetrieveDestroyAPIView):
"""
delete: Remove the permission from the selected access control list.
get: Returns the details of the selected access control list permission.
"""
lookup_url_kwarg = 'permission_pk' lookup_url_kwarg = 'permission_pk'
serializer_class = AccessControlListPermissionSerializer serializer_class = AccessControlListPermissionSerializer
def delete(self, *args, **kwargs):
"""
Remove the permission from the selected access control list.
"""
return super(
APIObjectACLPermissionView, self
).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Returns the details of the selected access control list permission.
"""
return super(
APIObjectACLPermissionView, self
).get(*args, **kwargs)
def get_acl(self): def get_acl(self):
return get_object_or_404( return get_object_or_404(
self.get_content_object().acls, pk=self.kwargs['pk'] self.get_content_object().acls, pk=self.kwargs['pk']

View File

@@ -45,6 +45,10 @@ class APIDocumentCabinetListView(generics.ListAPIView):
class APICabinetListView(generics.ListCreateAPIView): class APICabinetListView(generics.ListCreateAPIView):
"""
get: Returns a list of all the cabinets.
post: Create a new cabinet
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = {'GET': (permission_cabinet_view,)} mayan_object_permissions = {'GET': (permission_cabinet_view,)}
mayan_view_permissions = {'POST': (permission_cabinet_create,)} mayan_view_permissions = {'POST': (permission_cabinet_create,)}
@@ -63,20 +67,14 @@ class APICabinetListView(generics.ListCreateAPIView):
elif self.request.method == 'POST': elif self.request.method == 'POST':
return WritableCabinetSerializer return WritableCabinetSerializer
def get(self, *args, **kwargs):
"""
Returns a list of all the cabinets.
"""
return super(APICabinetListView, self).get(*args, **kwargs)
def post(self, *args, **kwargs):
"""
Create a new cabinet.
"""
return super(APICabinetListView, self).post(*args, **kwargs)
class APICabinetView(generics.RetrieveUpdateDestroyAPIView): class APICabinetView(generics.RetrieveUpdateDestroyAPIView):
"""
delete: Delete the selected cabinet.
get: Returns the details of the selected cabinet.
patch: Edit the selected cabinet.
put: Edit the selected cabinet.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = { mayan_object_permissions = {
'GET': (permission_cabinet_view,), 'GET': (permission_cabinet_view,),
@@ -87,18 +85,6 @@ class APICabinetView(generics.RetrieveUpdateDestroyAPIView):
permission_classes = (MayanPermission,) permission_classes = (MayanPermission,)
queryset = Cabinet.objects.all() queryset = Cabinet.objects.all()
def delete(self, *args, **kwargs):
"""
Delete the selected cabinet.
"""
return super(APICabinetView, self).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Returns the details of the selected cabinet.
"""
return super(APICabinetView, self).get(*args, **kwargs)
def get_serializer(self, *args, **kwargs): def get_serializer(self, *args, **kwargs):
if not self.request: if not self.request:
return None return None
@@ -111,24 +97,12 @@ class APICabinetView(generics.RetrieveUpdateDestroyAPIView):
else: else:
return WritableCabinetSerializer return WritableCabinetSerializer
def patch(self, *args, **kwargs):
"""
Edit the selected cabinet.
"""
return super(APICabinetView, self).patch(*args, **kwargs)
def put(self, *args, **kwargs):
"""
Edit the selected cabinet.
"""
return super(APICabinetView, self).put(*args, **kwargs)
class APICabinetDocumentListView(generics.ListCreateAPIView): class APICabinetDocumentListView(generics.ListCreateAPIView):
""" """
Returns a list of all the documents contained in a particular cabinet. get: Returns a list of all the documents contained in a particular cabinet.
post: Add a document to the selected cabinet.
""" """
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = { mayan_object_permissions = {
'GET': (permission_cabinet_view,), 'GET': (permission_cabinet_view,),
@@ -175,16 +149,12 @@ class APICabinetDocumentListView(generics.ListCreateAPIView):
def perform_create(self, serializer): def perform_create(self, serializer):
serializer.save(cabinet=self.get_cabinet()) serializer.save(cabinet=self.get_cabinet())
def post(self, request, *args, **kwargs):
"""
Add a document to the selected cabinet.
"""
return super(APICabinetDocumentListView, self).post(
request, *args, **kwargs
)
class APICabinetDocumentView(generics.RetrieveDestroyAPIView): class APICabinetDocumentView(generics.RetrieveDestroyAPIView):
"""
delete: Remove a document from the selected cabinet.
get: Returns the details of the selected cabinet document.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
lookup_url_kwarg = 'document_pk' lookup_url_kwarg = 'document_pk'
mayan_object_permissions = { mayan_object_permissions = {
@@ -193,22 +163,6 @@ class APICabinetDocumentView(generics.RetrieveDestroyAPIView):
} }
serializer_class = CabinetDocumentSerializer serializer_class = CabinetDocumentSerializer
def delete(self, request, *args, **kwargs):
"""
Remove a document from the selected cabinet.
"""
return super(APICabinetDocumentView, self).delete(
request, *args, **kwargs
)
def get(self, *args, **kwargs):
"""
Returns the details of the selected cabinet document.
"""
return super(APICabinetDocumentView, self).get(*args, **kwargs)
def get_cabinet(self): def get_cabinet(self):
return get_object_or_404(Cabinet, pk=self.kwargs['pk']) return get_object_or_404(Cabinet, pk=self.kwargs['pk'])

View File

@@ -16,6 +16,10 @@ from .serializers import (
class APICheckedoutDocumentListView(generics.ListCreateAPIView): class APICheckedoutDocumentListView(generics.ListCreateAPIView):
"""
get: Returns a list of all the documents that are currently checked out.
post: Checkout a document.
"""
def get_serializer(self, *args, **kwargs): def get_serializer(self, *args, **kwargs):
if not self.request: if not self.request:
return None return None
@@ -42,25 +46,12 @@ class APICheckedoutDocumentListView(generics.ListCreateAPIView):
document__pk__in=filtered_documents.values_list('pk', flat=True) document__pk__in=filtered_documents.values_list('pk', flat=True)
) )
def get(self, request, *args, **kwargs):
"""
Returns a list of all the documents that are currently checked out.
"""
return super(
APICheckedoutDocumentListView, self
).get(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
"""
Checkout a document.
"""
return super(
APICheckedoutDocumentListView, self
).post(request, *args, **kwargs)
class APICheckedoutDocumentView(generics.RetrieveDestroyAPIView): class APICheckedoutDocumentView(generics.RetrieveDestroyAPIView):
"""
get: Retrieve the details of the selected checked out document entry.
delete: Checkin a document.
"""
serializer_class = DocumentCheckoutSerializer serializer_class = DocumentCheckoutSerializer
def get_queryset(self): def get_queryset(self):
@@ -82,20 +73,7 @@ class APICheckedoutDocumentView(generics.RetrieveDestroyAPIView):
elif self.request.method == 'DELETE': elif self.request.method == 'DELETE':
return DocumentCheckout.objects.all() return DocumentCheckout.objects.all()
def get(self, request, *args, **kwargs):
"""
Retrieve the details of the selected checked out document entry.
"""
return super(
APICheckedoutDocumentView, self
).get(request, *args, **kwargs)
def delete(self, request, *args, **kwargs): def delete(self, request, *args, **kwargs):
"""
Checkin a document.
"""
document = self.get_object().document document = self.get_object().document
if document.checkout_info().user == request.user: if document.checkout_info().user == request.user:

View File

@@ -11,6 +11,5 @@ class APIContentTypeList(generics.ListAPIView):
""" """
Returns a list of all the available content types. Returns a list of all the available content types.
""" """
serializer_class = ContentTypeSerializer serializer_class = ContentTypeSerializer
queryset = ContentType.objects.order_by('app_label', 'model') queryset = ContentType.objects.order_by('app_label', 'model')

View File

@@ -13,6 +13,10 @@ from .serializers import KeySerializer
class APIKeyListView(generics.ListCreateAPIView): class APIKeyListView(generics.ListCreateAPIView):
"""
get: Returns a list of all the keys.
post: Upload a new key.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = {'GET': (permission_key_view,)} mayan_object_permissions = {'GET': (permission_key_view,)}
mayan_view_permissions = {'POST': (permission_key_upload,)} mayan_view_permissions = {'POST': (permission_key_upload,)}
@@ -20,20 +24,12 @@ class APIKeyListView(generics.ListCreateAPIView):
queryset = Key.objects.all() queryset = Key.objects.all()
serializer_class = KeySerializer serializer_class = KeySerializer
def get(self, *args, **kwargs):
"""
Returns a list of all the keys.
"""
return super(APIKeyListView, self).get(*args, **kwargs)
def post(self, *args, **kwargs):
"""
Upload a new key.
"""
return super(APIKeyListView, self).post(*args, **kwargs)
class APIKeyView(generics.RetrieveDestroyAPIView): class APIKeyView(generics.RetrieveDestroyAPIView):
"""
delete: Delete the selected key.
get: Return the details of the selected key.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = { mayan_object_permissions = {
'DELETE': (permission_key_delete,), 'DELETE': (permission_key_delete,),
@@ -41,17 +37,3 @@ class APIKeyView(generics.RetrieveDestroyAPIView):
} }
queryset = Key.objects.all() queryset = Key.objects.all()
serializer_class = KeySerializer serializer_class = KeySerializer
def delete(self, *args, **kwargs):
"""
Delete the selected key.
"""
return super(APIKeyView, self).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Return the details of the selected key.
"""
return super(APIKeyView, self).get(*args, **kwargs)

View File

@@ -17,12 +17,10 @@ from .serializers import CommentSerializer, WritableCommentSerializer
class APICommentListView(generics.ListCreateAPIView): class APICommentListView(generics.ListCreateAPIView):
def get(self, *args, **kwargs):
""" """
Returns a list of all the document comments. get: Returns a list of all the document comments.
post: Create a new document comment.
""" """
return super(APICommentListView, self).get(*args, **kwargs)
def get_document(self): def get_document(self):
if self.request.method == 'GET': if self.request.method == 'GET':
permission_required = permission_comment_view permission_required = permission_comment_view
@@ -71,31 +69,15 @@ class APICommentListView(generics.ListCreateAPIView):
return context return context
def post(self, *args, **kwargs):
"""
Create a new document comment.
"""
return super(APICommentListView, self).post(*args, **kwargs)
class APICommentView(generics.RetrieveDestroyAPIView): class APICommentView(generics.RetrieveDestroyAPIView):
"""
delete: Delete the selected document comment.
get: Returns the details of the selected document comment.
"""
lookup_url_kwarg = 'comment_pk' lookup_url_kwarg = 'comment_pk'
serializer_class = CommentSerializer serializer_class = CommentSerializer
def delete(self, request, *args, **kwargs):
"""
Delete the selected document comment.
"""
return super(APICommentView, self).delete(request, *args, **kwargs)
def get(self, *args, **kwargs):
"""
Returns the details of the selected document comment.
"""
return super(APICommentView, self).get(*args, **kwargs)
def get_document(self): def get_document(self):
if self.request.method == 'GET': if self.request.method == 'GET':
permission_required = permission_comment_view permission_required = permission_comment_view

View File

@@ -22,28 +22,24 @@ from .serializers import (
class APIIndexListView(generics.ListCreateAPIView): class APIIndexListView(generics.ListCreateAPIView):
"""
get: Returns a list of all the defined indexes.
post: Create a new index.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = {'GET': (permission_document_indexing_view,)} mayan_object_permissions = {'GET': (permission_document_indexing_view,)}
mayan_view_permissions = {'POST': (permission_document_indexing_create,)} mayan_view_permissions = {'POST': (permission_document_indexing_create,)}
queryset = Index.objects.all() queryset = Index.objects.all()
serializer_class = IndexSerializer serializer_class = IndexSerializer
def get(self, *args, **kwargs):
"""
Returns a list of all the defined indexes.
"""
return super(APIIndexListView, self).get(*args, **kwargs)
def post(self, *args, **kwargs):
"""
Create a new index.
"""
return super(APIIndexListView, self).post(*args, **kwargs)
class APIIndexView(generics.RetrieveUpdateDestroyAPIView): class APIIndexView(generics.RetrieveUpdateDestroyAPIView):
"""
delete: Delete the selected index.
get: Returns the details of the selected index.
patch: Partially edit an index.
put: Edit an index.
"""
mayan_object_permissions = { mayan_object_permissions = {
'GET': (permission_document_indexing_view,), 'GET': (permission_document_indexing_view,),
'PUT': (permission_document_indexing_edit,), 'PUT': (permission_document_indexing_edit,),
@@ -54,34 +50,6 @@ class APIIndexView(generics.RetrieveUpdateDestroyAPIView):
queryset = Index.objects.all() queryset = Index.objects.all()
serializer_class = IndexSerializer serializer_class = IndexSerializer
def delete(self, *args, **kwargs):
"""
Delete the selected index.
"""
return super(APIIndexView, self).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Returns the details of the selected index.
"""
return super(APIIndexView, self).get(*args, **kwargs)
def patch(self, *args, **kwargs):
"""
Partially edit an index.
"""
return super(APIIndexView, self).patch(*args, **kwargs)
def put(self, *args, **kwargs):
"""
Edit an index.
"""
return super(APIIndexView, self).put(*args, **kwargs)
class APIIndexNodeInstanceDocumentListView(generics.ListAPIView): class APIIndexNodeInstanceDocumentListView(generics.ListAPIView):
""" """
@@ -106,19 +74,21 @@ class APIIndexNodeInstanceDocumentListView(generics.ListAPIView):
class APIIndexTemplateListView(generics.ListAPIView): class APIIndexTemplateListView(generics.ListAPIView):
"""
get: Returns a list of all the template nodes for the selected index.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = {'GET': (permission_document_indexing_view,)} mayan_object_permissions = {'GET': (permission_document_indexing_view,)}
serializer_class = IndexTemplateNodeSerializer serializer_class = IndexTemplateNodeSerializer
def get(self, *args, **kwargs):
"""
Returns a list of all the template nodes for the selected index.
"""
return super(APIIndexTemplateListView, self).get(*args, **kwargs)
class APIIndexTemplateView(generics.RetrieveUpdateDestroyAPIView): class APIIndexTemplateView(generics.RetrieveUpdateDestroyAPIView):
"""
delete: Delete the selected index template node.
get: Returns the details of the selected index template node.
patch: Partially edit an index template node.
put: Edit an index template node.
"""
serializer_class = IndexTemplateNodeSerializer serializer_class = IndexTemplateNodeSerializer
queryset = IndexTemplateNode.objects.all() queryset = IndexTemplateNode.objects.all()
@@ -130,34 +100,6 @@ class APIIndexTemplateView(generics.RetrieveUpdateDestroyAPIView):
'DELETE': (permission_document_indexing_edit,) 'DELETE': (permission_document_indexing_edit,)
} }
def delete(self, *args, **kwargs):
"""
Delete the selected index template node.
"""
return super(APIIndexTemplateView, self).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Returns the details of the selected index template node.
"""
return super(APIIndexTemplateView, self).get(*args, **kwargs)
def patch(self, *args, **kwargs):
"""
Partially edit an index template node.
"""
return super(APIIndexTemplateView, self).patch(*args, **kwargs)
def put(self, *args, **kwargs):
"""
Edit an index template node.
"""
return super(APIIndexTemplateView, self).put(*args, **kwargs)
class APIDocumentIndexListView(generics.ListAPIView): class APIDocumentIndexListView(generics.ListAPIView):
""" """

View File

@@ -25,20 +25,15 @@ from .serializers import (
class APIDocumentTypeWorkflowListView(generics.ListAPIView): class APIDocumentTypeWorkflowListView(generics.ListAPIView):
"""
get: Returns a list of all the document type workflows.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = { mayan_object_permissions = {
'GET': (permission_workflow_view,), 'GET': (permission_workflow_view,),
} }
serializer_class = WorkflowSerializer serializer_class = WorkflowSerializer
def get(self, *args, **kwargs):
"""
Returns a list of all the document type workflows.
"""
return super(
APIDocumentTypeWorkflowListView, self
).get(*args, **kwargs)
def get_document_type(self): def get_document_type(self):
document_type = get_object_or_404(DocumentType, pk=self.kwargs['pk']) document_type = get_object_or_404(DocumentType, pk=self.kwargs['pk'])
@@ -54,18 +49,15 @@ class APIDocumentTypeWorkflowListView(generics.ListAPIView):
class APIWorkflowDocumentTypeList(generics.ListCreateAPIView): class APIWorkflowDocumentTypeList(generics.ListCreateAPIView):
"""
get: Returns a list of all the document types attached to a workflow.
post: Attach a document type to a specified workflow.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = { mayan_object_permissions = {
'GET': (permission_document_type_view,), 'GET': (permission_document_type_view,),
} }
def get(self, *args, **kwargs):
"""
Returns a list of all the document types attached to a workflow.
"""
return super(APIWorkflowDocumentTypeList, self).get(*args, **kwargs)
def get_queryset(self): def get_queryset(self):
""" """
This view returns a list of document types that belong to a workflow. This view returns a list of document types that belong to a workflow.
@@ -119,17 +111,12 @@ class APIWorkflowDocumentTypeList(generics.ListCreateAPIView):
return workflow return workflow
def post(self, request, *args, **kwargs):
"""
Attach a document type to a specified workflow.
"""
return super(
APIWorkflowDocumentTypeList, self
).post(request, *args, **kwargs)
class APIWorkflowDocumentTypeView(generics.RetrieveDestroyAPIView): class APIWorkflowDocumentTypeView(generics.RetrieveDestroyAPIView):
"""
delete: Remove a document type from the selected workflow.
get: Returns the details of the selected workflow document type.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
lookup_url_kwarg = 'document_type_pk' lookup_url_kwarg = 'document_type_pk'
mayan_object_permissions = { mayan_object_permissions = {
@@ -137,22 +124,6 @@ class APIWorkflowDocumentTypeView(generics.RetrieveDestroyAPIView):
} }
serializer_class = WorkflowDocumentTypeSerializer serializer_class = WorkflowDocumentTypeSerializer
def delete(self, request, *args, **kwargs):
"""
Remove a document type from the selected workflow.
"""
return super(
APIWorkflowDocumentTypeView, self
).delete(request, *args, **kwargs)
def get(self, *args, **kwargs):
"""
Returns the details of the selected workflow document type.
"""
return super(APIWorkflowDocumentTypeView, self).get(*args, **kwargs)
def get_queryset(self): def get_queryset(self):
return self.get_workflow().document_types.all() return self.get_workflow().document_types.all()
@@ -179,7 +150,6 @@ class APIWorkflowDocumentTypeView(generics.RetrieveDestroyAPIView):
into a generic API class? into a generic API class?
RESEARCH: Reuse get_workflow method from APIWorkflowDocumentTypeList? RESEARCH: Reuse get_workflow method from APIWorkflowDocumentTypeList?
""" """
if self.request.method == 'GET': if self.request.method == 'GET':
permission_required = permission_workflow_view permission_required = permission_workflow_view
else: else:
@@ -199,23 +169,20 @@ class APIWorkflowDocumentTypeView(generics.RetrieveDestroyAPIView):
RESEARCH: Move this kind of methods to the serializer instead it that RESEARCH: Move this kind of methods to the serializer instead it that
ability becomes available in Django REST framework ability becomes available in Django REST framework
""" """
self.get_workflow().document_types.remove(instance) self.get_workflow().document_types.remove(instance)
class APIWorkflowListView(generics.ListCreateAPIView): class APIWorkflowListView(generics.ListCreateAPIView):
"""
get: Returns a list of all the workflows.
post: Create a new workflow.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = {'GET': (permission_workflow_view,)} mayan_object_permissions = {'GET': (permission_workflow_view,)}
mayan_view_permissions = {'POST': (permission_workflow_create,)} mayan_view_permissions = {'POST': (permission_workflow_create,)}
permission_classes = (MayanPermission,) permission_classes = (MayanPermission,)
queryset = Workflow.objects.all() queryset = Workflow.objects.all()
def get(self, *args, **kwargs):
"""
Returns a list of all the workflows.
"""
return super(APIWorkflowListView, self).get(*args, **kwargs)
def get_serializer(self, *args, **kwargs): def get_serializer(self, *args, **kwargs):
if not self.request: if not self.request:
return None return None
@@ -228,14 +195,14 @@ class APIWorkflowListView(generics.ListCreateAPIView):
else: else:
return WritableWorkflowSerializer return WritableWorkflowSerializer
def post(self, *args, **kwargs):
"""
Create a new workflow.
"""
return super(APIWorkflowListView, self).post(*args, **kwargs)
class APIWorkflowView(generics.RetrieveUpdateDestroyAPIView): class APIWorkflowView(generics.RetrieveUpdateDestroyAPIView):
"""
delete: Delete the selected workflow.
get: Return the details of the selected workflow.
patch: Edit the selected workflow.
put: Edit the selected workflow.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = { mayan_object_permissions = {
'DELETE': (permission_workflow_delete,), 'DELETE': (permission_workflow_delete,),
@@ -245,20 +212,6 @@ class APIWorkflowView(generics.RetrieveUpdateDestroyAPIView):
} }
queryset = Workflow.objects.all() queryset = Workflow.objects.all()
def delete(self, *args, **kwargs):
"""
Delete the selected workflow.
"""
return super(APIWorkflowView, self).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Return the details of the selected workflow.
"""
return super(APIWorkflowView, self).get(*args, **kwargs)
def get_serializer(self, *args, **kwargs): def get_serializer(self, *args, **kwargs):
if not self.request: if not self.request:
return None return None
@@ -271,33 +224,17 @@ class APIWorkflowView(generics.RetrieveUpdateDestroyAPIView):
else: else:
return WritableWorkflowSerializer return WritableWorkflowSerializer
def patch(self, *args, **kwargs):
"""
Edit the selected workflow.
"""
return super(APIWorkflowView, self).patch(*args, **kwargs)
def put(self, *args, **kwargs):
"""
Edit the selected workflow.
"""
return super(APIWorkflowView, self).put(*args, **kwargs)
# Workflow state views # Workflow state views
class APIWorkflowStateListView(generics.ListCreateAPIView): class APIWorkflowStateListView(generics.ListCreateAPIView):
"""
get: Returns a list of all the workflow states.
post: Create a new workflow state.
"""
serializer_class = WorkflowStateSerializer serializer_class = WorkflowStateSerializer
def get(self, *args, **kwargs):
"""
Returns a list of all the workflow states.
"""
return super(APIWorkflowStateListView, self).get(*args, **kwargs)
def get_queryset(self): def get_queryset(self):
return self.get_workflow().states.all() return self.get_workflow().states.all()
@@ -330,31 +267,17 @@ class APIWorkflowStateListView(generics.ListCreateAPIView):
return workflow return workflow
def post(self, *args, **kwargs):
"""
Create a new workflow state.
"""
return super(APIWorkflowStateListView, self).post(*args, **kwargs)
class APIWorkflowStateView(generics.RetrieveUpdateDestroyAPIView): class APIWorkflowStateView(generics.RetrieveUpdateDestroyAPIView):
"""
delete: Delete the selected workflow state.
get: Return the details of the selected workflow state.
patch: Edit the selected workflow state.
put: Edit the selected workflow state.
"""
lookup_url_kwarg = 'state_pk' lookup_url_kwarg = 'state_pk'
serializer_class = WorkflowStateSerializer serializer_class = WorkflowStateSerializer
def delete(self, *args, **kwargs):
"""
Delete the selected workflow state.
"""
return super(APIWorkflowStateView, self).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Return the details of the selected workflow state.
"""
return super(APIWorkflowStateView, self).get(*args, **kwargs)
def get_queryset(self): def get_queryset(self):
return self.get_workflow().states.all() return self.get_workflow().states.all()
@@ -387,31 +310,15 @@ class APIWorkflowStateView(generics.RetrieveUpdateDestroyAPIView):
return workflow return workflow
def patch(self, *args, **kwargs):
"""
Edit the selected workflow state.
"""
return super(APIWorkflowStateView, self).patch(*args, **kwargs)
def put(self, *args, **kwargs):
"""
Edit the selected workflow state.
"""
return super(APIWorkflowStateView, self).put(*args, **kwargs)
# Workflow transition views # Workflow transition views
class APIWorkflowTransitionListView(generics.ListCreateAPIView): class APIWorkflowTransitionListView(generics.ListCreateAPIView):
def get(self, *args, **kwargs):
""" """
Returns a list of all the workflow transitions. get: Returns a list of all the workflow transitions.
post: Create a new workflow transition.
""" """
return super(APIWorkflowTransitionListView, self).get(*args, **kwargs)
def get_queryset(self): def get_queryset(self):
return self.get_workflow().transitions.all() return self.get_workflow().transitions.all()
@@ -456,30 +363,16 @@ class APIWorkflowTransitionListView(generics.ListCreateAPIView):
return workflow return workflow
def post(self, *args, **kwargs):
"""
Create a new workflow transition.
"""
return super(APIWorkflowTransitionListView, self).post(*args, **kwargs)
class APIWorkflowTransitionView(generics.RetrieveUpdateDestroyAPIView): class APIWorkflowTransitionView(generics.RetrieveUpdateDestroyAPIView):
"""
delete: Delete the selected workflow transition.
get: Return the details of the selected workflow transition.
patch: Edit the selected workflow transition.
put: Edit the selected workflow transition.
"""
lookup_url_kwarg = 'transition_pk' lookup_url_kwarg = 'transition_pk'
def delete(self, *args, **kwargs):
"""
Delete the selected workflow transition.
"""
return super(APIWorkflowTransitionView, self).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Return the details of the selected workflow transition.
"""
return super(APIWorkflowTransitionView, self).get(*args, **kwargs)
def get_queryset(self): def get_queryset(self):
return self.get_workflow().transitions.all() return self.get_workflow().transitions.all()
@@ -524,37 +417,20 @@ class APIWorkflowTransitionView(generics.RetrieveUpdateDestroyAPIView):
return workflow return workflow
def patch(self, *args, **kwargs):
"""
Edit the selected workflow transition.
"""
return super(APIWorkflowTransitionView, self).patch(*args, **kwargs)
def put(self, *args, **kwargs):
"""
Edit the selected workflow transition.
"""
return super(APIWorkflowTransitionView, self).put(*args, **kwargs)
# Document workflow views # Document workflow views
class APIWorkflowInstanceListView(generics.ListAPIView): class APIWorkflowInstanceListView(generics.ListAPIView):
"""
get: Returns a list of all the document workflows.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
serializer_class = WorkflowInstanceSerializer serializer_class = WorkflowInstanceSerializer
mayan_object_permissions = { mayan_object_permissions = {
'GET': (permission_workflow_view,), 'GET': (permission_workflow_view,),
} }
def get(self, *args, **kwargs):
"""
Returns a list of all the document workflows.
"""
return super(APIWorkflowInstanceListView, self).get(*args, **kwargs)
def get_document(self): def get_document(self):
document = get_object_or_404(Document, pk=self.kwargs['pk']) document = get_object_or_404(Document, pk=self.kwargs['pk'])
@@ -570,6 +446,9 @@ class APIWorkflowInstanceListView(generics.ListAPIView):
class APIWorkflowInstanceView(generics.RetrieveAPIView): class APIWorkflowInstanceView(generics.RetrieveAPIView):
"""
get: Return the details of the selected document workflow.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
lookup_url_kwarg = 'workflow_pk' lookup_url_kwarg = 'workflow_pk'
mayan_object_permissions = { mayan_object_permissions = {
@@ -577,13 +456,6 @@ class APIWorkflowInstanceView(generics.RetrieveAPIView):
} }
serializer_class = WorkflowInstanceSerializer serializer_class = WorkflowInstanceSerializer
def get(self, *args, **kwargs):
"""
Return the details of the selected document workflow.
"""
return super(APIWorkflowInstanceView, self).get(*args, **kwargs)
def get_document(self): def get_document(self):
document = get_object_or_404(Document, pk=self.kwargs['pk']) document = get_object_or_404(Document, pk=self.kwargs['pk'])
@@ -599,14 +471,10 @@ class APIWorkflowInstanceView(generics.RetrieveAPIView):
class APIWorkflowInstanceLogEntryListView(generics.ListCreateAPIView): class APIWorkflowInstanceLogEntryListView(generics.ListCreateAPIView):
def get(self, *args, **kwargs):
""" """
Returns a list of all the document workflows log entries. get: Returns a list of all the document workflows log entries.
post: Transition a document workflow by creating a new document workflow log entry.
""" """
return super(APIWorkflowInstanceLogEntryListView, self).get(
*args, **kwargs
)
def get_document(self): def get_document(self):
document = get_object_or_404(Document, pk=self.kwargs['pk']) document = get_object_or_404(Document, pk=self.kwargs['pk'])
@@ -660,12 +528,3 @@ class APIWorkflowInstanceLogEntryListView(generics.ListCreateAPIView):
) )
return workflow return workflow
def post(self, *args, **kwargs):
"""
Transition a document workflow by creating a new document workflow
log entry.
"""
return super(
APIWorkflowInstanceLogEntryListView, self
).post(*args, **kwargs)

View File

@@ -44,7 +44,6 @@ class APIDeletedDocumentListView(generics.ListAPIView):
""" """
Returns a list of all the trashed documents. Returns a list of all the trashed documents.
""" """
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = {'GET': (permission_document_view,)} mayan_object_permissions = {'GET': (permission_document_view,)}
permission_classes = (MayanPermission,) permission_classes = (MayanPermission,)
@@ -55,8 +54,9 @@ class APIDeletedDocumentListView(generics.ListAPIView):
class APIDeletedDocumentView(generics.RetrieveDestroyAPIView): class APIDeletedDocumentView(generics.RetrieveDestroyAPIView):
""" """
Returns the selected trashed document details. Returns the selected trashed document details.
delete: Delete the trashed document.
get: Retreive the details of the trashed document.
""" """
mayan_object_permissions = { mayan_object_permissions = {
'DELETE': (permission_document_delete,), 'DELETE': (permission_document_delete,),
'GET': (permission_document_view,) 'GET': (permission_document_view,)
@@ -65,29 +65,11 @@ class APIDeletedDocumentView(generics.RetrieveDestroyAPIView):
queryset = Document.trash.all() queryset = Document.trash.all()
serializer_class = DeletedDocumentSerializer serializer_class = DeletedDocumentSerializer
def delete(self, *args, **kwargs):
"""
Delete the trashed document.
"""
return super(APIDeletedDocumentView, self).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Retreive the details of the trashed document.
"""
return super(APIDeletedDocumentView, self).get(*args, **kwargs)
class APIDeletedDocumentRestoreView(generics.GenericAPIView): class APIDeletedDocumentRestoreView(generics.GenericAPIView):
""" """
Restore a trashed document. post: Restore a trashed document.
---
POST:
omit_serializer: true
""" """
mayan_object_permissions = { mayan_object_permissions = {
'POST': (permission_document_restore,) 'POST': (permission_document_restore,)
} }
@@ -107,16 +89,8 @@ class APIDeletedDocumentRestoreView(generics.GenericAPIView):
class APIDocumentDownloadView(DownloadMixin, generics.RetrieveAPIView): class APIDocumentDownloadView(DownloadMixin, generics.RetrieveAPIView):
""" """
Download the latest version of a document. get: Download the latest version of a document.
---
GET:
omit_serializer: true
parameters:
- name: pk
paramType: path
type: number
""" """
mayan_object_permissions = { mayan_object_permissions = {
'GET': (permission_document_download,) 'GET': (permission_document_download,)
} }
@@ -144,17 +118,15 @@ class APIDocumentDownloadView(DownloadMixin, generics.RetrieveAPIView):
class APIDocumentListView(generics.ListCreateAPIView): class APIDocumentListView(generics.ListCreateAPIView):
"""
get: Returns a list of all the documents.
post: Create a new document.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = {'GET': (permission_document_view,)} mayan_object_permissions = {'GET': (permission_document_view,)}
permission_classes = (MayanPermission,) permission_classes = (MayanPermission,)
queryset = Document.objects.all() queryset = Document.objects.all()
def get(self, *args, **kwargs):
"""
Returns a list of all the documents.
"""
return super(APIDocumentListView, self).get(*args, **kwargs)
def get_serializer(self, *args, **kwargs): def get_serializer(self, *args, **kwargs):
if not self.request: if not self.request:
return None return None
@@ -174,53 +146,10 @@ class APIDocumentListView(generics.ListCreateAPIView):
) )
serializer.save(_user=self.request.user) serializer.save(_user=self.request.user)
def post(self, *args, **kwargs):
"""
Create a new document.
Endpoint returns a 202 status code to indicate that a document is not
immediately created at request. From the request data, the creation of
a document is instead queued as a background task. An ID that
represents the eventual document is returned.
---
omit_serializer: false
parameters:
- name: description
paramType: form
type: file string
- name: document_type
paramType: form
required: true
type: file string
- name: file
paramType: form
required: true
type: file object
- name: label
paramType: form
type: file string
- name: language
paramType: form
type: file string
responseMessages:
- code: 202
message: Accepted
"""
return super(APIDocumentListView, self).post(*args, **kwargs)
class APIDocumentVersionDownloadView(DownloadMixin, generics.RetrieveAPIView): class APIDocumentVersionDownloadView(DownloadMixin, generics.RetrieveAPIView):
""" """
Download a document version. get: Download a document version.
---
GET:
omit_serializer: true
parameters:
- name: pk
paramType: path
type: number
- name: preserve_extension
paramType: query
type: boolean
""" """
lookup_url_kwarg = 'version_pk' lookup_url_kwarg = 'version_pk'
@@ -271,8 +200,11 @@ class APIDocumentVersionDownloadView(DownloadMixin, generics.RetrieveAPIView):
class APIDocumentView(generics.RetrieveUpdateDestroyAPIView): class APIDocumentView(generics.RetrieveUpdateDestroyAPIView):
""" """
Returns the selected document details. Returns the selected document details.
delete: Move the selected document to the thrash.
get: Return the details of the selected document.
patch: Edit the properties of the selected document.
put: Edit the properties of the selected document.
""" """
mayan_object_permissions = { mayan_object_permissions = {
'GET': (permission_document_view,), 'GET': (permission_document_view,),
'PUT': (permission_document_properties_edit,), 'PUT': (permission_document_properties_edit,),
@@ -282,20 +214,6 @@ class APIDocumentView(generics.RetrieveUpdateDestroyAPIView):
permission_classes = (MayanPermission,) permission_classes = (MayanPermission,)
queryset = Document.objects.all() queryset = Document.objects.all()
def delete(self, *args, **kwargs):
"""
Move the selected document to the thrash.
"""
return super(APIDocumentView, self).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Return the details of the selected document.
"""
return super(APIDocumentView, self).get(*args, **kwargs)
def get_serializer(self, *args, **kwargs): def get_serializer(self, *args, **kwargs):
if not self.request: if not self.request:
return None return None
@@ -315,42 +233,11 @@ class APIDocumentView(generics.RetrieveUpdateDestroyAPIView):
else: else:
return WritableDocumentSerializer return WritableDocumentSerializer
def patch(self, *args, **kwargs):
"""
Edit the properties of the selected document.
"""
return super(APIDocumentView, self).patch(*args, **kwargs)
def put(self, *args, **kwargs):
"""
Edit the properties of the selected document.
"""
return super(APIDocumentView, self).put(*args, **kwargs)
class APIDocumentPageImageView(generics.RetrieveAPIView): class APIDocumentPageImageView(generics.RetrieveAPIView):
""" """
Returns an image representation of the selected document. get: Returns an image representation of the selected document.
---
GET:
omit_serializer: true
parameters:
- name: width
description: Width of the desired image representation.
paramType: query
type: number
- name: height
description: Height of the desired image representation.
paramType: query
type: number
- name: zoom
description: Zoom level of the image to be generated, numeric value only.
paramType: query
type: number
""" """
lookup_url_kwarg = 'page_pk' lookup_url_kwarg = 'page_pk'
def get_document(self): def get_document(self):
@@ -407,19 +294,13 @@ class APIDocumentPageImageView(generics.RetrieveAPIView):
class APIDocumentPageView(generics.RetrieveUpdateAPIView): class APIDocumentPageView(generics.RetrieveUpdateAPIView):
""" """
Returns the selected document page details. get: Returns the selected document page details.
patch: Edit the selected document page.
put: Edit the selected document page.
""" """
lookup_url_kwarg = 'page_pk' lookup_url_kwarg = 'page_pk'
serializer_class = DocumentPageSerializer serializer_class = DocumentPageSerializer
def get(self, *args, **kwargs):
"""
Returns the selected document page details.
"""
return super(APIDocumentPageView, self).get(*args, **kwargs)
def get_document(self): def get_document(self):
if self.request.method == 'GET': if self.request.method == 'GET':
permission_required = permission_document_view permission_required = permission_document_view
@@ -441,22 +322,12 @@ class APIDocumentPageView(generics.RetrieveUpdateAPIView):
def get_queryset(self): def get_queryset(self):
return self.get_document_version().pages.all() return self.get_document_version().pages.all()
def patch(self, *args, **kwargs):
"""
Edit the selected document page.
"""
return super(APIDocumentPageView, self).patch(*args, **kwargs)
def put(self, *args, **kwargs):
"""
Edit the selected document page.
"""
return super(APIDocumentPageView, self).put(*args, **kwargs)
class APIDocumentTypeListView(generics.ListCreateAPIView): class APIDocumentTypeListView(generics.ListCreateAPIView):
"""
get: Returns a list of all the document types.
post: Create a new document type.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = {'GET': (permission_document_type_view,)} mayan_object_permissions = {'GET': (permission_document_type_view,)}
mayan_view_permissions = {'POST': (permission_document_type_create,)} mayan_view_permissions = {'POST': (permission_document_type_create,)}
@@ -464,13 +335,6 @@ class APIDocumentTypeListView(generics.ListCreateAPIView):
queryset = DocumentType.objects.all() queryset = DocumentType.objects.all()
serializer_class = DocumentTypeSerializer serializer_class = DocumentTypeSerializer
def get(self, *args, **kwargs):
"""
Returns a list of all the document types.
"""
return super(APIDocumentTypeListView, self).get(*args, **kwargs)
def get_serializer(self, *args, **kwargs): def get_serializer(self, *args, **kwargs):
if not self.request: if not self.request:
return None return None
@@ -483,19 +347,14 @@ class APIDocumentTypeListView(generics.ListCreateAPIView):
else: else:
return WritableDocumentTypeSerializer return WritableDocumentTypeSerializer
def post(self, *args, **kwargs):
"""
Create a new document type.
"""
return super(APIDocumentTypeListView, self).post(*args, **kwargs)
class APIDocumentTypeView(generics.RetrieveUpdateDestroyAPIView): class APIDocumentTypeView(generics.RetrieveUpdateDestroyAPIView):
""" """
Returns the selected document type details. delete: Delete the selected document type.
get: Return the details of the selected document type.
patch: Edit the properties of the selected document type.
put: Edit the properties of the selected document type.
""" """
mayan_object_permissions = { mayan_object_permissions = {
'GET': (permission_document_type_view,), 'GET': (permission_document_type_view,),
'PUT': (permission_document_type_edit,), 'PUT': (permission_document_type_edit,),
@@ -505,20 +364,6 @@ class APIDocumentTypeView(generics.RetrieveUpdateDestroyAPIView):
permission_classes = (MayanPermission,) permission_classes = (MayanPermission,)
queryset = DocumentType.objects.all() queryset = DocumentType.objects.all()
def delete(self, *args, **kwargs):
"""
Delete the selected document type.
"""
return super(APIDocumentTypeView, self).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Return the details of the selected document type.
"""
return super(APIDocumentTypeView, self).get(*args, **kwargs)
def get_serializer(self, *args, **kwargs): def get_serializer(self, *args, **kwargs):
if not self.request: if not self.request:
return None return None
@@ -531,20 +376,6 @@ class APIDocumentTypeView(generics.RetrieveUpdateDestroyAPIView):
else: else:
return WritableDocumentTypeSerializer return WritableDocumentTypeSerializer
def patch(self, *args, **kwargs):
"""
Edit the properties of the selected document type.
"""
return super(APIDocumentTypeView, self).patch(*args, **kwargs)
def put(self, *args, **kwargs):
"""
Edit the properties of the selected document type.
"""
return super(APIDocumentTypeView, self).put(*args, **kwargs)
class APIDocumentTypeDocumentListView(generics.ListAPIView): class APIDocumentTypeDocumentListView(generics.ListAPIView):
""" """
@@ -566,18 +397,14 @@ class APIDocumentTypeDocumentListView(generics.ListAPIView):
class APIRecentDocumentListView(generics.ListAPIView): class APIRecentDocumentListView(generics.ListAPIView):
"""
get: Return a list of the recent documents for the current user.
"""
serializer_class = RecentDocumentSerializer serializer_class = RecentDocumentSerializer
def get_queryset(self): def get_queryset(self):
return RecentDocument.objects.filter(user=self.request.user) return RecentDocument.objects.filter(user=self.request.user)
def get(self, *args, **kwargs):
"""
Return a list of the recent documents for the current user.
"""
return super(APIRecentDocumentListView, self).get(*args, **kwargs)
class APIDocumentVersionPageListView(generics.ListAPIView): class APIDocumentVersionPageListView(generics.ListAPIView):
serializer_class = DocumentPageSerializer serializer_class = DocumentPageSerializer
@@ -601,9 +428,9 @@ class APIDocumentVersionPageListView(generics.ListAPIView):
class APIDocumentVersionsListView(generics.ListCreateAPIView): class APIDocumentVersionsListView(generics.ListCreateAPIView):
""" """
Return a list of the selected document's versions. get: Return a list of the selected document's versions.
post: Create a new document version.
""" """
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = { mayan_object_permissions = {
'GET': (permission_document_version_view,), 'GET': (permission_document_version_view,),
@@ -642,30 +469,16 @@ class APIDocumentVersionsListView(generics.ListCreateAPIView):
) )
serializer.save(document=document, _user=self.request.user) serializer.save(document=document, _user=self.request.user)
def post(self, request, *args, **kwargs):
"""
Create a new document version.
"""
return super(
APIDocumentVersionsListView, self
).post(request, *args, **kwargs)
class APIDocumentVersionView(generics.RetrieveUpdateDestroyAPIView): class APIDocumentVersionView(generics.RetrieveUpdateDestroyAPIView):
""" """
Returns the selected document version details. delete: Delete the selected document version.
get: Returns the selected document version details.
patch: Edit the selected document version.
put: Edit the selected document version.
""" """
lookup_url_kwarg = 'version_pk' lookup_url_kwarg = 'version_pk'
def delete(self, *args, **kwargs):
"""
Delete the selected document version.
"""
return super(APIDocumentVersionView, self).delete(*args, **kwargs)
def get_document(self): def get_document(self):
if self.request.method == 'GET': if self.request.method == 'GET':
permission_required = permission_document_view permission_required = permission_document_view
@@ -695,17 +508,3 @@ class APIDocumentVersionView(generics.RetrieveUpdateDestroyAPIView):
return DocumentVersionSerializer return DocumentVersionSerializer
else: else:
return WritableDocumentVersionSerializer return WritableDocumentVersionSerializer
def patch(self, *args, **kwargs):
"""
Edit the selected document version.
"""
return super(APIDocumentVersionView, self).patch(*args, **kwargs)
def put(self, *args, **kwargs):
"""
Edit the selected document version.
"""
return super(APIDocumentVersionView, self).put(*args, **kwargs)

View File

@@ -14,17 +14,8 @@ from .serializers import SearchModelSerializer
class APISearchView(SearchModelMixin, generics.ListAPIView): class APISearchView(SearchModelMixin, generics.ListAPIView):
""" """
Perform a search operation get: Perform a search operation
---
GET:
omit_serializer: true
parameters:
- name: q
paramType: query
type: string
description: Term that will be used for the search.
""" """
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
def get_queryset(self): def get_queryset(self):
@@ -55,17 +46,8 @@ class APISearchView(SearchModelMixin, generics.ListAPIView):
class APIAdvancedSearchView(SearchModelMixin, generics.ListAPIView): class APIAdvancedSearchView(SearchModelMixin, generics.ListAPIView):
""" """
Perform an advanced search operation get: Perform an advanced search operation
---
GET:
omit_serializer: true
parameters:
- name: _match_all
paramType: query
type: string
description: When checked, only results that match all fields will be returned. When unchecked results that match at least one field will be returned. Possible values are "on" or "off"
""" """
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
def get_queryset(self): def get_queryset(self):
@@ -103,12 +85,8 @@ class APIAdvancedSearchView(SearchModelMixin, generics.ListAPIView):
class APISearchModelList(generics.ListAPIView): class APISearchModelList(generics.ListAPIView):
"""
get: Returns a list of all the available search models.
"""
serializer_class = SearchModelSerializer serializer_class = SearchModelSerializer
queryset = SearchModel.all() queryset = SearchModel.all()
def get(self, *args, **kwargs):
"""
Returns a list of all the available search models.
"""
return super(APISearchModelList, self).get(*args, **kwargs)

View File

@@ -21,9 +21,8 @@ from .serializers import (
class APIObjectEventListView(generics.ListAPIView): class APIObjectEventListView(generics.ListAPIView):
""" """
Return a list of events for the specified object. get: Return a list of events for the specified object.
""" """
serializer_class = EventSerializer serializer_class = EventSerializer
def get_object(self): def get_object(self):
@@ -52,7 +51,7 @@ class APIObjectEventListView(generics.ListAPIView):
class APIEventTypeNamespaceDetailView(generics.RetrieveAPIView): class APIEventTypeNamespaceDetailView(generics.RetrieveAPIView):
""" """
Returns the details of an event type namespace. get: Returns the details of an event type namespace.
""" """
serializer_class = EventTypeNamespaceSerializer serializer_class = EventTypeNamespaceSerializer
@@ -65,9 +64,8 @@ class APIEventTypeNamespaceDetailView(generics.RetrieveAPIView):
class APIEventTypeNamespaceListView(generics.ListAPIView): class APIEventTypeNamespaceListView(generics.ListAPIView):
""" """
Returns a list of all the available event type namespaces. get: Returns a list of all the available event type namespaces.
""" """
serializer_class = EventTypeNamespaceSerializer serializer_class = EventTypeNamespaceSerializer
queryset = EventTypeNamespace.all() queryset = EventTypeNamespace.all()
@@ -81,9 +79,8 @@ class APIEventTypeNamespaceListView(generics.ListAPIView):
class APIEventTypeNamespaceEventTypeListView(generics.ListAPIView): class APIEventTypeNamespaceEventTypeListView(generics.ListAPIView):
""" """
Returns a list of all the available event types from a namespaces. get: Returns a list of all the available event types from a namespaces.
""" """
serializer_class = EventTypeSerializer serializer_class = EventTypeSerializer
def get_queryset(self): def get_queryset(self):
@@ -104,9 +101,8 @@ class APIEventTypeNamespaceEventTypeListView(generics.ListAPIView):
class APIEventTypeListView(generics.ListAPIView): class APIEventTypeListView(generics.ListAPIView):
""" """
Returns a list of all the available event types. get: Returns a list of all the available event types.
""" """
serializer_class = EventTypeSerializer serializer_class = EventTypeSerializer
queryset = EventType.all() queryset = EventType.all()
@@ -120,9 +116,8 @@ class APIEventTypeListView(generics.ListAPIView):
class APIEventListView(generics.ListAPIView): class APIEventListView(generics.ListAPIView):
""" """
Returns a list of all the available events. get: Returns a list of all the available events.
""" """
mayan_view_permissions = {'GET': (permission_events_view,)} mayan_view_permissions = {'GET': (permission_events_view,)}
permission_classes = (MayanPermission,) permission_classes = (MayanPermission,)
queryset = Action.objects.all() queryset = Action.objects.all()
@@ -138,7 +133,7 @@ class APIEventListView(generics.ListAPIView):
class APINotificationListView(generics.ListAPIView): class APINotificationListView(generics.ListAPIView):
""" """
Return a list of notifications for the current user. get: Return a list of notifications for the current user.
""" """
serializer_class = NotificationSerializer serializer_class = NotificationSerializer

View File

@@ -23,19 +23,14 @@ from .serializers import (
class APIResolvedSmartLinkDocumentListView(generics.ListAPIView): class APIResolvedSmartLinkDocumentListView(generics.ListAPIView):
"""
get: Returns a list of the smart link documents that apply to the document.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = {'GET': (permission_document_view,)} mayan_object_permissions = {'GET': (permission_document_view,)}
permission_classes = (MayanPermission,) permission_classes = (MayanPermission,)
serializer_class = ResolvedSmartLinkDocumentSerializer serializer_class = ResolvedSmartLinkDocumentSerializer
def get(self, *args, **kwargs):
"""
Returns a list of the smart link documents that apply to the document.
"""
return super(APIResolvedSmartLinkDocumentListView, self).get(
*args, **kwargs
)
def get_document(self): def get_document(self):
document = get_object_or_404(Document, pk=self.kwargs['pk']) document = get_object_or_404(Document, pk=self.kwargs['pk'])
@@ -81,18 +76,15 @@ class APIResolvedSmartLinkDocumentListView(generics.ListAPIView):
class APIResolvedSmartLinkView(generics.RetrieveAPIView): class APIResolvedSmartLinkView(generics.RetrieveAPIView):
"""
get: Return the details of the selected resolved smart link.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
lookup_url_kwarg = 'smart_link_pk' lookup_url_kwarg = 'smart_link_pk'
mayan_object_permissions = {'GET': (permission_smart_link_view,)} mayan_object_permissions = {'GET': (permission_smart_link_view,)}
permission_classes = (MayanPermission,) permission_classes = (MayanPermission,)
serializer_class = ResolvedSmartLinkSerializer serializer_class = ResolvedSmartLinkSerializer
def get(self, *args, **kwargs):
"""
Return the details of the selected resolved smart link.
"""
return super(APIResolvedSmartLinkView, self).get(*args, **kwargs)
def get_document(self): def get_document(self):
document = get_object_or_404(Document, pk=self.kwargs['pk']) document = get_object_or_404(Document, pk=self.kwargs['pk'])
@@ -122,17 +114,14 @@ class APIResolvedSmartLinkView(generics.RetrieveAPIView):
class APIResolvedSmartLinkListView(generics.ListAPIView): class APIResolvedSmartLinkListView(generics.ListAPIView):
"""
get: Returns a list of the smart links that apply to the document.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = {'GET': (permission_smart_link_view,)} mayan_object_permissions = {'GET': (permission_smart_link_view,)}
permission_classes = (MayanPermission,) permission_classes = (MayanPermission,)
serializer_class = ResolvedSmartLinkSerializer serializer_class = ResolvedSmartLinkSerializer
def get(self, *args, **kwargs):
"""
Returns a list of the smart links that apply to the document.
"""
return super(APIResolvedSmartLinkListView, self).get(*args, **kwargs)
def get_document(self): def get_document(self):
document = get_object_or_404(Document, pk=self.kwargs['pk']) document = get_object_or_404(Document, pk=self.kwargs['pk'])
@@ -164,14 +153,12 @@ class APIResolvedSmartLinkListView(generics.ListAPIView):
class APISmartLinkConditionListView(generics.ListCreateAPIView): class APISmartLinkConditionListView(generics.ListCreateAPIView):
"""
get: Returns a list of all the smart link conditions.
post: Create a new smart link condition.
"""
serializer_class = SmartLinkConditionSerializer serializer_class = SmartLinkConditionSerializer
def get(self, *args, **kwargs):
"""
Returns a list of all the smart link conditions.
"""
return super(APISmartLinkConditionListView, self).get(*args, **kwargs)
def get_queryset(self): def get_queryset(self):
return self.get_smart_link().conditions.all() return self.get_smart_link().conditions.all()
@@ -204,31 +191,17 @@ class APISmartLinkConditionListView(generics.ListCreateAPIView):
return smart_link return smart_link
def post(self, *args, **kwargs):
"""
Create a new smart link condition.
"""
return super(APISmartLinkConditionListView, self).post(*args, **kwargs)
class APISmartLinkConditionView(generics.RetrieveUpdateDestroyAPIView): class APISmartLinkConditionView(generics.RetrieveUpdateDestroyAPIView):
"""
delete: Delete the selected smart link condition.
get: Return the details of the selected smart link condition.
patch: Edit the selected smart link condition.
put: Edit the selected smart link condition.
"""
lookup_url_kwarg = 'condition_pk' lookup_url_kwarg = 'condition_pk'
serializer_class = SmartLinkConditionSerializer serializer_class = SmartLinkConditionSerializer
def delete(self, *args, **kwargs):
"""
Delete the selected smart link condition.
"""
return super(APISmartLinkConditionView, self).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Return the details of the selected smart link condition.
"""
return super(APISmartLinkConditionView, self).get(*args, **kwargs)
def get_queryset(self): def get_queryset(self):
return self.get_smart_link().conditions.all() return self.get_smart_link().conditions.all()
@@ -261,35 +234,18 @@ class APISmartLinkConditionView(generics.RetrieveUpdateDestroyAPIView):
return smart_link return smart_link
def patch(self, *args, **kwargs):
"""
Edit the selected smart link condition.
"""
return super(APISmartLinkConditionView, self).patch(*args, **kwargs)
def put(self, *args, **kwargs):
"""
Edit the selected smart link condition.
"""
return super(APISmartLinkConditionView, self).put(*args, **kwargs)
class APISmartLinkListView(generics.ListCreateAPIView): class APISmartLinkListView(generics.ListCreateAPIView):
"""
get: Returns a list of all the smart links.
post: Create a new smart link.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = {'GET': (permission_smart_link_view,)} mayan_object_permissions = {'GET': (permission_smart_link_view,)}
mayan_view_permissions = {'POST': (permission_smart_link_create,)} mayan_view_permissions = {'POST': (permission_smart_link_create,)}
permission_classes = (MayanPermission,) permission_classes = (MayanPermission,)
queryset = SmartLink.objects.all() queryset = SmartLink.objects.all()
def get(self, *args, **kwargs):
"""
Returns a list of all the smart links.
"""
return super(APISmartLinkListView, self).get(*args, **kwargs)
def get_serializer(self, *args, **kwargs): def get_serializer(self, *args, **kwargs):
if not self.request: if not self.request:
return None return None
@@ -302,15 +258,14 @@ class APISmartLinkListView(generics.ListCreateAPIView):
else: else:
return WritableSmartLinkSerializer return WritableSmartLinkSerializer
def post(self, *args, **kwargs):
"""
Create a new smart link.
"""
return super(APISmartLinkListView, self).post(*args, **kwargs)
class APISmartLinkView(generics.RetrieveUpdateDestroyAPIView): class APISmartLinkView(generics.RetrieveUpdateDestroyAPIView):
"""
delete: Delete the selected smart link.
get: Return the details of the selected smart link.
patch: Edit the selected smart link.
put: Edit the selected smart link.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = { mayan_object_permissions = {
'DELETE': (permission_smart_link_delete,), 'DELETE': (permission_smart_link_delete,),
@@ -320,20 +275,6 @@ class APISmartLinkView(generics.RetrieveUpdateDestroyAPIView):
} }
queryset = SmartLink.objects.all() queryset = SmartLink.objects.all()
def delete(self, *args, **kwargs):
"""
Delete the selected smart link.
"""
return super(APISmartLinkView, self).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Return the details of the selected smart ink.
"""
return super(APISmartLinkView, self).get(*args, **kwargs)
def get_serializer(self, *args, **kwargs): def get_serializer(self, *args, **kwargs):
if not self.request: if not self.request:
return None return None
@@ -345,17 +286,3 @@ class APISmartLinkView(generics.RetrieveUpdateDestroyAPIView):
return SmartLinkSerializer return SmartLinkSerializer
else: else:
return WritableSmartLinkSerializer return WritableSmartLinkSerializer
def patch(self, *args, **kwargs):
"""
Edit the selected smart link.
"""
return super(APISmartLinkView, self).patch(*args, **kwargs)
def put(self, *args, **kwargs):
"""
Edit the selected smart link.
"""
return super(APISmartLinkView, self).put(*args, **kwargs)

View File

@@ -14,6 +14,9 @@ from .serializers import DocumentPageOCRContentSerializer
class APIDocumentOCRView(generics.GenericAPIView): class APIDocumentOCRView(generics.GenericAPIView):
"""
post: Submit a document for OCR.
"""
mayan_object_permissions = { mayan_object_permissions = {
'POST': (permission_ocr_document,) 'POST': (permission_ocr_document,)
} }
@@ -27,20 +30,14 @@ class APIDocumentOCRView(generics.GenericAPIView):
return None return None
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
"""
Submit a document for OCR.
---
omit_serializer: true
responseMessages:
- code: 202
message: Accepted
"""
self.get_object().submit_for_ocr() self.get_object().submit_for_ocr()
return Response(status=status.HTTP_202_ACCEPTED) return Response(status=status.HTTP_202_ACCEPTED)
class APIDocumentVersionOCRView(generics.GenericAPIView): class APIDocumentVersionOCRView(generics.GenericAPIView):
"""
post: Submit a document version for OCR.
"""
lookup_url_kwarg = 'version_pk' lookup_url_kwarg = 'version_pk'
mayan_object_permissions = { mayan_object_permissions = {
'POST': (permission_ocr_document,) 'POST': (permission_ocr_document,)
@@ -61,22 +58,13 @@ class APIDocumentVersionOCRView(generics.GenericAPIView):
return None return None
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
"""
Submit a document version for OCR.
---
omit_serializer: true
responseMessages:
- code: 202
message: Accepted
"""
self.get_object().submit_for_ocr() self.get_object().submit_for_ocr()
return Response(status=status.HTTP_202_ACCEPTED) return Response(status=status.HTTP_202_ACCEPTED)
class APIDocumentPageOCRContentView(generics.RetrieveAPIView): class APIDocumentPageOCRContentView(generics.RetrieveAPIView):
""" """
Returns the OCR content of the selected document page. get: Returns the OCR content of the selected document page.
""" """
lookup_url_kwarg = 'page_pk' lookup_url_kwarg = 'page_pk'
mayan_object_permissions = { mayan_object_permissions = {

View File

@@ -17,31 +17,24 @@ from .serializers import (
class APIPermissionList(generics.ListAPIView): class APIPermissionList(generics.ListAPIView):
"""
get: Returns a list of all the available permissions.
"""
serializer_class = PermissionSerializer serializer_class = PermissionSerializer
queryset = Permission.all() queryset = Permission.all()
def get(self, *args, **kwargs):
"""
Returns a list of all the available permissions.
"""
return super(APIPermissionList, self).get(*args, **kwargs)
class APIRoleListView(generics.ListCreateAPIView): class APIRoleListView(generics.ListCreateAPIView):
"""
get: Returns a list of all the roles.
post: Create a new role.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = {'GET': (permission_role_view,)} mayan_object_permissions = {'GET': (permission_role_view,)}
mayan_view_permissions = {'POST': (permission_role_create,)} mayan_view_permissions = {'POST': (permission_role_create,)}
permission_classes = (MayanPermission,) permission_classes = (MayanPermission,)
queryset = Role.objects.all() queryset = Role.objects.all()
def get(self, *args, **kwargs):
"""
Returns a list of all the roles.
"""
return super(APIRoleListView, self).get(*args, **kwargs)
def get_serializer(self, *args, **kwargs): def get_serializer(self, *args, **kwargs):
if not self.request: if not self.request:
return None return None
@@ -54,15 +47,14 @@ class APIRoleListView(generics.ListCreateAPIView):
elif self.request.method == 'POST': elif self.request.method == 'POST':
return WritableRoleSerializer return WritableRoleSerializer
def post(self, *args, **kwargs):
"""
Create a new role.
"""
return super(APIRoleListView, self).post(*args, **kwargs)
class APIRoleView(generics.RetrieveUpdateDestroyAPIView): class APIRoleView(generics.RetrieveUpdateDestroyAPIView):
"""
delete: Delete the selected role.
get: Return the details of the selected role.
patch: Edit the selected role.
put: Edit the selected role.
"""
mayan_object_permissions = { mayan_object_permissions = {
'GET': (permission_role_view,), 'GET': (permission_role_view,),
'PUT': (permission_role_edit,), 'PUT': (permission_role_edit,),
@@ -72,20 +64,6 @@ class APIRoleView(generics.RetrieveUpdateDestroyAPIView):
permission_classes = (MayanPermission,) permission_classes = (MayanPermission,)
queryset = Role.objects.all() queryset = Role.objects.all()
def delete(self, *args, **kwargs):
"""
Delete the selected role.
"""
return super(APIRoleView, self).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Return the details of the selected role.
"""
return super(APIRoleView, self).get(*args, **kwargs)
def get_serializer(self, *args, **kwargs): def get_serializer(self, *args, **kwargs):
if not self.request: if not self.request:
return None return None
@@ -97,17 +75,3 @@ class APIRoleView(generics.RetrieveUpdateDestroyAPIView):
return RoleSerializer return RoleSerializer
elif self.request.method in ('PATCH', 'PUT'): elif self.request.method in ('PATCH', 'PUT'):
return WritableRoleSerializer return WritableRoleSerializer
def patch(self, *args, **kwargs):
"""
Edit the selected role.
"""
return super(APIRoleView, self).patch(*args, **kwargs)
def put(self, *args, **kwargs):
"""
Edit the selected role.
"""
return super(APIRoleView, self).put(*args, **kwargs)

View File

@@ -15,7 +15,7 @@ class APIRoot(APIView):
def get(self, request, format=None): def get(self, request, format=None):
""" """
Return a list of all users. get: Return a list of all endpoints.
""" """
endpoint_enumerator = EndpointEnumerator() endpoint_enumerator = EndpointEnumerator()
@@ -32,5 +32,4 @@ class BrowseableObtainAuthToken(ObtainAuthToken):
""" """
Obtain an API authentication token. Obtain an API authentication token.
""" """
renderer_classes = (renderers.BrowsableAPIRenderer, renderers.JSONRenderer) renderer_classes = (renderers.BrowsableAPIRenderer, renderers.JSONRenderer)

View File

@@ -13,7 +13,7 @@ from .serializers import StagingFolderFileSerializer, StagingFolderSerializer
class APIStagingSourceFileView(generics.GenericAPIView): class APIStagingSourceFileView(generics.GenericAPIView):
""" """
Details of the selected staging file. get: Details of the selected staging file.
""" """
serializer_class = StagingFolderFileSerializer serializer_class = StagingFolderFileSerializer
@@ -31,7 +31,7 @@ class APIStagingSourceFileView(generics.GenericAPIView):
class APIStagingSourceListView(generics.ListAPIView): class APIStagingSourceListView(generics.ListAPIView):
""" """
Returns a list of all the staging folders and the files they contain. get: Returns a list of all the staging folders and the files they contain.
""" """
serializer_class = StagingFolderSerializer serializer_class = StagingFolderSerializer
@@ -40,7 +40,7 @@ class APIStagingSourceListView(generics.ListAPIView):
class APIStagingSourceView(generics.RetrieveAPIView): class APIStagingSourceView(generics.RetrieveAPIView):
""" """
Details of the selected staging folders and the files it contains. get: Details of the selected staging folders and the files it contains.
""" """
serializer_class = StagingFolderSerializer serializer_class = StagingFolderSerializer
queryset = StagingFolderSource.objects.all() queryset = StagingFolderSource.objects.all()
@@ -48,17 +48,8 @@ class APIStagingSourceView(generics.RetrieveAPIView):
class APIStagingSourceFileImageView(generics.RetrieveAPIView): class APIStagingSourceFileImageView(generics.RetrieveAPIView):
""" """
Returns an image representation of the selected document. get: Returns an image representation of the selected document.
---
GET:
omit_serializer: true
parameters:
- name: size
description: 'x' seprated width and height of the desired image representation.
paramType: query
type: number
""" """
def get_serializer(self, *args, **kwargs): def get_serializer(self, *args, **kwargs):
return None return None

View File

@@ -25,6 +25,10 @@ from .serializers import (
class APITagListView(generics.ListCreateAPIView): class APITagListView(generics.ListCreateAPIView):
"""
get: Returns a list of all the tags.
post: Create a new tag.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = {'GET': (permission_tag_view,)} mayan_object_permissions = {'GET': (permission_tag_view,)}
mayan_view_permissions = {'POST': (permission_tag_create,)} mayan_view_permissions = {'POST': (permission_tag_create,)}
@@ -43,22 +47,14 @@ class APITagListView(generics.ListCreateAPIView):
elif self.request.method == 'POST': elif self.request.method == 'POST':
return WritableTagSerializer return WritableTagSerializer
def get(self, *args, **kwargs):
"""
Returns a list of all the tags.
"""
return super(APITagListView, self).get(*args, **kwargs)
def post(self, *args, **kwargs):
"""
Create a new tag.
"""
return super(APITagListView, self).post(*args, **kwargs)
class APITagView(generics.RetrieveUpdateDestroyAPIView): class APITagView(generics.RetrieveUpdateDestroyAPIView):
"""
delete: Delete the selected tag.
get: Return the details of the selected tag.
patch: Edit the selected tag.
put: Edit the selected tag.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = { mayan_object_permissions = {
'DELETE': (permission_tag_delete,), 'DELETE': (permission_tag_delete,),
@@ -68,20 +64,6 @@ class APITagView(generics.RetrieveUpdateDestroyAPIView):
} }
queryset = Tag.objects.all() queryset = Tag.objects.all()
def delete(self, *args, **kwargs):
"""
Delete the selected tag.
"""
return super(APITagView, self).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Return the details of the selected tag.
"""
return super(APITagView, self).get(*args, **kwargs)
def get_serializer(self, *args, **kwargs): def get_serializer(self, *args, **kwargs):
if not self.request: if not self.request:
return None return None
@@ -94,26 +76,11 @@ class APITagView(generics.RetrieveUpdateDestroyAPIView):
else: else:
return WritableTagSerializer return WritableTagSerializer
def patch(self, *args, **kwargs):
"""
Edit the selected tag.
"""
return super(APITagView, self).patch(*args, **kwargs)
def put(self, *args, **kwargs):
"""
Edit the selected tag.
"""
return super(APITagView, self).put(*args, **kwargs)
class APITagDocumentListView(generics.ListAPIView): class APITagDocumentListView(generics.ListAPIView):
""" """
Returns a list of all the documents tagged by a particular tag. get: Returns a list of all the documents tagged by a particular tag.
""" """
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = {'GET': (permission_document_view,)} mayan_object_permissions = {'GET': (permission_document_view,)}
serializer_class = DocumentSerializer serializer_class = DocumentSerializer
@@ -129,19 +96,16 @@ class APITagDocumentListView(generics.ListAPIView):
class APIDocumentTagListView(generics.ListCreateAPIView): class APIDocumentTagListView(generics.ListCreateAPIView):
"""
get: Returns a list of all the tags attached to a document.
post: Attach a tag to a document.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = { mayan_object_permissions = {
'GET': (permission_tag_view,), 'GET': (permission_tag_view,),
'POST': (permission_tag_attach,) 'POST': (permission_tag_attach,)
} }
def get(self, *args, **kwargs):
"""
Returns a list of all the tags attached to a document.
"""
return super(APIDocumentTagListView, self).get(*args, **kwargs)
def get_document(self): def get_document(self):
return get_object_or_404(Document, pk=self.kwargs['document_pk']) return get_object_or_404(Document, pk=self.kwargs['document_pk'])
@@ -184,17 +148,12 @@ class APIDocumentTagListView(generics.ListCreateAPIView):
def perform_create(self, serializer): def perform_create(self, serializer):
serializer.save(document=self.get_document()) serializer.save(document=self.get_document())
def post(self, request, *args, **kwargs):
"""
Attach a tag to a document.
"""
return super(
APIDocumentTagListView, self
).post(request, *args, **kwargs)
class APIDocumentTagView(generics.RetrieveDestroyAPIView): class APIDocumentTagView(generics.RetrieveDestroyAPIView):
"""
delete: Remove a tag from the selected document.
get: Returns the details of the selected document tag.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = { mayan_object_permissions = {
'GET': (permission_tag_view,), 'GET': (permission_tag_view,),
@@ -202,22 +161,6 @@ class APIDocumentTagView(generics.RetrieveDestroyAPIView):
} }
serializer_class = DocumentTagSerializer serializer_class = DocumentTagSerializer
def delete(self, request, *args, **kwargs):
"""
Remove a tag from the selected document.
"""
return super(
APIDocumentTagView, self
).delete(request, *args, **kwargs)
def get(self, *args, **kwargs):
"""
Returns the details of the selected document tag.
"""
return super(APIDocumentTagView, self).get(*args, **kwargs)
def get_document(self): def get_document(self):
document = get_object_or_404(Document, pk=self.kwargs['document_pk']) document = get_object_or_404(Document, pk=self.kwargs['document_pk'])

View File

@@ -21,41 +21,23 @@ from .serializers import (
class APICurrentUserView(generics.RetrieveUpdateDestroyAPIView): class APICurrentUserView(generics.RetrieveUpdateDestroyAPIView):
"""
delete: Delete the current user.
get: Return the details of the current user.
patch: Partially edit the current user.
put: Edit the current user.
"""
serializer_class = UserSerializer serializer_class = UserSerializer
def get_object(self): def get_object(self):
return self.request.user return self.request.user
def delete(self, *args, **kwargs):
"""
Delete the current user.
"""
return super(APICurrentUserView, self).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Return the details of the current user.
"""
return super(APICurrentUserView, self).get(*args, **kwargs)
def patch(self, *args, **kwargs):
"""
Partially edit the current user.
"""
return super(APICurrentUserView, self).patch(*args, **kwargs)
def put(self, *args, **kwargs):
"""
Edit the current user.
"""
return super(APICurrentUserView, self).put(*args, **kwargs)
class APIGroupListView(generics.ListCreateAPIView): class APIGroupListView(generics.ListCreateAPIView):
"""
get: Returns a list of all the groups.
post: Create a new group.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = {'GET': (permission_group_view,)} mayan_object_permissions = {'GET': (permission_group_view,)}
mayan_view_permissions = {'POST': (permission_group_create,)} mayan_view_permissions = {'POST': (permission_group_create,)}
@@ -63,22 +45,14 @@ class APIGroupListView(generics.ListCreateAPIView):
queryset = Group.objects.all() queryset = Group.objects.all()
serializer_class = GroupSerializer serializer_class = GroupSerializer
def get(self, *args, **kwargs):
"""
Returns a list of all the groups.
"""
return super(APIGroupListView, self).get(*args, **kwargs)
def post(self, *args, **kwargs):
"""
Create a new group.
"""
return super(APIGroupListView, self).post(*args, **kwargs)
class APIGroupView(generics.RetrieveUpdateDestroyAPIView): class APIGroupView(generics.RetrieveUpdateDestroyAPIView):
"""
delete: Delete the selected group.
get: Return the details of the selected group.
patch: Partially edit the selected group.
put: Edit the selected group.
"""
mayan_object_permissions = { mayan_object_permissions = {
'GET': (permission_group_view,), 'GET': (permission_group_view,),
'PUT': (permission_group_edit,), 'PUT': (permission_group_edit,),
@@ -89,36 +63,12 @@ class APIGroupView(generics.RetrieveUpdateDestroyAPIView):
queryset = Group.objects.all() queryset = Group.objects.all()
serializer_class = GroupSerializer serializer_class = GroupSerializer
def delete(self, *args, **kwargs):
"""
Delete the selected group.
"""
return super(APIGroupView, self).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Return the details of the selected group.
"""
return super(APIGroupView, self).get(*args, **kwargs)
def patch(self, *args, **kwargs):
"""
Partially edit the selected group.
"""
return super(APIGroupView, self).patch(*args, **kwargs)
def put(self, *args, **kwargs):
"""
Edit the selected group.
"""
return super(APIGroupView, self).put(*args, **kwargs)
class APIUserListView(generics.ListCreateAPIView): class APIUserListView(generics.ListCreateAPIView):
"""
get: Returns a list of all the users.
post: Create a new user.
"""
filter_backends = (MayanObjectPermissionsFilter,) filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = {'GET': (permission_user_view,)} mayan_object_permissions = {'GET': (permission_user_view,)}
mayan_view_permissions = {'POST': (permission_user_create,)} mayan_view_permissions = {'POST': (permission_user_create,)}
@@ -126,21 +76,14 @@ class APIUserListView(generics.ListCreateAPIView):
queryset = get_user_model().objects.all() queryset = get_user_model().objects.all()
serializer_class = UserSerializer serializer_class = UserSerializer
def get(self, *args, **kwargs):
"""
Returns a list of all the users.
"""
return super(APIUserListView, self).get(*args, **kwargs)
def post(self, *args, **kwargs):
"""
Create a new user.
"""
return super(APIUserListView, self).post(*args, **kwargs)
class APIUserView(generics.RetrieveUpdateDestroyAPIView): class APIUserView(generics.RetrieveUpdateDestroyAPIView):
"""
delete: Delete the selected user.
get: Return the details of the selected user.
patch: Partially edit the selected user.
put: Edit the selected user.
"""
mayan_object_permissions = { mayan_object_permissions = {
'GET': (permission_user_view,), 'GET': (permission_user_view,),
'PUT': (permission_user_edit,), 'PUT': (permission_user_edit,),
@@ -151,40 +94,12 @@ class APIUserView(generics.RetrieveUpdateDestroyAPIView):
queryset = get_user_model().objects.all() queryset = get_user_model().objects.all()
serializer_class = UserSerializer serializer_class = UserSerializer
def delete(self, *args, **kwargs):
"""
Delete the selected user.
"""
return super(APIUserView, self).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Return the details of the selected user.
"""
return super(APIUserView, self).get(*args, **kwargs)
def patch(self, *args, **kwargs):
"""
Partially edit the selected user.
"""
return super(APIUserView, self).patch(*args, **kwargs)
def put(self, *args, **kwargs):
"""
Edit the selected user.
"""
return super(APIUserView, self).put(*args, **kwargs)
class APIUserGroupList(generics.ListCreateAPIView): class APIUserGroupList(generics.ListCreateAPIView):
""" """
Returns a list of all the groups to which an user belongs. get: Returns a list of all the groups to which an user belongs.
post: Add a user to a list of groups.
""" """
mayan_object_permissions = { mayan_object_permissions = {
'GET': (permission_user_view,), 'GET': (permission_user_view,),
'POST': (permission_user_edit,) 'POST': (permission_user_edit,)
@@ -241,9 +156,3 @@ class APIUserGroupList(generics.ListCreateAPIView):
def perform_create(self, serializer): def perform_create(self, serializer):
serializer.save(user=self.get_user(), _user=self.request.user) serializer.save(user=self.get_user(), _user=self.request.user)
def post(self, request, *args, **kwargs):
"""
Add a user to a list of groups.
"""
return super(APIUserGroupList, self).post(request, *args, **kwargs)