Files
mayan-edms/mayan/apps/cabinets/links.py
Roberto Rosario 3e53ce0c43 Add keyword arguments to the cabinet app
Modernize tests. Use the FilteredSelectionForm in the view
to add new cabinets to documents. Add missing icons.
Rename some view names to be more consistent.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-01-02 13:54:58 -04:00

93 lines
3.2 KiB
Python

from __future__ import absolute_import, unicode_literals
import copy
from django.utils.translation import ugettext_lazy as _
from mayan.apps.acls.links import link_acl_list
from mayan.apps.documents.permissions import permission_document_view
from mayan.apps.navigation import Link, get_cascade_condition
from .icons import (
icon_cabinet_child_add, icon_cabinet_create, icon_cabinet_delete,
icon_cabinet_edit, icon_cabinet_list, icon_cabinet_view,
icon_document_cabinet_add, icon_document_cabinet_remove,
icon_document_multiple_cabinet_add, icon_document_multiple_cabinet_remove
)
from .permissions import (
permission_cabinet_add_document, permission_cabinet_create,
permission_cabinet_delete, permission_cabinet_edit,
permission_cabinet_remove_document, permission_cabinet_view
)
# Document links
link_document_cabinet_list = Link(
args='resolved_object.pk', icon_class=icon_cabinet_list,
permissions=(permission_document_view,),
text=_('Cabinets'), view='cabinets:document_cabinet_list',
)
link_document_cabinet_remove = Link(
args='resolved_object.pk', icon_class=icon_document_cabinet_remove,
permissions=(permission_cabinet_remove_document,),
text=_('Remove from cabinets'), view='cabinets:document_cabinet_remove'
)
link_document_cabinet_add = Link(
args='object.pk', icon_class=icon_document_cabinet_add,
permissions=(permission_cabinet_add_document,), text=_('Add to cabinets'),
view='cabinets:document_cabinet_add',
)
link_document_multiple_cabinet_add = Link(
icon_class=icon_document_multiple_cabinet_add, text=_('Add to cabinets'),
view='cabinets:document_multiple_cabinet_add'
)
link_document_multiple_cabinet_remove = Link(
icon_class=icon_document_multiple_cabinet_remove,
text=_('Remove from cabinets'),
view='cabinets:document_multiple_cabinet_remove'
)
# Cabinet links
def cabinet_is_root(context):
return context[
'resolved_object'
].is_root_node()
link_custom_acl_list = copy.copy(link_acl_list)
link_custom_acl_list.condition = cabinet_is_root
link_cabinet_child_add = Link(
args='object.pk', icon_class=icon_cabinet_child_add,
permissions=(permission_cabinet_create,), text=_('Add new level'),
view='cabinets:cabinet_child_add'
)
link_cabinet_create = Link(
icon_class=icon_cabinet_create, permissions=(permission_cabinet_create,),
text=_('Create cabinet'), view='cabinets:cabinet_create'
)
link_cabinet_delete = Link(
args='object.pk', icon_class=icon_cabinet_delete,
permissions=(permission_cabinet_delete,), tags='dangerous',
text=_('Delete'), view='cabinets:cabinet_delete'
)
link_cabinet_edit = Link(
args='object.pk', icon_class=icon_cabinet_edit,
permissions=(permission_cabinet_edit,), text=_('Edit'),
view='cabinets:cabinet_edit'
)
link_cabinet_list = Link(
condition=get_cascade_condition(
app_label='cabinets', model_name='Cabinet',
object_permission=permission_cabinet_view,
), icon_class=icon_cabinet_list, text=_('All'),
view='cabinets:cabinet_list'
)
link_cabinet_view = Link(
args='object.pk', icon_class=icon_cabinet_view,
permissions=(permission_cabinet_view,), text=_('Details'),
view='cabinets:cabinet_view'
)