Add OCR content deleted event
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
* Update jQuery to version 3.4.1
|
||||
* Add support for deleting the OCR content of a document
|
||||
or selection of documents.
|
||||
* Add OCR content deleted event.
|
||||
|
||||
3.2.7 (2019-08-28)
|
||||
==================
|
||||
|
||||
@@ -14,9 +14,14 @@ from mayan.apps.common.menus import (
|
||||
)
|
||||
from mayan.apps.documents.search import document_search, document_page_search
|
||||
from mayan.apps.documents.signals import post_version_upload
|
||||
from mayan.apps.events.classes import ModelEventType
|
||||
from mayan.apps.navigation.classes import SourceColumn
|
||||
|
||||
from .dependencies import * # NOQA
|
||||
from .events import (
|
||||
event_ocr_document_content_deleted, event_ocr_document_version_finish,
|
||||
event_ocr_document_version_submit
|
||||
)
|
||||
from .handlers import (
|
||||
handler_index_document, handler_initialize_new_ocr_settings,
|
||||
handler_ocr_document_version,
|
||||
@@ -83,6 +88,14 @@ class OCRApp(MayanAppConfig):
|
||||
name='submit_for_ocr', value=method_document_version_ocr_submit
|
||||
)
|
||||
|
||||
ModelEventType.register(
|
||||
model=Document, event_types=(
|
||||
event_ocr_document_content_deleted,
|
||||
event_ocr_document_version_finish,
|
||||
event_ocr_document_version_submit
|
||||
)
|
||||
)
|
||||
|
||||
ModelField(
|
||||
model=Document, name='versions__pages__ocr_content__content'
|
||||
)
|
||||
|
||||
@@ -6,6 +6,10 @@ from mayan.apps.events.classes import EventTypeNamespace
|
||||
|
||||
namespace = EventTypeNamespace(label=_('OCR'), name='ocr')
|
||||
|
||||
event_ocr_document_content_deleted = namespace.add_event_type(
|
||||
label=_('Document OCR content deleted'),
|
||||
name='document_content_deleted'
|
||||
)
|
||||
event_ocr_document_version_submit = namespace.add_event_type(
|
||||
label=_('Document version submitted for OCR'),
|
||||
name='document_version_submit'
|
||||
|
||||
@@ -12,7 +12,9 @@ from mayan.apps.documents.storages import storage_documentimagecache
|
||||
from mayan.apps.documents.literals import DOCUMENT_IMAGE_TASK_TIMEOUT
|
||||
from mayan.apps.documents.tasks import task_generate_document_page_image
|
||||
|
||||
from .events import event_ocr_document_version_finish
|
||||
from .events import (
|
||||
event_ocr_document_content_deleted, event_ocr_document_version_finish
|
||||
)
|
||||
from .runtime import ocr_backend
|
||||
from .signals import post_document_version_ocr
|
||||
|
||||
@@ -20,11 +22,15 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class DocumentPageOCRContentManager(models.Manager):
|
||||
def delete_ocr_content_for(self, document):
|
||||
def delete_ocr_content_for(self, document, user=None):
|
||||
with transaction.atomic():
|
||||
for document_page in document.pages.all():
|
||||
self.filter(document_page=document_page).delete()
|
||||
|
||||
event_ocr_document_content_deleted.commit(
|
||||
actor=user, target=document
|
||||
)
|
||||
|
||||
def process_document_page(self, document_page):
|
||||
logger.info(
|
||||
'Processing page: %d of document version: %s',
|
||||
|
||||
@@ -5,11 +5,29 @@ from actstream.models import Action
|
||||
from mayan.apps.documents.tests.test_models import GenericDocumentTestCase
|
||||
|
||||
from ..events import (
|
||||
event_ocr_document_version_submit, event_ocr_document_version_finish
|
||||
event_ocr_document_content_deleted, event_ocr_document_version_submit,
|
||||
event_ocr_document_version_finish
|
||||
)
|
||||
from ..models import DocumentPageOCRContent
|
||||
|
||||
|
||||
class OCREventsTestCase(GenericDocumentTestCase):
|
||||
def test_document_content_deleted_event(self):
|
||||
Action.objects.all().delete()
|
||||
DocumentPageOCRContent.objects.delete_ocr_content_for(
|
||||
document=self.test_document
|
||||
)
|
||||
|
||||
# Get the oldest action
|
||||
action = Action.objects.order_by('-timestamp').last()
|
||||
|
||||
self.assertEqual(
|
||||
action.target, self.test_document
|
||||
)
|
||||
self.assertEqual(
|
||||
action.verb, event_ocr_document_content_deleted.id
|
||||
)
|
||||
|
||||
def test_document_version_submit_event(self):
|
||||
Action.objects.all().delete()
|
||||
self.test_document.submit_for_ocr()
|
||||
|
||||
@@ -47,7 +47,7 @@ class DocumentOCRContentDeleteView(MultipleObjectConfirmActionView):
|
||||
|
||||
def object_action(self, form, instance):
|
||||
DocumentPageOCRContent.objects.delete_ocr_content_for(
|
||||
document=instance
|
||||
document=instance, user=self.request.user
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user