diff --git a/mayan/apps/document_signatures/links.py b/mayan/apps/document_signatures/links.py index c9daf4a3f2..b48c7af6e7 100644 --- a/mayan/apps/document_signatures/links.py +++ b/mayan/apps/document_signatures/links.py @@ -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')