Add natural key support to the document parsing app.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2018-08-05 20:07:57 -04:00
parent 37fc968f50
commit 10231363e6
2 changed files with 21 additions and 1 deletions

View File

@@ -4,6 +4,7 @@ import logging
import sys
import traceback
from django.apps import apps
from django.conf import settings
from django.db import models
@@ -48,3 +49,16 @@ class DocumentPageContentManager(models.Manager):
action_object=document_version.document,
target=document_version
)
class DocumentTypeSettingsManager(models.Manager):
def get_by_natural_key(self, document_type_natural_key):
DocumentType = apps.get_model(
app_label='documents', model_name='DocumentType'
)
try:
document_type = DocumentType.objects.get_by_natural_key(document_type_natural_key)
except DocumentType.DoesNotExist:
raise self.model.DoesNotExist
return self.get(document_type__pk=document_type.pk)

View File

@@ -6,7 +6,7 @@ from django.utils.translation import ugettext_lazy as _
from documents.models import DocumentPage, DocumentType, DocumentVersion
from .managers import DocumentPageContentManager
from .managers import DocumentPageContentManager, DocumentTypeSettingsManager
@python_2_unicode_compatible
@@ -37,6 +37,12 @@ class DocumentTypeSettings(models.Model):
verbose_name=_('Automatically queue newly created documents for parsing.')
)
objects = DocumentTypeSettingsManager()
def natural_key(self):
return self.document_type.natural_key()
natural_key.dependencies = ['documents.DocumentType']
class Meta:
verbose_name = _('Document type settings')
verbose_name_plural = _('Document types settings')