60 lines
2.6 KiB
Python
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',
|
|
)
|