diff --git a/mayan/apps/ocr/apps.py b/mayan/apps/ocr/apps.py index f1f21b641f..92044f4ec0 100644 --- a/mayan/apps/ocr/apps.py +++ b/mayan/apps/ocr/apps.py @@ -4,6 +4,7 @@ import logging import sh +from django.db.models.signals import post_save from django.utils.translation import ugettext_lazy as _ from acls import ModelPermission @@ -20,7 +21,7 @@ from installation import PropertyNamespace from navigation import SourceColumn from rest_api.classes import APIEndPoint -from .handlers import post_version_upload_ocr +from .handlers import initialize_new_ocr_settings, post_version_upload_ocr from .links import ( link_document_content, link_document_submit, link_document_submit_multiple, link_document_type_ocr_settings, @@ -55,16 +56,16 @@ class OCRApp(MayanAppConfig): Document.add_to_class('submit_for_ocr', document_ocr_submit) DocumentVersion.add_to_class('submit_for_ocr', document_version_ocr_submit) - SourceColumn(source=DocumentVersionOCRError, label=_('Document'), attribute=encapsulate(lambda entry: document_link(entry.document_version.document))) - SourceColumn(source=DocumentVersionOCRError, label=_('Added'), attribute='datetime_submitted') - SourceColumn(source=DocumentVersionOCRError, label=_('Result'), attribute='result') - ModelPermission.register( model=Document, permissions=( permission_ocr_document, permission_ocr_content_view ) ) + SourceColumn(source=DocumentVersionOCRError, label=_('Document'), attribute=encapsulate(lambda entry: document_link(entry.document_version.document))) + SourceColumn(source=DocumentVersionOCRError, label=_('Added'), attribute='datetime_submitted') + SourceColumn(source=DocumentVersionOCRError, label=_('Result'), attribute='result') + document_search.add_model_field(field='versions__pages__ocr_content__content', label=_('Content')) menu_facet.bind_links(links=[link_document_content], sources=[Document]) @@ -76,6 +77,7 @@ class OCRApp(MayanAppConfig): 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]) + 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) namespace = PropertyNamespace('ocr', _('OCR')) diff --git a/mayan/apps/ocr/handlers.py b/mayan/apps/ocr/handlers.py index f9e35fa6fc..dcd25df840 100644 --- a/mayan/apps/ocr/handlers.py +++ b/mayan/apps/ocr/handlers.py @@ -4,9 +4,16 @@ import logging logger = logging.getLogger(__name__) +from .models import DocumentTypeSettings + def post_version_upload_ocr(sender, instance, **kwargs): logger.debug('received post_version_upload') logger.debug('instance pk: %s', instance.pk) if instance.document.document_type.ocr_settings.auto_ocr: instance.submit_for_ocr() + + +def initialize_new_ocr_settings(sender, instance, **kwargs): + if kwargs['created']: + DocumentTypeSettings.objects.create(document_type=instance) diff --git a/mayan/apps/ocr/views.py b/mayan/apps/ocr/views.py index a1ce67c938..c866761f1b 100644 --- a/mayan/apps/ocr/views.py +++ b/mayan/apps/ocr/views.py @@ -82,9 +82,7 @@ class DocumentTypeSettingsEditView(SingleObjectEditView): view_permission = permission_document_type_ocr_setup def get_object(self, queryset=None): - document_type = get_object_or_404(DocumentType, pk=self.kwargs['pk']) - instance, created = DocumentTypeSettings.objects.get_or_create(document_type=document_type) - return instance + return get_object_or_404(DocumentType, pk=self.kwargs['pk']).ocr_settings def get_context_data(self, **kwargs): context = super(DocumentTypeSettingsEditView, self).get_context_data(**kwargs)