From 3909d60e9abd1590020b7bdb371594c1c2d10b27 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 28 Oct 2014 17:41:10 -0400 Subject: [PATCH] Issue #56, Remove child_views, child_urls, children_path_regex, children_view_regex link support --- mayan/apps/acls/links.py | 2 +- mayan/apps/checkouts/links.py | 2 +- mayan/apps/django_gpg/links.py | 2 +- mayan/apps/document_comments/links.py | 2 +- mayan/apps/document_indexing/links.py | 4 +-- mayan/apps/documents/__init__.py | 5 ---- mayan/apps/documents/links.py | 2 +- mayan/apps/dynamic_search/links.py | 2 +- mayan/apps/folders/__init__.py | 2 +- mayan/apps/folders/links.py | 2 +- mayan/apps/history/links.py | 2 +- mayan/apps/linking/links.py | 2 +- mayan/apps/metadata/links.py | 2 +- mayan/apps/navigation/api.py | 10 +------ mayan/apps/navigation/classes.py | 12 +------- .../templatetags/navigation_tags.py | 28 ------------------- mayan/apps/ocr/links.py | 2 +- mayan/apps/permissions/links.py | 2 +- mayan/apps/project_setup/api.py | 4 --- mayan/apps/project_tools/api.py | 4 --- mayan/apps/smart_settings/links.py | 2 +- mayan/apps/sources/links.py | 6 ++-- mayan/apps/statistics/links.py | 4 +-- mayan/apps/tags/__init__.py | 2 +- mayan/apps/tags/links.py | 2 +- mayan/apps/user_management/links.py | 4 +-- 26 files changed, 27 insertions(+), 86 deletions(-) diff --git a/mayan/apps/acls/links.py b/mayan/apps/acls/links.py index 29e5e2a32b..e6a1f51d59 100644 --- a/mayan/apps/acls/links.py +++ b/mayan/apps/acls/links.py @@ -9,7 +9,7 @@ acl_grant = {'text': _(u'Grant'), 'view': 'acls:acl_multiple_grant', 'famfam': ' acl_revoke = {'text': _(u'Revoke'), 'view': 'acls:acl_multiple_revoke', 'famfam': 'key_delete', 'permissions': [ACLS_EDIT_ACL]} acl_holder_new = {'text': _(u'New holder'), 'view': 'acls:acl_holder_new', 'args': 'access_object.gid', 'famfam': 'user', 'permissions': [ACLS_EDIT_ACL]} -acl_setup_valid_classes = {'text': _(u'Default ACLs'), 'view': 'acls:acl_setup_valid_classes', 'icon': 'lock.png', 'permissions': [ACLS_CLASS_VIEW_ACL], 'children_view_regex': [r'^acl_class', r'^acl_setup']} +acl_setup_valid_classes = {'text': _(u'Default ACLs'), 'view': 'acls:acl_setup_valid_classes', 'icon': 'lock.png', 'permissions': [ACLS_CLASS_VIEW_ACL]} acl_class_list = {'text': _(u'Classes'), 'view': 'acls:acl_setup_valid_classes', 'famfam': 'package', 'permissions': [ACLS_CLASS_VIEW_ACL]} acl_class_acl_list = {'text': _(u'ACLs for class'), 'view': 'acls:acl_class_acl_list', 'args': 'object.gid', 'famfam': 'lock_go', 'permissions': [ACLS_CLASS_VIEW_ACL]} acl_class_acl_detail = {'text': _(u'Details'), 'view': 'acls:acl_class_acl_detail', 'args': ['access_object_class.gid', 'object.gid'], 'famfam': 'key_go', 'permissions': [ACLS_CLASS_VIEW_ACL]} diff --git a/mayan/apps/checkouts/links.py b/mayan/apps/checkouts/links.py index da6d47f492..a66a309f13 100644 --- a/mayan/apps/checkouts/links.py +++ b/mayan/apps/checkouts/links.py @@ -16,4 +16,4 @@ def is_not_checked_out(context): checkout_list = {'text': _(u'Checkouts'), 'view': 'checkouts:checkout_list', 'famfam': 'basket'} checkout_document = {'text': _('Check out document'), 'view': 'checkouts:checkout_document', 'args': 'object.pk', 'famfam': 'basket_put', 'condition': is_not_checked_out, 'permissions': [PERMISSION_DOCUMENT_CHECKOUT]} checkin_document = {'text': _('Check in document'), 'view': 'checkouts:checkin_document', 'args': 'object.pk', 'famfam': 'basket_remove', 'condition': is_checked_out, 'permissions': [PERMISSION_DOCUMENT_CHECKIN, PERMISSION_DOCUMENT_CHECKIN_OVERRIDE]} -checkout_info = {'text': _('Check in/out'), 'view': 'checkouts:checkout_info', 'args': 'object.pk', 'famfam': 'basket', 'children_views': ['checkout_document', 'checkin_document'], 'permissions': [PERMISSION_DOCUMENT_CHECKIN, PERMISSION_DOCUMENT_CHECKIN_OVERRIDE, PERMISSION_DOCUMENT_CHECKOUT]} +checkout_info = {'text': _('Check in/out'), 'view': 'checkouts:checkout_info', 'args': 'object.pk', 'famfam': 'basket', 'permissions': [PERMISSION_DOCUMENT_CHECKIN, PERMISSION_DOCUMENT_CHECKIN_OVERRIDE, PERMISSION_DOCUMENT_CHECKOUT]} diff --git a/mayan/apps/django_gpg/links.py b/mayan/apps/django_gpg/links.py index 47bb8ee45d..09dccd4a0b 100644 --- a/mayan/apps/django_gpg/links.py +++ b/mayan/apps/django_gpg/links.py @@ -8,4 +8,4 @@ public_keys = {'text': _(u'Public keys'), 'view': 'django_gpg:key_public_list', key_delete = {'text': _(u'Delete'), 'view': 'django_gpg:key_delete', 'args': ['object.fingerprint', 'object.type'], 'famfam': 'key_delete', 'permissions': [PERMISSION_KEY_DELETE]} key_query = {'text': _(u'Query keyservers'), 'view': 'django_gpg:key_query', 'famfam': 'zoom', 'permissions': [PERMISSION_KEYSERVER_QUERY]} key_receive = {'text': _(u'Import'), 'view': 'django_gpg:key_receive', 'args': 'object.keyid', 'famfam': 'key_add', 'keep_query': True, 'permissions': [PERMISSION_KEY_RECEIVE]} -key_setup = {'text': _(u'Key management'), 'view': 'django_gpg:key_public_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'key.png', 'permissions': [PERMISSION_KEY_VIEW], 'children_view_regex': [r'^key_']} +key_setup = {'text': _(u'Key management'), 'view': 'django_gpg:key_public_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'key.png', 'permissions': [PERMISSION_KEY_VIEW]} diff --git a/mayan/apps/document_comments/links.py b/mayan/apps/document_comments/links.py index 0386822079..21d1b96cd0 100644 --- a/mayan/apps/document_comments/links.py +++ b/mayan/apps/document_comments/links.py @@ -8,4 +8,4 @@ from .permissions import (PERMISSION_COMMENT_CREATE, comment_delete = {'text': _('Delete'), 'view': 'comments:comment_delete', 'args': 'object.pk', 'famfam': 'comment_delete', 'permissions': [PERMISSION_COMMENT_DELETE]} comment_multiple_delete = {'text': _('Delete'), 'view': 'comments:comment_multiple_delete', 'args': 'object.pk', 'famfam': 'comments_delete', 'permissions': [PERMISSION_COMMENT_DELETE]} comment_add = {'text': _('Add comment'), 'view': 'comments:comment_add', 'args': 'object.pk', 'famfam': 'comment_add', 'permissions': [PERMISSION_COMMENT_CREATE]} -comments_for_document = {'text': _('Comments'), 'view': 'comments:comments_for_document', 'args': 'object.pk', 'famfam': 'comments', 'permissions': [PERMISSION_COMMENT_VIEW], 'children_view_regex': ['comment']} +comments_for_document = {'text': _('Comments'), 'view': 'comments:comments_for_document', 'args': 'object.pk', 'famfam': 'comments', 'permissions': [PERMISSION_COMMENT_VIEW]} diff --git a/mayan/apps/document_indexing/links.py b/mayan/apps/document_indexing/links.py index 31e628b31e..98c1caaa8e 100644 --- a/mayan/apps/document_indexing/links.py +++ b/mayan/apps/document_indexing/links.py @@ -20,7 +20,7 @@ def is_not_root_node(context): return not context['node'].is_root_node() -index_setup = {'text': _(u'Indexes'), 'view': 'indexing:index_setup_list', 'icon': 'tab.png', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP], 'children_view_regex': [r'^index_setup', r'^template_node']} +index_setup = {'text': _(u'Indexes'), 'view': 'indexing:index_setup_list', 'icon': 'tab.png', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP]} index_setup_list = {'text': _(u'Indexes'), 'view': 'indexing:index_setup_list', 'famfam': 'tab', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP]} index_setup_create = {'text': _(u'Create index'), 'view': 'indexing:index_setup_create', 'famfam': 'tab_add', 'permissions': [PERMISSION_DOCUMENT_INDEXING_CREATE]} index_setup_edit = {'text': _(u'Edit'), 'view': 'indexing:index_setup_edit', 'args': 'index.pk', 'famfam': 'tab_edit', 'permissions': [PERMISSION_DOCUMENT_INDEXING_EDIT]} @@ -37,6 +37,6 @@ index_list = {'text': _(u'Index list'), 'view': 'indexing:index_list', 'famfam': index_parent = {'text': _(u'Go up one level'), 'view': 'indexing:index_instance_node_view', 'args': 'object.parent.pk', 'famfam': 'arrow_up', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW], 'dont_mark_active': True, 'condition': is_not_instance_root_node} document_index_list = {'text': _(u'Indexes'), 'view': 'indexing:document_index_list', 'args': 'object.pk', 'famfam': 'folder_page', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW, PERMISSION_DOCUMENT_VIEW]} -document_index_main_menu_link = {'text': _('Indexes'), 'famfam': 'tab', 'view': 'indexing:index_list', 'children_view_regex': [r'^index_[i,l]']} +document_index_main_menu_link = {'text': _('Indexes'), 'famfam': 'tab', 'view': 'indexing:index_list'} rebuild_index_instances = {'text': _('Rebuild indexes'), 'view': 'indexing: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/mayan/apps/documents/__init__.py b/mayan/apps/documents/__init__.py index 3a867dfec4..b8181eb81e 100644 --- a/mayan/apps/documents/__init__.py +++ b/mayan/apps/documents/__init__.py @@ -118,11 +118,6 @@ register_model_list_columns(Document, [ register_top_menu( 'documents', link={'famfam': 'page', 'text': _(u'Documents'), 'view': 'documents:document_list_recent'}, - children_path_regex=[ - r'^documents/[^t]', r'^metadata/[^s]', r'comments', r'tags/document', r'grouping/[^s]', r'history/list/for_object/documents', - ], - children_view_regex=[r'documents:document_acl', r'smart_link_instance'], - children_views=['documents:document_folder_list', 'folders:folder_add_document', 'documents:document_index_list', 'documents:upload_version', ], position=1 ) diff --git a/mayan/apps/documents/links.py b/mayan/apps/documents/links.py index 46cf9ee331..8a71a943c1 100644 --- a/mayan/apps/documents/links.py +++ b/mayan/apps/documents/links.py @@ -83,7 +83,7 @@ document_version_revert = {'text': _(u'Revert'), 'view': 'documents:document_ver # Document type related links document_type_list = {'text': _(u'Document types'), 'view': 'documents:document_type_list', 'famfam': 'layout', 'permissions': [PERMISSION_DOCUMENT_TYPE_VIEW]} -document_type_setup = {'text': _(u'Document types'), 'view': 'documents:document_type_list', 'famfam': 'layout', 'icon': 'layout.png', 'permissions': [PERMISSION_DOCUMENT_TYPE_VIEW], 'children_view_regex': [r'^document_type_']} +document_type_setup = {'text': _(u'Document types'), 'view': 'documents:document_type_list', 'famfam': 'layout', 'icon': 'layout.png', 'permissions': [PERMISSION_DOCUMENT_TYPE_VIEW]} document_type_edit = {'text': _(u'Edit'), 'view': 'documents:document_type_edit', 'args': 'document_type.id', 'famfam': 'layout_edit', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]} document_type_delete = {'text': _(u'Delete'), 'view': 'documents:document_type_delete', 'args': 'document_type.id', 'famfam': 'layout_delete', 'permissions': [PERMISSION_DOCUMENT_TYPE_DELETE]} document_type_create = {'text': _(u'Create document type'), 'view': 'documents:document_type_create', 'famfam': 'layout_add', 'permissions': [PERMISSION_DOCUMENT_TYPE_CREATE]} diff --git a/mayan/apps/dynamic_search/links.py b/mayan/apps/dynamic_search/links.py index 873537b00c..26d2ae682c 100644 --- a/mayan/apps/dynamic_search/links.py +++ b/mayan/apps/dynamic_search/links.py @@ -3,4 +3,4 @@ from django.utils.translation import ugettext_lazy as _ search = {'text': _(u'Search'), 'view': 'search:search', 'famfam': 'zoom'} search_advanced = {'text': _(u'Advanced search'), 'view': 'search:search_advanced', 'famfam': 'zoom_in'} search_again = {'text': _(u'Search again'), 'view': 'search:search_again', 'famfam': 'arrow_undo'} -search_menu = {'text': _(u'Search'), 'view': 'search:search', 'famfam': 'zoom', 'children_view_regex': [r'^search:']} +search_menu = {'text': _(u'Search'), 'view': 'search:search', 'famfam': 'zoom'} diff --git a/mayan/apps/folders/__init__.py b/mayan/apps/folders/__init__.py index b23b4c7984..b25d36724b 100644 --- a/mayan/apps/folders/__init__.py +++ b/mayan/apps/folders/__init__.py @@ -29,7 +29,7 @@ register_links(['folders:document_folder_list', 'folders:folder_add_document'], register_links(Document, [document_folder_list], menu_name='form_header') register_links([Document], [link_spacer, folder_add_multiple_documents, folder_document_multiple_remove], menu_name='multi_item_links') -register_top_menu(name='folders', link=folders_main_menu_link, children_views=['folders:folder_list', 'folders:folder_create', 'folders:folder_edit', 'folders:folder_delete', 'folders:folder_view', 'folders:folder_document_multiple_remove']) +register_top_menu(name='folders', link=folders_main_menu_link) class_permissions(Folder, [ACLS_EDIT_ACL, ACLS_VIEW_ACL, PERMISSION_FOLDER_DELETE, PERMISSION_FOLDER_EDIT, diff --git a/mayan/apps/folders/links.py b/mayan/apps/folders/links.py index e4bf44e3bc..7a305da238 100644 --- a/mayan/apps/folders/links.py +++ b/mayan/apps/folders/links.py @@ -18,7 +18,7 @@ folder_document_multiple_remove = {'text': _('Remove from folder'), 'view': 'fol folder_view = {'text': _(u'Documents'), 'view': 'folders:folder_view', 'args': 'object.pk', 'famfam': 'page', 'permissions': [PERMISSION_FOLDER_VIEW]} folder_add_document = {'text': _('Add to a folder'), 'view': 'folders:folder_add_document', 'args': 'object.pk', 'famfam': 'folder_add', 'permissions': [PERMISSION_FOLDER_ADD_DOCUMENT]} folder_add_multiple_documents = {'text': _('Add to folder'), 'view': 'folders:folder_add_multiple_documents', 'famfam': 'folder_add'} -document_folder_list = {'text': _(u'Folders'), 'view': 'folders:document_folder_list', 'args': 'object.pk', 'famfam': 'folder_user', 'permissions': [PERMISSION_DOCUMENT_VIEW], 'children_view_regex': [r'folder']} +document_folder_list = {'text': _(u'Folders'), 'view': 'folders:document_folder_list', 'args': 'object.pk', 'famfam': 'folder_user', 'permissions': [PERMISSION_DOCUMENT_VIEW]} folder_acl_list = {'text': _(u'ACLs'), 'view': 'folders:folder_acl_list', 'args': 'object.pk', 'famfam': 'lock', 'permissions': [ACLS_VIEW_ACL]} folders_main_menu_link = {'text': _('Folders'), 'famfam': 'folder_user', 'view': 'folders:folder_list'} diff --git a/mayan/apps/history/links.py b/mayan/apps/history/links.py index f52c8c98ee..d70feec4ec 100644 --- a/mayan/apps/history/links.py +++ b/mayan/apps/history/links.py @@ -4,5 +4,5 @@ from django.utils.translation import ugettext_lazy as _ from .permissions import PERMISSION_HISTORY_VIEW -history_list = {'text': _(u'History'), 'view': 'history:history_list', 'famfam': 'book', 'icon': 'book.png', 'children_view_regex': [r'history_[l,v]']} +history_list = {'text': _(u'History'), 'view': 'history:history_list', 'famfam': 'book', 'icon': 'book.png'} history_details = {'text': _(u'Details'), 'view': 'history:history_view', 'famfam': 'book_open', 'args': 'object.pk', 'permissions': [PERMISSION_HISTORY_VIEW]} diff --git a/mayan/apps/linking/links.py b/mayan/apps/linking/links.py index 705f114eda..28e82854cc 100644 --- a/mayan/apps/linking/links.py +++ b/mayan/apps/linking/links.py @@ -12,7 +12,7 @@ from .permissions import (PERMISSION_SMART_LINK_CREATE, smart_link_instance_view_link = {'text': _(u'Smart links actions'), 'view': 'linking:smart_link_instance_view', 'famfam': 'page_link', 'permissions': [PERMISSION_DOCUMENT_VIEW]} smart_link_instances_for_document = {'text': _(u'Smart links'), 'view': 'linking:smart_link_instances_for_document', 'args': 'object.pk', 'famfam': 'page_link', 'permissions': [PERMISSION_DOCUMENT_VIEW]} -smart_link_setup = {'text': _(u'Smart links'), 'view': 'linking:smart_link_list', 'icon': 'link.png', 'permissions': [PERMISSION_SMART_LINK_CREATE], 'children_view_regex': [r'smart_link_list', 'smart_link_create', 'smart_link_delete', 'smart_link_edit', 'smart_link_condition_']} +smart_link_setup = {'text': _(u'Smart links'), 'view': 'linking:smart_link_list', 'icon': 'link.png', 'permissions': [PERMISSION_SMART_LINK_CREATE]} smart_link_list = {'text': _(u'Smart links'), 'view': 'linking:smart_link_list', 'famfam': 'link', 'permissions': [PERMISSION_SMART_LINK_CREATE]} smart_link_create = {'text': _(u'Create new smart link'), 'view': 'linking:smart_link_create', 'famfam': 'link_add', 'permissions': [PERMISSION_SMART_LINK_CREATE]} smart_link_edit = {'text': _(u'Edit'), 'view': 'linking:smart_link_edit', 'args': 'object.pk', 'famfam': 'link_edit', 'permissions': [PERMISSION_SMART_LINK_EDIT]} diff --git a/mayan/apps/metadata/links.py b/mayan/apps/metadata/links.py index 5354bb781b..ccfa3e8cc5 100644 --- a/mayan/apps/metadata/links.py +++ b/mayan/apps/metadata/links.py @@ -12,7 +12,7 @@ from .permissions import (PERMISSION_METADATA_DOCUMENT_EDIT, PERMISSION_METADATA_TYPE_VIEW) metadata_edit = {'text': _(u'Edit metadata'), 'view': 'metadata:metadata_edit', 'args': 'object.pk', 'famfam': 'xhtml_go', 'permissions': [PERMISSION_METADATA_DOCUMENT_EDIT]} -metadata_view = {'text': _(u'Metadata'), 'view': 'metadata:metadata_view', 'args': 'object.pk', 'famfam': 'xhtml_go', 'permissions': [PERMISSION_METADATA_DOCUMENT_VIEW], 'children_view_regex': ['metadata']} +metadata_view = {'text': _(u'Metadata'), 'view': 'metadata:metadata_view', 'args': 'object.pk', 'famfam': 'xhtml_go', 'permissions': [PERMISSION_METADATA_DOCUMENT_VIEW]} metadata_multiple_edit = {'text': _(u'Edit metadata'), 'view': 'metadata:metadata_multiple_edit', 'famfam': 'xhtml_go', 'permissions': [PERMISSION_METADATA_DOCUMENT_EDIT]} setup_document_type_metadata = {'text': _(u'Metadata'), 'view': 'metadata:setup_document_type_metadata', 'args': 'document_type.pk', 'famfam': 'xhtml', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]} diff --git a/mayan/apps/navigation/api.py b/mayan/apps/navigation/api.py index e70574ee33..0ba92e0243 100644 --- a/mayan/apps/navigation/api.py +++ b/mayan/apps/navigation/api.py @@ -26,21 +26,13 @@ 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, children_view_regex=None, - position=None): +def register_top_menu(name, link, position=None): """ Register a new menu entry for the main menu displayed at the top of the page """ entry = {'link': link, 'name': name} - if children_views: - 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: entry['position'] = position top_menu_entries.insert(position, entry) diff --git a/mayan/apps/navigation/classes.py b/mayan/apps/navigation/classes.py index ab878ec89c..2319f9bebe 100644 --- a/mayan/apps/navigation/classes.py +++ b/mayan/apps/navigation/classes.py @@ -44,8 +44,7 @@ class Link(object): def __init__(self, text, view, klass=None, args=None, icon=None, permissions=None, condition=None, conditional_disable=None, - description=None, dont_mark_active=False, children_view_regex=None, - keep_query=False, children_classes=None, children_views=None, + description=None, dont_mark_active=False, keep_query=False, conditional_highlight=None): self.text = text @@ -61,9 +60,6 @@ class Link(object): self.klass = klass self.keep_query = keep_query self.conditional_highlight = conditional_highlight # Used by dynamic sources - self.children_views = children_views or [] - self.children_classes = children_classes or [] - self.children_view_regex = children_view_regex def resolve(self, context, request=None, current_path=None, current_view=None, resolved_object=None): # Don't calculate these if passed in an argument @@ -144,14 +140,8 @@ class Link(object): else: resolved_link.disabled = False - if current_view in self.children_views: - resolved_link.active = True - # TODO: add tree base main menu support to auto activate parent links - if self.children_view_regex and re.compile(self.children_view_regex).match(current_view): - resolved_link.active = True - return resolved_link @classmethod diff --git a/mayan/apps/navigation/templatetags/navigation_tags.py b/mayan/apps/navigation/templatetags/navigation_tags.py index 00a45aa36e..34e3de56c4 100644 --- a/mayan/apps/navigation/templatetags/navigation_tags.py +++ b/mayan/apps/navigation/templatetags/navigation_tags.py @@ -30,18 +30,6 @@ class TopMenuNavigationNode(Node): all_menu_links = [entry.get('link', {}) for entry in top_menu_entries] menu_links = resolve_links(context, all_menu_links, current_view, current_path) - for index, link in enumerate(top_menu_entries): - if current_view in link.get('children_views', []): - menu_links[index]['active'] = True - - 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(current_view): - menu_links[index]['active'] = True - context['menu_links'] = menu_links return '' @@ -128,22 +116,6 @@ def resolve_links(context, links, current_view, current_path, parsed_query_strin else: new_link['disabled'] = False - if current_view in link.get('children_views', []): - new_link['active'] = True - - for child_url_regex in link.get('children_url_regex', []): - if re.compile(child_url_regex).match(current_path.lstrip('/')): - new_link['active'] = True - - for children_view_regex in link.get('children_view_regex', []): - if re.compile(children_view_regex).match(current_view): - new_link['active'] = True - - for cls in link.get('children_classes', []): - obj, object_name = get_navigation_object(context) - if type(obj) == cls or obj == cls: - new_link['active'] = True - context_links.append(new_link) return context_links diff --git a/mayan/apps/ocr/links.py b/mayan/apps/ocr/links.py index 8e62ade437..eb41e2b9d7 100644 --- a/mayan/apps/ocr/links.py +++ b/mayan/apps/ocr/links.py @@ -16,4 +16,4 @@ queue_document_multiple_delete = {'text': _(u'Delete'), 'view': 'ocr:queue_docum all_document_ocr_cleanup = {'text': _(u'Clean up pages content'), 'view': 'ocr:all_document_ocr_cleanup', 'famfam': 'text_strikethrough', 'permissions': [PERMISSION_OCR_CLEAN_ALL_PAGES], 'description': _(u'Runs a language filter to remove common OCR mistakes from document pages content.')} queue_document_list = {'text': _(u'Queue document list'), 'view': 'ocr:queue_document_list', 'famfam': 'hourglass', 'permissions': [PERMISSION_OCR_DOCUMENT]} -ocr_tool_link = {'text': _(u'OCR'), 'view': 'ocr:queue_document_list', 'famfam': 'hourglass', 'icon': 'text.png', 'permissions': [PERMISSION_OCR_DOCUMENT], 'children_view_regex': [r'queue_', r'document_queue']} +ocr_tool_link = {'text': _(u'OCR'), 'view': 'ocr:queue_document_list', 'famfam': 'hourglass', 'icon': 'text.png', 'permissions': [PERMISSION_OCR_DOCUMENT]} diff --git a/mayan/apps/permissions/links.py b/mayan/apps/permissions/links.py index 825b58389d..ee1743edbb 100644 --- a/mayan/apps/permissions/links.py +++ b/mayan/apps/permissions/links.py @@ -13,6 +13,6 @@ permission_revoke = {'text': _(u'Revoke'), 'view': 'permissions:permission_multi role_create = {'text': _(u'Create new role'), 'view': 'permissions:role_create', 'famfam': 'medal_gold_add', 'permissions': [PERMISSION_ROLE_CREATE]} role_delete = {'text': _(u'Delete'), 'view': 'permissions:role_delete', 'args': 'object.id', 'famfam': 'medal_gold_delete', 'permissions': [PERMISSION_ROLE_DELETE]} role_edit = {'text': _(u'Edit'), 'view': 'permissions:role_edit', 'args': 'object.id', 'famfam': 'medal_gold_1', 'permissions': [PERMISSION_ROLE_EDIT]} -role_list = {'text': _(u'Roles'), 'view': 'permissions:role_list', 'famfam': 'medal_gold_1', 'icon': 'medal_gold_red.png', 'permissions': [PERMISSION_ROLE_VIEW], 'children_view_regex': [r'^permission_', r'^role_']} +role_list = {'text': _(u'Roles'), 'view': 'permissions:role_list', 'famfam': 'medal_gold_1', 'icon': 'medal_gold_red.png', 'permissions': [PERMISSION_ROLE_VIEW]} role_members = {'text': _(u'Members'), 'view': 'permissions:role_members', 'args': 'object.id', 'famfam': 'group_key', 'permissions': [PERMISSION_ROLE_EDIT]} role_permissions = {'text': _(u'Role permissions'), 'view': 'permissions:role_permissions', 'args': 'object.id', 'famfam': 'key_go', 'permissions': [PERMISSION_PERMISSION_GRANT, PERMISSION_PERMISSION_REVOKE]} diff --git a/mayan/apps/project_setup/api.py b/mayan/apps/project_setup/api.py index 1d11179701..5f532e1afc 100644 --- a/mayan/apps/project_setup/api.py +++ b/mayan/apps/project_setup/api.py @@ -7,7 +7,3 @@ setup_items = [] def register_setup(link): setup_items.append(link) - - # Append the link's children_view_regex to the setup main menu children view regex - setup_link.setdefault('children_view_regex', []) - setup_link['children_view_regex'].extend(link.get('children_view_regex', [])) diff --git a/mayan/apps/project_tools/api.py b/mayan/apps/project_tools/api.py index 684c453066..b599d28d2f 100644 --- a/mayan/apps/project_tools/api.py +++ b/mayan/apps/project_tools/api.py @@ -7,7 +7,3 @@ tool_items = [] def register_tool(link): tool_items.append(link) - - # Append the link's children_view_regex to the tool main menu children view regex - tool_link.setdefault('children_view_regex', []) - tool_link['children_view_regex'].extend(link.get('children_view_regex', [])) diff --git a/mayan/apps/smart_settings/links.py b/mayan/apps/smart_settings/links.py index a3addc582b..593ee34df8 100644 --- a/mayan/apps/smart_settings/links.py +++ b/mayan/apps/smart_settings/links.py @@ -5,4 +5,4 @@ def is_superuser(context): return context['request'].user.is_staff or context['request'].user.is_superuser -check_settings = {'text': _(u'Settings'), 'view': 'settings:setting_list', 'famfam': 'cog', 'icon': 'cog.png', 'condition': is_superuser, 'children_view_regex': [r'^setting_']} +check_settings = {'text': _(u'Settings'), 'view': 'settings:setting_list', 'famfam': 'cog', 'icon': 'cog.png', 'condition': is_superuser} diff --git a/mayan/apps/sources/links.py b/mayan/apps/sources/links.py index b8005018a2..ece11da841 100644 --- a/mayan/apps/sources/links.py +++ b/mayan/apps/sources/links.py @@ -13,12 +13,12 @@ from .permissions import (PERMISSION_SOURCES_SETUP_CREATE, PERMISSION_SOURCES_SETUP_EDIT, PERMISSION_SOURCES_SETUP_VIEW) -document_create_multiple = {'text': _(u'Upload new documents'), 'view': 'sources:document_create_multiple', 'famfam': 'page_add', 'permissions': [PERMISSION_DOCUMENT_CREATE], 'children_view_regex': [r'upload_interactive']} +document_create_multiple = {'text': _(u'Upload new documents'), 'view': 'sources:document_create_multiple', 'famfam': 'page_add', 'permissions': [PERMISSION_DOCUMENT_CREATE]} document_create_siblings = {'text': _(u'Clone'), 'view': 'sources:document_create_siblings', 'args': 'object.id', 'famfam': 'page_copy', 'permissions': [PERMISSION_DOCUMENT_CREATE]} staging_file_delete = {'text': _(u'Delete'), 'view': 'sources:staging_file_delete', 'args': ['source.pk', 'object.encoded_filename'], 'famfam': 'delete', 'keep_query': True, 'permissions': [PERMISSION_DOCUMENT_NEW_VERSION, PERMISSION_DOCUMENT_CREATE]} -setup_sources = {'text': _(u'Sources'), 'view': 'sources:setup_source_list', 'famfam': 'application_form', 'icon': 'application_form.png', 'permissions': [PERMISSION_SOURCES_SETUP_VIEW], 'children_view_regex': [r'setup_web_form', r'setup_staging_folder', r'setup_source_']} +setup_sources = {'text': _(u'Sources'), 'view': 'sources:setup_source_list', 'famfam': 'application_form', 'icon': 'application_form.png', 'permissions': [PERMISSION_SOURCES_SETUP_VIEW]} setup_source_create_webform = {'text': _(u'Add new webform source'), 'view': 'sources:setup_source_create', 'args': '"%s"' % SOURCE_CHOICE_WEB_FORM, 'famfam': 'application_form_add', 'permissions': [PERMISSION_SOURCES_SETUP_CREATE], 'conditional_highlight': lambda context: context.get('source_type') == SOURCE_CHOICE_WEB_FORM and 'source' not in context} setup_source_create_staging_folder = {'text': _(u'Add new staging folder'), 'view': 'sources:setup_source_create', 'args': '"%s"' % SOURCE_CHOICE_STAGING, 'famfam': 'folder_camera', 'permissions': [PERMISSION_SOURCES_SETUP_CREATE], 'conditional_highlight': lambda context: context.get('source_type') == SOURCE_CHOICE_STAGING and 'source' not in context} setup_source_create_watch_folder = {'text': _(u'Add new watch folder'), 'view': 'sources:setup_source_create', 'args': '"%s"' % SOURCE_CHOICE_WATCH, 'famfam': 'folder_magnify', 'permissions': [PERMISSION_SOURCES_SETUP_CREATE], 'conditional_highlight': lambda context: context.get('source_type') == SOURCE_CHOICE_WATCH and 'source' not in context} @@ -32,6 +32,6 @@ setup_source_transformation_create = {'text': _(u'Add transformation'), 'view': setup_source_transformation_edit = {'text': _(u'Edit'), 'view': 'sources:setup_source_transformation_edit', 'args': 'transformation.pk', 'famfam': 'shape_square_edit', 'permissions': [PERMISSION_SOURCES_SETUP_EDIT]} setup_source_transformation_delete = {'text': _(u'Delete'), 'view': 'sources:setup_source_transformation_delete', 'args': 'transformation.pk', 'famfam': 'shape_square_delete', 'permissions': [PERMISSION_SOURCES_SETUP_EDIT]} -source_list = {'text': _(u'Document sources'), 'view': 'sources:setup_web_form_list', 'famfam': 'page_add', 'children_url_regex': [r'sources/setup'], 'permissions': [PERMISSION_SOURCES_SETUP_VIEW]} +source_list = {'text': _(u'Document sources'), 'view': 'sources:setup_web_form_list', 'famfam': 'page_add', 'permissions': [PERMISSION_SOURCES_SETUP_VIEW]} upload_version = {'text': _(u'Upload new version'), 'view': 'sources:upload_version', 'args': 'object.pk', 'famfam': 'page_add', 'permissions': [PERMISSION_DOCUMENT_NEW_VERSION]} diff --git a/mayan/apps/statistics/links.py b/mayan/apps/statistics/links.py index 8870d426f7..e7bbc5203d 100644 --- a/mayan/apps/statistics/links.py +++ b/mayan/apps/statistics/links.py @@ -9,5 +9,5 @@ def is_superuser(context): link_execute = {'text': _(u'Execute'), 'view': 'statistics:execute', 'args': 'object.id', 'famfam': 'lightning', 'condition': is_superuser} link_namespace_details = {'text': _(u'Details'), 'view': 'statistics:namespace_details', 'args': 'namespace.id', 'famfam': 'chart_curve_go', 'condition': is_superuser} -link_namespace_list = {'text': _(u'Namespace list'), 'view': 'statistics:namespace_list', 'famfam': 'chart_curve', 'condition': is_superuser, 'children_view_regex': [r'statistics']} -link_statistics = {'text': _(u'Statistics'), 'view': 'statistics:namespace_list', 'famfam': 'table', 'icon': 'blackboard_sum.png', 'condition': is_superuser, 'children_view_regex': [r'statistics']} +link_namespace_list = {'text': _(u'Namespace list'), 'view': 'statistics:namespace_list', 'famfam': 'chart_curve', 'condition': is_superuser} +link_statistics = {'text': _(u'Statistics'), 'view': 'statistics:namespace_list', 'famfam': 'table', 'icon': 'blackboard_sum.png', 'condition': is_superuser} diff --git a/mayan/apps/tags/__init__.py b/mayan/apps/tags/__init__.py index 872273746b..23e223fa75 100644 --- a/mayan/apps/tags/__init__.py +++ b/mayan/apps/tags/__init__.py @@ -52,7 +52,7 @@ register_model_list_columns(Document, [ }, ]) -register_top_menu('tags', link={'text': _(u'Tags'), 'view': 'tags:tag_list', 'famfam': 'tag_blue'}, children_view_regex=[r'^tag_(list|create|delete|edit|tagged|acl)']) +register_top_menu('tags', link={'text': _(u'Tags'), 'view': 'tags:tag_list', 'famfam': 'tag_blue'}) register_links(Tag, [tag_tagged_item_list, tag_edit, tag_acl_list, tag_delete]) register_links([Tag], [link_spacer, tag_multiple_delete], menu_name='multi_item_links') diff --git a/mayan/apps/tags/links.py b/mayan/apps/tags/links.py index 57fb80e143..34257886c2 100644 --- a/mayan/apps/tags/links.py +++ b/mayan/apps/tags/links.py @@ -17,7 +17,7 @@ tag_multiple_attach = {'text': _(u'Attach tag'), 'view': 'tags:tag_multiple_atta multiple_documents_selection_tag_remove = {'text': _(u'Remove tag'), 'view': 'tags:multiple_documents_selection_tag_remove', 'famfam': 'tag_blue_delete'} single_document_multiple_tag_remove = {'text': _(u'Remove tags'), 'view': 'tags:single_document_multiple_tag_remove', 'args': 'document.id', 'famfam': 'tag_blue_delete', 'permissions': [PERMISSION_TAG_REMOVE]} -tag_document_list = {'text': _(u'Tags'), 'view': 'tags:document_tags', 'args': 'object.pk', 'famfam': 'tag_blue', 'permissions': [PERMISSION_TAG_REMOVE, PERMISSION_TAG_ATTACH], 'children_view_regex': ['tag']} +tag_document_list = {'text': _(u'Tags'), 'view': 'tags:document_tags', 'args': 'object.pk', 'famfam': 'tag_blue', 'permissions': [PERMISSION_TAG_REMOVE, PERMISSION_TAG_ATTACH]} tag_delete = {'text': _(u'Delete'), 'view': 'tags:tag_delete', 'args': 'object.id', 'famfam': 'tag_blue_delete', 'permissions': [PERMISSION_TAG_DELETE]} tag_edit = {'text': _(u'Edit'), 'view': 'tags:tag_edit', 'args': 'object.id', 'famfam': 'tag_blue_edit', 'permissions': [PERMISSION_TAG_EDIT]} tag_tagged_item_list = {'text': _(u'Documents'), 'view': 'tags:tag_tagged_item_list', 'args': 'object.id', 'famfam': 'page'} diff --git a/mayan/apps/user_management/links.py b/mayan/apps/user_management/links.py index fdfa4a7c8a..5316d00fe3 100644 --- a/mayan/apps/user_management/links.py +++ b/mayan/apps/user_management/links.py @@ -8,7 +8,7 @@ from .permissions import (PERMISSION_GROUP_CREATE, PERMISSION_GROUP_DELETE, PERMISSION_USER_EDIT, PERMISSION_USER_VIEW) user_list = {'text': _(u'Users'), 'view': 'user_management:user_list', 'famfam': 'user', 'permissions': [PERMISSION_USER_VIEW]} -user_setup = {'text': _(u'Users'), 'view': 'user_management:user_list', 'famfam': 'user', 'icon': 'user.png', 'permissions': [PERMISSION_USER_VIEW], 'children_view_regex': [r'^user_']} +user_setup = {'text': _(u'Users'), 'view': 'user_management:user_list', 'famfam': 'user', 'icon': 'user.png', 'permissions': [PERMISSION_USER_VIEW]} user_edit = {'text': _(u'Edit'), 'view': 'user_management:user_edit', 'args': 'object.id', 'famfam': 'user_edit', 'permissions': [PERMISSION_USER_EDIT]} user_add = {'text': _(u'Create new user'), 'view': 'user_management:user_add', 'famfam': 'user_add', 'permissions': [PERMISSION_USER_CREATE]} user_delete = {u'text': _('Delete'), 'view': 'user_management:user_delete', 'args': 'object.id', 'famfam': 'user_delete', 'permissions': [PERMISSION_USER_DELETE]} @@ -18,7 +18,7 @@ user_multiple_set_password = {u'text': _('Reset password'), 'view': 'user_manage user_groups = {'text': _(u'Groups'), 'view': 'user_management:user_groups', 'args': 'object.id', 'famfam': 'group_link', 'permissions': [PERMISSION_USER_EDIT]} group_list = {'text': _(u'Groups'), 'view': 'user_management:group_list', 'famfam': 'group', 'permissions': [PERMISSION_GROUP_VIEW]} -group_setup = {'text': _(u'Groups'), 'view': 'user_management:group_list', 'famfam': 'group', 'icon': 'group.png', 'permissions': [PERMISSION_GROUP_VIEW], 'children_view_regex': [r'^group_']} +group_setup = {'text': _(u'Groups'), 'view': 'user_management:group_list', 'famfam': 'group', 'icon': 'group.png', 'permissions': [PERMISSION_GROUP_VIEW]} group_edit = {'text': _(u'Edit'), 'view': 'user_management:group_edit', 'args': 'object.id', 'famfam': 'group_edit', 'permissions': [PERMISSION_GROUP_EDIT]} group_add = {'text': _(u'Create new group'), 'view': 'user_management:group_add', 'famfam': 'group_add', 'permissions': [PERMISSION_GROUP_CREATE]} group_delete = {u'text': _('Delete'), 'view': 'user_management:group_delete', 'args': 'object.id', 'famfam': 'group_delete', 'permissions': [PERMISSION_GROUP_DELETE]}