diff --git a/apps/document_indexing/__init__.py b/apps/document_indexing/__init__.py index 3a39c38451..985727b177 100644 --- a/apps/document_indexing/__init__.py +++ b/apps/document_indexing/__init__.py @@ -20,7 +20,10 @@ index_list = {'text': _(u'index list'), 'view': 'index_instance_list', 'famfam': 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} document_index_list = {'text': _(u'indexes'), 'view': 'document_index_list', 'args': 'object.pk', 'famfam': 'folder_page', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW, PERMISSION_DOCUMENT_VIEW]} -register_top_menu('indexes', link={'text': _('indexes'), 'famfam': 'folder_page', 'view': 'index_instance_list'}, children_path_regex=[r'^document_indexing'], position=10) +#register_top_menu('indexes', link={'text': _('indexes'), 'famfam': 'folder_page', 'view': 'index_instance_list'}, children_path_regex=[r'^document_indexing', r'^(^document_indexing/list/for/document)'], position=10) +register_top_menu('indexes', link={'text': _('indexes'), 'famfam': 'folder_page', 'view': 'index_instance_list'}, position=10) + #format_regex = re.compile(' *([A-Z0-9]+)[*]? +([A-Z0-9]+) +([rw\-+]+) *(.*).*') + rebuild_index_instances = {'text': _('rebuild indexes'), 'view': 'rebuild_index_instances', 'famfam': 'folder_page', 'permissions': [PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES], 'description': _(u'Deletes and creates from scratch all the document indexes.')} diff --git a/apps/documents/__init__.py b/apps/documents/__init__.py index d5e11f3260..2e9070582a 100644 --- a/apps/documents/__init__.py +++ b/apps/documents/__init__.py @@ -189,6 +189,7 @@ register_top_menu( children_path_regex=[ r'^documents/[^t]', r'^metadata/[^s]', r'comments', r'tags/document', r'grouping/[^s]', r'history/list/for_object/documents' ], + children_views=['document_folder_list', 'folder_add_document', 'document_index_list'], position=0 ) diff --git a/apps/folders/__init__.py b/apps/folders/__init__.py index d58e6e6447..c3f7408d06 100644 --- a/apps/folders/__init__.py +++ b/apps/folders/__init__.py @@ -15,7 +15,7 @@ folder_delete = {'text': _('delete'), 'view': 'folder_delete', 'args': 'object.p folder_document_multiple_remove = {'text': _('remove from folder'), 'view': 'folder_document_multiple_remove', 'args': 'object.pk', 'famfam': 'delete'} folder_view = {'text': _(u'folder documents'), 'view': 'folder_view', 'args': 'object.pk', 'famfam': 'folder_go'} folder_add_document = {'text': _('add to a folder'), 'view': 'folder_add_document', 'args': 'object.pk', 'famfam': 'add'} -document_folder_list = {'text': _(u'folders'), 'view': 'document_folder_list', 'args': 'object.pk', 'famfam': 'folder_user', 'permissions': [PERMISSION_DOCUMENT_VIEW], 'children_view_regex': ['folder']} +document_folder_list = {'text': _(u'folders'), 'view': 'document_folder_list', 'args': 'object.pk', 'famfam': 'folder_user', 'permissions': [PERMISSION_DOCUMENT_VIEW], 'children_view_regex': [r'folder']} register_multi_item_links(['folder_view'], [folder_document_multiple_remove]) @@ -23,7 +23,7 @@ register_links(Folder, [folder_view, folder_edit, folder_delete]) register_links(['folder_edit', 'folder_delete', 'folder_list', 'folder_create', 'folder_view', 'folder_document_multiple_remove'], [folder_list, folder_create], menu_name='secondary_menu') -register_top_menu(name='folders', link={'text': _('folders'), 'famfam': 'folder_user', 'view': 'folder_list'}, children_path_regex=[r'^folders/']) +register_top_menu(name='folders', link={'text': _('folders'), 'famfam': 'folder_user', 'view': 'folder_list'}, children_views=['folder_list', 'folder_create', 'folder_edit', 'folder_delete', 'folder_view', 'folder_document_multiple_remove']) register_links(Document, [document_folder_list], menu_name='form_header') diff --git a/apps/navigation/api.py b/apps/navigation/api.py index a744207e77..346dfba925 100644 --- a/apps/navigation/api.py +++ b/apps/navigation/api.py @@ -44,7 +44,8 @@ def register_links(src, links, menu_name=None, position=None): object_navigation[menu_name][src]['links'].extend(links) -def register_top_menu(name, link, children_views=None, children_path_regex=None, position=None): +def register_top_menu(name, link, children_views=None, \ + children_path_regex=None, children_view_regex=None, position=None): """ Register a new menu entry for the main menu displayed at the top of the page @@ -55,6 +56,8 @@ def register_top_menu(name, link, children_views=None, children_path_regex=None, entry['children_views'] = children_views if children_path_regex: entry['children_path_regex'] = children_path_regex + if children_view_regex: + entry['children_view_regex'] = children_view_regex if position is not None: top_menu_entries.insert(position, entry) else: diff --git a/apps/navigation/templatetags/navigation_tags.py b/apps/navigation/templatetags/navigation_tags.py index 7dac65ff09..815af1ea0d 100644 --- a/apps/navigation/templatetags/navigation_tags.py +++ b/apps/navigation/templatetags/navigation_tags.py @@ -28,14 +28,16 @@ class TopMenuNavigationNode(Node): menu_links = resolve_links(context, all_menu_links, current_view, current_path) for index, link in enumerate(top_menu_entries): - children_views = link.get('children_views', []) - if current_view in children_views: + if current_view in link.get('children_views', []): menu_links[index]['active'] = True - children_path_regex = link.get('children_path_regex', []) - for child_path_regex in children_path_regex: + for child_path_regex in link.get('children_path_regex', []): if re.compile(child_path_regex).match(current_path.lstrip('/')): menu_links[index]['active'] = True + + for children_view_regex in link.get('children_view_regex', []): + if re.compile(children_view_regex).match(children_view_regex): + menu_links[index]['active'] = True context['menu_links'] = menu_links return ''