Refactor the parsing app API

Add additional API and view tests.

Add success and multi document titles strings.

Make use of external mixin in the document type submit view.

Puntuate all view text strings.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
This commit is contained in:
Roberto Rosario
2019-02-22 23:46:15 -04:00
parent 3917ca667a
commit d546967d1d
8 changed files with 466 additions and 155 deletions

View File

@@ -2,6 +2,7 @@ from __future__ import unicode_literals
from datetime import timedelta
from django.apps import apps
from django.utils.timezone import now
from django.utils.translation import ugettext_lazy as _
@@ -9,48 +10,62 @@ from mayan.apps.common.settings import settings_db_sync_task_delay
from .events import event_parsing_document_version_submit
from .tasks import task_parse_document_version
from .utils import get_document_version_content_iterator
def method_document_submit_for_parsing(self):
latest_version = self.latest_version
# Don't error out if document has no version
if latest_version:
latest_version.submit_for_parsing()
def method_document_version_submit_for_parsing(self):
event_parsing_document_version_submit.commit(
action_object=self.document, target=self
)
task_parse_document_version.apply_async(
eta=now() + timedelta(seconds=settings_db_sync_task_delay.value),
kwargs={'document_version_pk': self.pk},
)
def method_get_document_content(self):
def method_document_get_content(self):
latest_version = self.latest_version
if latest_version:
return latest_version.get_content()
method_get_document_content.help_text = _(
method_document_get_content.help_text = _(
'Return the parsed content of the document.'
)
method_get_document_content.short_description = _(
method_document_get_content.short_description = _(
'get_content()'
)
def method_get_document_version_content(self):
return ' '.join(
get_document_version_content_iterator(document_version=self)
def method_document_page_get_content(self):
DocumentPageContent = apps.get_model(
app_label='document_parsing', model_name='DocumentPageContent'
)
try:
page_content = self.content.content
except DocumentPageContent.DoesNotExist:
return ''
else:
return page_content
method_get_document_version_content.help_text = _(
def method_document_submit_for_parsing(self, _user=None):
latest_version = self.latest_version
# Don't error out if document has no version
if latest_version:
latest_version.submit_for_parsing(_user=_user)
def method_document_version_get_content(self):
result = []
for page in self.pages.all():
result.append(page.get_content())
return ''.join(result)
method_document_version_get_content.help_text = _(
'Return the parsed content of the document version.'
)
def method_document_version_submit_for_parsing(self, _user=None):
event_parsing_document_version_submit.commit(
action_object=self.document, actor=_user, target=self
)
task_parse_document_version.apply_async(
eta=now() + timedelta(seconds=settings_db_sync_task_delay.value),
kwargs={'document_version_pk': self.pk},
)