diff --git a/apps/document_indexing/__init__.py b/apps/document_indexing/__init__.py index 673a36d13a..1201fc329b 100644 --- a/apps/document_indexing/__init__.py +++ b/apps/document_indexing/__init__.py @@ -1,9 +1,12 @@ from django.utils.translation import ugettext_lazy as _ -from navigation.api import register_top_menu, register_sidebar_template +from navigation.api import register_top_menu, register_sidebar_template, \ + register_links from permissions.api import register_permission, set_namespace_title from main.api import register_tool +from document_indexing.models import IndexInstance + PERMISSION_DOCUMENT_INDEXING_VIEW = {'namespace': 'document_indexing', 'name': 'document_index_view', 'label': _(u'View document indexes')} PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES = {'namespace': 'document_indexing', 'name': 'document_rebuild_indexes', 'label': _(u'Rebuild document indexes')} @@ -12,6 +15,7 @@ register_permission(PERMISSION_DOCUMENT_INDEXING_VIEW) register_permission(PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES) index_list = {'text': _(u'index list'), 'view': 'index_instance_list', 'famfam': 'folder_page', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW]} +index_parent = {'text': _(u'go up one level'), 'view': 'index_instance_list', 'args': 'object.parent.pk', 'famfam': 'arrow_up', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW], 'dont_mark_active': True} register_top_menu('indexes', link={'text': _('indexes'), 'famfam': 'folder_page', 'view': 'index_instance_list'}, children_path_regex=[r'^document_indexing'], position=10) @@ -20,3 +24,5 @@ rebuild_index_instances = {'text': _('rebuild indexes'), 'view': 'rebuild_index_ register_tool(rebuild_index_instances, namespace='document_indexing', title=_(u'Indexes')) register_sidebar_template(['index_instance_list'], 'indexing_help.html') + +register_links(IndexInstance, [index_parent]) diff --git a/apps/document_indexing/views.py b/apps/document_indexing/views.py index 7a0f051b2f..fc37307dc9 100644 --- a/apps/document_indexing/views.py +++ b/apps/document_indexing/views.py @@ -50,6 +50,7 @@ def index_instance_list(request, index_id=None): 'hide_links': True, 'hide_object': True, 'multi_select_as_buttons': show_multi_select_buttons, + 'object': index_instance }, context_instance=RequestContext(request)) diff --git a/apps/navigation/templatetags/navigation_tags.py b/apps/navigation/templatetags/navigation_tags.py index 6d25203d63..b54ab6ddfc 100644 --- a/apps/navigation/templatetags/navigation_tags.py +++ b/apps/navigation/templatetags/navigation_tags.py @@ -90,7 +90,8 @@ def resolve_links(context, links, current_view, current_path, parsed_query_strin kwargs = {} if 'view' in link: - new_link['active'] = link['view'] == current_view + if not link.get('dont_mark_active', False): + new_link['active'] = link['view'] == current_view try: if kwargs: @@ -103,7 +104,9 @@ def resolve_links(context, links, current_view, current_path, parsed_query_strin new_link['url'] = '#' new_link['error'] = err elif 'url' in link: - new_link['active'] = link['url'] == current_path + if not link.get('dont_mark_active', False): + new_link['active'] = link['url'] == current_path + if kwargs: new_link['url'] = link['url'] % kwargs else: