Improve conditional logic of detached signature links

This commit is contained in:
Roberto Rosario
2015-06-05 00:57:28 -04:00
parent a9a4c15d77
commit 678782154b

View File

@@ -6,22 +6,20 @@ from navigation import Link
from .models import DocumentVersionSignature
from .permissions import (
PERMISSION_DOCUMENT_VERIFY,
PERMISSION_SIGNATURE_DELETE,
PERMISSION_SIGNATURE_DOWNLOAD,
PERMISSION_SIGNATURE_UPLOAD,
PERMISSION_DOCUMENT_VERIFY, PERMISSION_SIGNATURE_DELETE,
PERMISSION_SIGNATURE_DOWNLOAD, PERMISSION_SIGNATURE_UPLOAD,
)
def has_embedded_signature(context):
return DocumentVersionSignature.objects.has_embedded_signature(context['object'])
def can_upload_detached_signature(context):
return not DocumentVersionSignature.objects.has_detached_signature(context['object'].latest_version) and not DocumentVersionSignature.objects.has_embedded_signature(context['object'].latest_version)
def doesnt_have_detached_signature(context):
return DocumentVersionSignature.objects.has_detached_signature(context['object']) is False
def can_delete_detached_signature(context):
return DocumentVersionSignature.objects.has_detached_signature(context['object'].latest_version)
link_document_signature_delete = Link(conditional_disable=doesnt_have_detached_signature, permissions=[PERMISSION_SIGNATURE_DELETE], text=_('Delete signature'), view='signatures:document_signature_delete', args='object.pk')
link_document_signature_download = Link(conditional_disable=doesnt_have_detached_signature, text=_('Download signature'), view='signatures:document_signature_download', args='object.pk', permissions=[PERMISSION_SIGNATURE_DOWNLOAD])
link_document_signature_upload = Link(conditional_disable=has_embedded_signature, permissions=[PERMISSION_SIGNATURE_UPLOAD], text=_('Upload signature'), view='signatures:document_signature_upload', args='object.pk')
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')