Add support for matching by subclassing too

This commit is contained in:
Roberto Rosario
2014-07-04 01:47:04 -04:00
parent d19f3da730
commit 8be9fb33b1

View File

@@ -1,6 +1,7 @@
from __future__ import absolute_import from __future__ import absolute_import
import copy import copy
import inspect
import re import re
import urllib import urllib
import urlparse import urlparse
@@ -187,6 +188,7 @@ def _get_object_navigation_links(context, menu_name=None, links_dict=object_navi
if temp_navigation_links: if temp_navigation_links:
links_dict.update(temp_navigation_links) links_dict.update(temp_navigation_links)
# Match view links
try: try:
links = links_dict[menu_name][current_view]['links'] links = links_dict[menu_name][current_view]['links']
for link in resolve_links(context, links, current_view, current_path, parsed_query_string): for link in resolve_links(context, links, current_view, current_path, parsed_query_string):
@@ -196,12 +198,12 @@ def _get_object_navigation_links(context, menu_name=None, links_dict=object_navi
obj, object_name = get_navigation_object(context) obj, object_name = get_navigation_object(context)
try: # Match context navigation object links
links = links_dict[menu_name][type(obj)]['links'] for source, data in links_dict[menu_name].items():
for link in resolve_links(context, links, current_view, current_path, parsed_query_string): if inspect.isclass(source) and isinstance(obj, source):
context_links.append(link) for link in resolve_links(context, data['links'], current_view, current_path, parsed_query_string):
except KeyError: context_links.append(link)
pass break
return context_links return context_links