Add tool view to perform OCR on all documents at once.

This commit is contained in:
Roberto Rosario
2015-07-17 13:04:51 -04:00
parent e7f626aba4
commit 653a145914
4 changed files with 22 additions and 3 deletions

View File

@@ -25,7 +25,7 @@ from rest_api.classes import APIEndPoint
from .handlers import initialize_new_ocr_settings, post_version_upload_ocr
from .links import (
link_document_content, link_document_submit,
link_document_content, link_document_submit, link_document_submit_all,
link_document_submit_multiple, link_document_type_ocr_settings,
link_entry_delete, link_entry_delete_multiple, link_entry_list,
link_entry_re_queue, link_entry_re_queue_multiple
@@ -89,7 +89,7 @@ class OCRApp(MayanAppConfig):
menu_object.bind_links(links=[link_entry_re_queue, link_entry_delete], sources=[DocumentVersionOCRError])
menu_object.bind_links(links=[link_document_type_ocr_settings], sources=[DocumentType])
menu_secondary.bind_links(links=[link_entry_list], sources=['ocr:entry_list', 'ocr:entry_delete_multiple', 'ocr:entry_re_queue_multiple', DocumentVersionOCRError])
menu_tools.bind_links(links=[link_entry_list])
menu_tools.bind_links(links=[link_document_submit_all, link_entry_list])
post_save.connect(initialize_new_ocr_settings, dispatch_uid='initialize_new_ocr_settings', sender=DocumentType)
post_version_upload.connect(post_version_upload_ocr, dispatch_uid='post_version_upload_ocr', sender=DocumentVersion)

View File

@@ -11,6 +11,7 @@ from .permissions import (
link_document_content = Link(permissions=[permission_ocr_content_view], text=_('Content'), view='ocr:document_content', args='resolved_object.id')
link_document_submit = Link(permissions=[permission_ocr_document], text=_('Submit for OCR'), view='ocr:document_submit', args='object.id')
link_document_submit_all = Link(icon='fa fa-font', permissions=[permission_ocr_document], text=_('OCR all documents'), view='ocr:document_submit_all')
link_document_submit_multiple = Link(text=_('Submit for OCR'), view='ocr:document_submit_multiple')
link_document_type_ocr_settings = Link(permissions=[permission_document_type_ocr_setup], text=_('Setup OCR'), view='ocr:document_type_ocr_settings', args='resolved_object.id')
link_entry_delete = Link(permissions=[permission_ocr_document_delete], text=_('Delete'), view='ocr:entry_delete', args='object.id')

View File

@@ -4,13 +4,15 @@ from django.conf.urls import patterns, url
from .api_views import DocumentVersionOCRView
from .views import (
DocumentManySubmitView, DocumentSubmitView, DocumentTypeSettingsEditView
DocumentSubmitView, DocumentAllSubmitView, DocumentManySubmitView,
DocumentTypeSettingsEditView
)
urlpatterns = patterns(
'ocr.views',
url(r'^(?P<document_id>\d+)/content/$', 'document_content', name='document_content'),
url(r'^document/(?P<pk>\d+)/submit/$', DocumentSubmitView.as_view(), name='document_submit'),
url(r'^document/all/submit/$', DocumentAllSubmitView.as_view(), name='document_submit_all'),
url(r'^document/multiple/submit/$', DocumentManySubmitView.as_view(), name='document_submit_multiple'),
url(r'^document_type/(?P<pk>\d+)/ocr/settings/$', DocumentTypeSettingsEditView.as_view(), name='document_type_ocr_settings'),

View File

@@ -54,6 +54,22 @@ class DocumentSubmitView(ConfirmView):
return HttpResponseRedirect(self.get_success_url())
class DocumentAllSubmitView(ConfirmView):
extra_context = {
'title': _('Submit all documents for OCR?')
}
def post(self, request, *args, **kwargs):
count = 0
for document in Document.objects.all():
document.submit_for_ocr()
count += 1
messages.success(request, _('%d documents added to the OCR queue.') % count)
return HttpResponseRedirect(self.get_success_url())
class DocumentManySubmitView(DocumentSubmitView):
def get_context_data(self, **kwargs):
context = super(DocumentManySubmitView, self).get_context_data(**kwargs)