diff --git a/apps/document_signatures/__init__.py b/apps/document_signatures/__init__.py index ac4eb1413e..f59d5f947d 100644 --- a/apps/document_signatures/__init__.py +++ b/apps/document_signatures/__init__.py @@ -11,12 +11,14 @@ from django.utils.translation import ugettext_lazy as _ #from django.db.models.signals import post_save #from django.dispatch import receiver -from documents.models import Document, DocumentVersion -from navigation.api import register_links -from django_gpg.runtime import gpg -from django_gpg.exceptions import GPGDecryptionError from acls.api import class_permissions +from documents.models import Document, DocumentVersion +from django_gpg.exceptions import GPGDecryptionError +from django_gpg.runtime import gpg +from navigation.api import register_links +from .links import (document_signature_upload, document_signature_download, + document_verify) from .models import DocumentVersionSignature from .permissions import ( PERMISSION_DOCUMENT_VERIFY, @@ -27,14 +29,6 @@ from .permissions import ( logger = logging.getLogger(__name__) -def has_embedded_signature(context): - return DocumentVersionSignature.objects.has_embedded_signature(context['object']) - - -def doesnt_have_detached_signature(context): - return DocumentVersionSignature.objects.has_detached_signature(context['object']) == False - - def document_pre_open_hook(descriptor, instance): if DocumentVersionSignature.objects.has_embedded_signature(instance.document): # If it has an embedded signature decrypt @@ -80,9 +74,6 @@ def document_post_save_hook(instance): # if kwargs.get('created', False): # DocumentVersionSignature.objects.signature_state(instance.document) -document_signature_upload = {'text': _(u'upload signature'), 'view': 'document_signature_upload', 'args': 'object.pk', 'famfam': 'pencil_add', 'permissions': [PERMISSION_SIGNATURE_UPLOAD], 'conditional_disable': has_embedded_signature} -document_signature_download = {'text': _(u'download signature'), 'view': 'document_signature_download', 'args': 'object.pk', 'famfam': 'disk', 'permissions': [PERMISSION_SIGNATURE_DOWNLOAD], 'conditional_disable': doesnt_have_detached_signature} -document_verify = {'text': _(u'signatures'), 'view': 'document_verify', 'args': 'object.pk', 'famfam': 'text_signature', 'permissions': [PERMISSION_DOCUMENT_VERIFY]} register_links(Document, [document_verify], menu_name='form_header') register_links(['document_verify', 'document_signature_upload', 'document_signature_download'], [document_signature_upload, document_signature_download], menu_name='sidebar') diff --git a/apps/document_signatures/links.py b/apps/document_signatures/links.py new file mode 100644 index 0000000000..9d80f254a7 --- /dev/null +++ b/apps/document_signatures/links.py @@ -0,0 +1,23 @@ +from __future__ import absolute_import + +from django.utils.translation import ugettext_lazy as _ + +from .models import DocumentVersionSignature +from .permissions import ( + PERMISSION_DOCUMENT_VERIFY, + PERMISSION_SIGNATURE_UPLOAD, + PERMISSION_SIGNATURE_DOWNLOAD +) + + +def has_embedded_signature(context): + return DocumentVersionSignature.objects.has_embedded_signature(context['object']) + + +def doesnt_have_detached_signature(context): + return DocumentVersionSignature.objects.has_detached_signature(context['object']) == False + + +document_signature_upload = {'text': _(u'upload signature'), 'view': 'document_signature_upload', 'args': 'object.pk', 'famfam': 'pencil_add', 'permissions': [PERMISSION_SIGNATURE_UPLOAD], 'conditional_disable': has_embedded_signature} +document_signature_download = {'text': _(u'download signature'), 'view': 'document_signature_download', 'args': 'object.pk', 'famfam': 'disk', 'permissions': [PERMISSION_SIGNATURE_DOWNLOAD], 'conditional_disable': doesnt_have_detached_signature} +document_verify = {'text': _(u'signatures'), 'view': 'document_verify', 'args': 'object.pk', 'famfam': 'text_signature', 'permissions': [PERMISSION_DOCUMENT_VERIFY]}