Improve OCR API views code.
This commit is contained in:
@@ -19,9 +19,15 @@ from .permissions import permission_ocr_content_view, permission_ocr_document
|
|||||||
from .serializers import DocumentPageContentSerializer
|
from .serializers import DocumentPageContentSerializer
|
||||||
|
|
||||||
|
|
||||||
class APIDocumentOCRView(APIView):
|
class APIDocumentOCRView(generics.GenericAPIView):
|
||||||
def get_object(self):
|
mayan_object_permissions = {
|
||||||
return get_object_or_404(Document, pk=self.kwargs['pk'])
|
'POST': (permission_ocr_document,)
|
||||||
|
}
|
||||||
|
permission_classes = (MayanPermission,)
|
||||||
|
queryset = Document.objects.all()
|
||||||
|
|
||||||
|
def get_serializer_class(self):
|
||||||
|
return None
|
||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
@@ -37,23 +43,19 @@ class APIDocumentOCRView(APIView):
|
|||||||
message: Accepted
|
message: Accepted
|
||||||
"""
|
"""
|
||||||
|
|
||||||
document = self.get_object()
|
self.get_object().submit_for_ocr()
|
||||||
try:
|
|
||||||
Permission.check_permissions(
|
|
||||||
self.request.user, (permission_ocr_document,)
|
|
||||||
)
|
|
||||||
except PermissionDenied:
|
|
||||||
AccessControlList.objects.check_access(
|
|
||||||
permission_ocr_document, self.request.user, document
|
|
||||||
)
|
|
||||||
|
|
||||||
document.submit_for_ocr()
|
|
||||||
return Response(status=status.HTTP_202_ACCEPTED)
|
return Response(status=status.HTTP_202_ACCEPTED)
|
||||||
|
|
||||||
|
|
||||||
class APIDocumentVersionOCRView(APIView):
|
class APIDocumentVersionOCRView(generics.GenericAPIView):
|
||||||
def get_object(self):
|
mayan_object_permissions = {
|
||||||
return get_object_or_404(DocumentVersion, pk=self.kwargs['pk'])
|
'POST': (permission_ocr_document,)
|
||||||
|
}
|
||||||
|
permission_classes = (MayanPermission,)
|
||||||
|
queryset = DocumentVersion.objects.all()
|
||||||
|
|
||||||
|
def get_serializer_class(self):
|
||||||
|
return None
|
||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
@@ -69,17 +71,7 @@ class APIDocumentVersionOCRView(APIView):
|
|||||||
message: Accepted
|
message: Accepted
|
||||||
"""
|
"""
|
||||||
|
|
||||||
document_version = self.get_object()
|
self.get_object().submit_for_ocr()
|
||||||
try:
|
|
||||||
Permission.check_permissions(
|
|
||||||
self.request.user, (permission_ocr_document,)
|
|
||||||
)
|
|
||||||
except PermissionDenied:
|
|
||||||
AccessControlList.objects.check_access(
|
|
||||||
permission_ocr_document, self.request.user, document_version
|
|
||||||
)
|
|
||||||
|
|
||||||
document_version.submit_for_ocr()
|
|
||||||
return Response(status=status.HTTP_202_ACCEPTED)
|
return Response(status=status.HTTP_202_ACCEPTED)
|
||||||
|
|
||||||
|
|
||||||
@@ -94,16 +86,20 @@ class APIDocumentPageContentView(generics.RetrieveAPIView):
|
|||||||
type: number
|
type: number
|
||||||
"""
|
"""
|
||||||
|
|
||||||
filter_backends = (MayanObjectPermissionsFilter,)
|
|
||||||
mayan_object_permissions = {
|
mayan_object_permissions = {
|
||||||
'GET': (permission_ocr_content_view,),
|
'GET': (permission_ocr_content_view,),
|
||||||
}
|
}
|
||||||
permission_classes = (MayanPermission,)
|
permission_classes = (MayanPermission,)
|
||||||
serializer_class = DocumentPageContentSerializer
|
serializer_class = DocumentPageContentSerializer
|
||||||
|
queryset = DocumentPage.objects.all()
|
||||||
|
|
||||||
|
def retrieve(self, request, *args, **kwargs):
|
||||||
|
instance = self.get_object()
|
||||||
|
|
||||||
def get_object(self):
|
|
||||||
document_page = get_object_or_404(DocumentPage, pk=self.kwargs['pk'])
|
|
||||||
try:
|
try:
|
||||||
return document_page.ocr_content
|
ocr_content = instance.ocr_content
|
||||||
except DocumentPageContent.DoesNotExist:
|
except DocumentPageContent.DoesNotExist:
|
||||||
return DocumentPageContent.objects.none()
|
ocr_content = DocumentPageContent.objects.none()
|
||||||
|
|
||||||
|
serializer = self.get_serializer(ocr_content)
|
||||||
|
return Response(serializer.data)
|
||||||
|
|||||||
Reference in New Issue
Block a user