Cleanup document version argument handling by making sure it is by document version and not by document instance

This commit is contained in:
Roberto Rosario
2015-06-05 00:58:55 -04:00
parent 1e02b4dadf
commit 97f68ea158
4 changed files with 47 additions and 42 deletions

View File

@@ -30,8 +30,8 @@ logger = logging.getLogger(__name__)
def document_pre_open_hook(descriptor, instance):
if DocumentVersionSignature.objects.has_embedded_signature(instance.document):
# If it has an embedded signature decrypt
if DocumentVersionSignature.objects.has_embedded_signature(document_version=instance):
# If it has an embedded signature, decrypt
try:
result = gpg.decrypt_file(descriptor, close_descriptor=False)
# gpg return a string, turn it into a file like object
@@ -46,11 +46,14 @@ def document_pre_open_hook(descriptor, instance):
return descriptor
def document_post_save_hook(instance):
if not instance.pk:
document_signature, created = DocumentVersionSignature.objects.get_or_create(
document_version=instance.latest_version,
)
def document_version_post_save_hook(instance):
logger.debug('instance: %s', instance)
try:
document_signature = DocumentVersionSignature.objects.get(document_version=instance)
except DocumentVersionSignature.DoesNotExist:
document_signature = DocumentVersionSignature.objects.create(document_version=instance)
document_signature.check_for_embedded_signature()
class DocumentSignaturesApp(apps.AppConfig):
@@ -58,7 +61,7 @@ class DocumentSignaturesApp(apps.AppConfig):
verbose_name = _('Document signatures')
def ready(self):
DocumentVersion.register_post_save_hook(1, document_post_save_hook)
DocumentVersion.register_post_save_hook(1, document_version_post_save_hook)
DocumentVersion.register_pre_open_hook(1, document_pre_open_hook)
class_permissions(Document, [