Added document type

This commit is contained in:
Jonas Winkler
2018-08-24 13:45:15 +02:00
parent ba90fbabae
commit 11b4e56790
9 changed files with 222 additions and 10 deletions

View File

@@ -8,7 +8,7 @@ from django.contrib.auth.models import User
from django.contrib.contenttypes.models import ContentType
from django.utils import timezone
from ..models import Correspondent, Document, Tag
from ..models import Correspondent, Document, Tag, DocumentType
def logger(message, group):
@@ -44,6 +44,35 @@ def set_correspondent(sender, document=None, logging_group=None, **kwargs):
document.save(update_fields=("correspondent",))
def set_document_type(sender, document=None, logging_group=None, **kwargs):
# No sense in assigning a correspondent when one is already set.
if document.document_type:
return
# No matching document types, so no need to continue
potential_document_types = list(DocumentType.match_all(document.content))
if not potential_document_types:
return
potential_count = len(potential_document_types)
selected = potential_document_types[0]
if potential_count > 1:
message = "Detected {} potential document types, so we've opted for {}"
logger(
message.format(potential_count, selected),
logging_group
)
logger(
'Assigning document type "{}" to "{}" '.format(selected, document),
logging_group
)
document.document_type = selected
document.save(update_fields=("document_type",))
def set_tags(sender, document=None, logging_group=None, **kwargs):
current_tags = set(document.tags.all())