Convert half the widget to HTML widgets. Rename links and views to use the nomeclature _template_ and _instance_ to differenciate between index instances and index templates. Update URL parameters to use the "_id" form. Add more tests. Add model permission inheritance to the IndexTemplateNode, and IndexInstanceNode models. Remove the level and document count display from the instance node. Display instead the total items. Use a FilteredSelectionForm subclass to display the list of index templates to rebuild. Add missing icons. Add keyword arguments to links. Modernize tests to use the document test mixin. Update the permission requirements for the index template document type selection screen. The document type view permission is now required in addition to the index template edit permission. Use ExternalObjectMixin to reduce the code in all views. Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
104 lines
4.2 KiB
Python
104 lines
4.2 KiB
Python
from __future__ import unicode_literals
|
|
|
|
from django.utils.translation import ugettext_lazy as _
|
|
|
|
from mayan.apps.documents.icons import icon_document_type
|
|
from mayan.apps.navigation import Link, get_cascade_condition
|
|
|
|
from .icons import (
|
|
icon_document_index_instance_list, icon_index, icon_index_template_create,
|
|
icon_index_template_delete, icon_index_template_edit,
|
|
icon_index_template_list, icon_index_template_node_create,
|
|
icon_index_template_node_delete, icon_index_template_node_edit,
|
|
icon_index_template_view, icon_index_instances_rebuild
|
|
)
|
|
from .permissions import (
|
|
permission_document_indexing_create, permission_document_indexing_delete,
|
|
permission_document_indexing_edit,
|
|
permission_document_indexing_instance_view,
|
|
permission_document_indexing_rebuild, permission_document_indexing_view
|
|
)
|
|
|
|
|
|
def condition_is_not_root_node(context):
|
|
return not context['resolved_object'].is_root_node()
|
|
|
|
|
|
link_document_index_instance_list = Link(
|
|
icon_class=icon_document_index_instance_list,
|
|
kwargs={'document_id': 'resolved_object.pk'}, text=_('Indexes'),
|
|
view='indexing:document_index_instace_list',
|
|
)
|
|
link_index_instances_rebuild = Link(
|
|
condition=get_cascade_condition(
|
|
app_label='document_indexing', model_name='Index',
|
|
object_permission=permission_document_indexing_rebuild,
|
|
), icon_class=icon_index_instances_rebuild,
|
|
description=_(
|
|
'Deletes and creates from scratch all the document indexes.'
|
|
), text=_('Rebuild indexes'), view='indexing:index_instances_rebuild'
|
|
)
|
|
link_index_main_menu = Link(
|
|
condition=get_cascade_condition(
|
|
app_label='document_indexing', model_name='Index',
|
|
object_permission=permission_document_indexing_instance_view,
|
|
), icon_class=icon_index, text=_('Indexes'),
|
|
view='indexing:index_instance_list'
|
|
)
|
|
link_index_setup = Link(
|
|
condition=get_cascade_condition(
|
|
app_label='document_indexing', model_name='Index',
|
|
object_permission=permission_document_indexing_view,
|
|
view_permission=permission_document_indexing_create,
|
|
), icon_class=icon_index, text=_('Indexes'),
|
|
view='indexing:index_template_list'
|
|
)
|
|
link_index_template_list = Link(
|
|
icon_class=icon_index_template_list,
|
|
text=_('Indexes'), view='indexing:index_template_list'
|
|
)
|
|
link_index_template_create = Link(
|
|
icon_class=icon_index_template_create,
|
|
permission=permission_document_indexing_create, text=_('Create index'),
|
|
view='indexing:index_template_create'
|
|
)
|
|
link_index_template_delete = Link(
|
|
icon_class=icon_index_template_delete,
|
|
kwargs={'index_template_id': 'resolved_object.pk'},
|
|
permission=permission_document_indexing_delete, tags='dangerous',
|
|
text=_('Delete'), view='indexing:index_template_delete'
|
|
)
|
|
link_index_template_edit = Link(
|
|
icon_class=icon_index_template_edit,
|
|
kwargs={'index_template_id': 'resolved_object.pk'},
|
|
permission=permission_document_indexing_edit, text=_('Edit'),
|
|
view='indexing:index_template_edit'
|
|
)
|
|
link_index_template_view = Link(
|
|
kwargs={'index_template_id': 'resolved_object.pk'}, icon_class=icon_index_template_view,
|
|
permission=permission_document_indexing_edit, text=_('Tree template'),
|
|
view='indexing:index_template_view'
|
|
)
|
|
link_index_template_document_types = Link(
|
|
kwargs={'index_template_id': 'resolved_object.pk'}, icon_class=icon_document_type,
|
|
permission=permission_document_indexing_edit, text=_('Document types'),
|
|
view='indexing:index_template_document_types'
|
|
)
|
|
link_index_template_node_create = Link(
|
|
icon_class=icon_index_template_node_create,
|
|
kwargs={'index_template_node_id': 'resolved_object.pk'},
|
|
text=_('New node'), view='indexing:index_template_node_create'
|
|
)
|
|
link_index_template_node_delete = Link(
|
|
condition=condition_is_not_root_node,
|
|
icon_class=icon_index_template_node_delete,
|
|
kwargs={'index_template_node_id': 'resolved_object.pk'}, tags='dangerous',
|
|
text=_('Delete'), view='indexing:index_template_node_delete'
|
|
)
|
|
link_index_template_node_edit = Link(
|
|
condition=condition_is_not_root_node,
|
|
icon_class=icon_index_template_node_edit,
|
|
kwargs={'index_template_node_id': 'resolved_object.pk'}, text=_('Edit'),
|
|
view='indexing:index_template_node_edit'
|
|
)
|