51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
from __future__ import absolute_import, unicode_literals
|
|
|
|
from django.utils.translation import ugettext_lazy as _
|
|
|
|
from navigation import Link
|
|
|
|
from .icons import icon_checkout_info
|
|
from .permissions import (
|
|
permission_document_checkout, permission_document_checkin,
|
|
permission_document_checkin_override
|
|
)
|
|
|
|
|
|
def is_checked_out(context):
|
|
try:
|
|
return context['object'].is_checked_out()
|
|
except KeyError:
|
|
# Might not have permissions
|
|
return False
|
|
|
|
|
|
def is_not_checked_out(context):
|
|
try:
|
|
return not context['object'].is_checked_out()
|
|
except KeyError:
|
|
# Might not have permissions
|
|
return True
|
|
|
|
|
|
link_checkout_list = Link(
|
|
icon_class=icon_checkout_info, text=_('Checkouts'),
|
|
view='checkouts:checkout_list'
|
|
)
|
|
link_checkout_document = Link(
|
|
args='object.pk', condition=is_not_checked_out,
|
|
permissions=(permission_document_checkout,),
|
|
text=_('Check out document'), view='checkouts:checkout_document',
|
|
)
|
|
link_checkin_document = Link(
|
|
args='object.pk', condition=is_checked_out, permissions=(
|
|
permission_document_checkin, permission_document_checkin_override
|
|
), text=_('Check in document'), view='checkouts:checkin_document',
|
|
|
|
)
|
|
link_checkout_info = Link(
|
|
args='resolved_object.pk', icon_class=icon_checkout_info, permissions=(
|
|
permission_document_checkin, permission_document_checkin_override,
|
|
permission_document_checkout
|
|
), text=_('Check in/out'), view='checkouts:checkout_info',
|
|
)
|