from __future__ import unicode_literals from django.apps import apps from django.utils.translation import ugettext_lazy as _ from navigation import Link from .permissions import ( permission_document_verify, permission_signature_delete, permission_signature_download, permission_signature_upload, ) def can_upload_detached_signature(context): DocumentVersionSignature = apps.get_model( app_label='document_signatures', model_name='DocumentVersionSignature' ) return not DocumentVersionSignature.objects.has_detached_signature( context['object'].latest_version ) and not DocumentVersionSignature.objects.has_embedded_signature( context['object'].latest_version ) def can_delete_detached_signature(context): DocumentVersionSignature = apps.get_model( app_label='document_signatures', model_name='DocumentVersionSignature' ) return DocumentVersionSignature.objects.has_detached_signature( context['object'].latest_version ) link_document_signature_delete = Link( condition=can_delete_detached_signature, permissions=(permission_signature_delete,), tags='dangerous', text=_('Delete signature'), view='signatures:document_signature_delete', args='object.pk' ) link_document_signature_download = Link( condition=can_delete_detached_signature, text=_('Download signature'), view='signatures:document_signature_download', args='object.pk', permissions=(permission_signature_download,) ) link_document_signature_upload = Link( condition=can_upload_detached_signature, permissions=(permission_signature_upload,), text=_('Upload signature'), view='signatures:document_signature_upload', args='object.pk' ) link_document_verify = Link( permissions=(permission_document_verify,), text=_('Signatures'), view='signatures:document_verify', args='object.pk' )