Files
mayan-edms/mayan/apps/documents/links/document_version_links.py
Roberto Rosario e7fec358f3 Split document app links
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 00:54:57 -04:00

60 lines
2.6 KiB
Python

from __future__ import absolute_import, unicode_literals
from django.utils.translation import ugettext_lazy as _
from mayan.apps.navigation.classes import Link
from ..permissions import (
permission_document_download, permission_document_version_revert,
permission_document_version_view, permission_document_view,
)
def is_not_current_version(context):
# Use the 'object' key when the document version is an object in a list,
# such as when showing the version list view and use the 'resolved_object'
# when the document version is the context object, such as when showing the
# signatures list of a documern version. This can be fixed by updating
# the navigations app object resolution logic to use 'resolved_object' even
# for objects in a list.
document_version = context.get('object', context['resolved_object'])
return document_version.document.latest_version.timestamp != document_version.timestamp
link_document_version_list = Link(
args='resolved_object.pk',
icon_class_path='mayan.apps.documents.icons.icon_document_version_list',
permissions=(permission_document_version_view,),
text=_('Versions'), view='documents:document_version_list',
)
link_document_version_download = Link(
args='resolved_object.pk',
icon_class_path='mayan.apps.documents.icons.icon_document_version_download',
permissions=(permission_document_download,), text=_('Download version'),
view='documents:document_version_download_form'
)
link_document_version_return_document = Link(
args='resolved_object.document.pk',
icon_class_path='mayan.apps.documents.icons.icon_document_version_return_document',
permissions=(permission_document_view,), text=_('Document'),
view='documents:document_preview',
)
link_document_version_return_list = Link(
args='resolved_object.document.pk',
icon_class_path='mayan.apps.documents.icons.icon_document_version_return_list',
permissions=(permission_document_version_view,), text=_('Versions'),
view='documents:document_version_list',
)
link_document_version_view = Link(
args='resolved_object.pk',
icon_class_path='mayan.apps.documents.icons.icon_document_version_view',
permissions=(permission_document_version_view,),
text=_('Details'), view='documents:document_version_view'
)
link_document_version_revert = Link(
args='object.pk', condition=is_not_current_version,
icon_class_path='mayan.apps.documents.icons.icon_document_version_revert',
permissions=(permission_document_version_revert,), tags='dangerous',
text=_('Revert'), view='documents:document_version_revert',
)