Further navigation highlight improvements

This commit is contained in:
Roberto Rosario
2011-07-23 00:09:58 -04:00
parent a3eaf1a0b5
commit 29976541df
5 changed files with 17 additions and 8 deletions

View File

@@ -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.')}

View File

@@ -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
)

View File

@@ -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')

View File

@@ -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:

View File

@@ -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 ''