Add support for matching by subclassing too
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user