Refactor the model accesors

Refactor the accesors to behave like methods instead of properties.
This means all accesors will be prepended with the string
"get_" and will include a set of parenthesis.

Improve the ModeAttribute class to use the method's
short_description. This commit also adds support for a
new method .help_text attribute has been added.

Move accessors to their own module, named "methods.py".

Remove the PropertyHelper class as the accessors no longer
need it.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
This commit is contained in:
Roberto Rosario
2018-12-15 04:49:40 -04:00
parent 8c63ef4c69
commit 0e86f2ad8a
42 changed files with 434 additions and 282 deletions

View File

@@ -5,20 +5,24 @@ from django.utils.encoding import force_text
from django.utils.html import conditional_escape
def get_document_content(document):
def get_document_content_iterator(document):
latest_version = document.latest_version
if latest_version:
return get_document_version_content_iterator(
document_version=latest_version
)
def get_document_version_content_iterator(document_version):
DocumentPageContent = apps.get_model(
app_label='document_parsing', model_name='DocumentPageContent'
)
for page in document.pages.all():
for page in document_version.pages.all():
try:
page_content = page.content.content
except DocumentPageContent.DoesNotExist:
return
else:
yield conditional_escape(force_text(page_content))
@property
def document_property_content(self):
return ' '.join(get_document_content(self))