Simplified and improved navigation link registration
This commit is contained in:
@@ -1,5 +1,3 @@
|
|||||||
import copy
|
|
||||||
|
|
||||||
object_navigation = {}
|
object_navigation = {}
|
||||||
multi_object_navigation = {}
|
multi_object_navigation = {}
|
||||||
menu_links = []
|
menu_links = []
|
||||||
@@ -8,47 +6,25 @@ sidebar_templates = {}
|
|||||||
|
|
||||||
|
|
||||||
def register_multi_item_links(src, links, menu_name=None):
|
def register_multi_item_links(src, links, menu_name=None):
|
||||||
if menu_name in multi_object_navigation:
|
multi_object_navigation.setdefault(menu_name, {})
|
||||||
if hasattr(src, '__iter__'):
|
if hasattr(src, '__iter__'):
|
||||||
for one_src in src:
|
for one_src in src:
|
||||||
if one_src in object_navigation[menu_name]:
|
multi_object_navigation[menu_name].setdefault(one_src, {'links': []})
|
||||||
multi_object_navigation[menu_name][one_src]['links'].extend(links)
|
multi_object_navigation[menu_name][one_src]['links'].extend(links)
|
||||||
else:
|
else:
|
||||||
multi_object_navigation[menu_name][one_src] = {'links': copy.copy(links)}
|
multi_object_navigation[menu_name].setdefault(src, {'links': []})
|
||||||
else:
|
|
||||||
if src in multi_object_navigation[menu_name]:
|
|
||||||
multi_object_navigation[menu_name][src]['links'].extend(links)
|
multi_object_navigation[menu_name][src]['links'].extend(links)
|
||||||
else:
|
|
||||||
multi_object_navigation[menu_name][src] = {'links': links}
|
|
||||||
else:
|
|
||||||
multi_object_navigation[menu_name] = {}
|
|
||||||
if hasattr(src, '__iter__'):
|
|
||||||
for one_src in src:
|
|
||||||
multi_object_navigation[menu_name][one_src] = {'links': links}
|
|
||||||
else:
|
|
||||||
multi_object_navigation[menu_name] = {src: {'links': links}}
|
|
||||||
|
|
||||||
|
|
||||||
def register_links(src, links, menu_name=None):
|
def register_links(src, links, menu_name=None):
|
||||||
if menu_name in object_navigation:
|
object_navigation.setdefault(menu_name, {})
|
||||||
if hasattr(src, '__iter__'):
|
if hasattr(src, '__iter__'):
|
||||||
for one_src in src:
|
for one_src in src:
|
||||||
if one_src in object_navigation[menu_name]:
|
object_navigation[menu_name].setdefault(one_src, {'links': []})
|
||||||
object_navigation[menu_name][one_src]['links'].extend(links)
|
object_navigation[menu_name][one_src]['links'].extend(links)
|
||||||
else:
|
else:
|
||||||
object_navigation[menu_name][one_src] = {'links': copy.copy(links)}
|
object_navigation[menu_name].setdefault(src, {'links': []})
|
||||||
else:
|
|
||||||
if src in object_navigation[menu_name]:
|
|
||||||
object_navigation[menu_name][src]['links'].extend(links)
|
object_navigation[menu_name][src]['links'].extend(links)
|
||||||
else:
|
|
||||||
object_navigation[menu_name][src] = {'links': links}
|
|
||||||
else:
|
|
||||||
object_navigation[menu_name] = {}
|
|
||||||
if hasattr(src, '__iter__'):
|
|
||||||
for one_src in src:
|
|
||||||
object_navigation[menu_name][one_src] = {'links': links}
|
|
||||||
else:
|
|
||||||
object_navigation[menu_name] = {src: {'links': links}}
|
|
||||||
|
|
||||||
|
|
||||||
def register_menu(links):
|
def register_menu(links):
|
||||||
@@ -59,15 +35,11 @@ def register_menu(links):
|
|||||||
|
|
||||||
|
|
||||||
def register_model_list_columns(model, columns):
|
def register_model_list_columns(model, columns):
|
||||||
if model in model_list_columns:
|
model_list_columns.setdefault(model, [])
|
||||||
model_list_columns[model].extend(columns)
|
model_list_columns[model].extend(columns)
|
||||||
else:
|
|
||||||
model_list_columns[model] = copy.copy(columns)
|
|
||||||
|
|
||||||
|
|
||||||
def register_sidebar_template(source_list, template_name):
|
def register_sidebar_template(source_list, template_name):
|
||||||
for source in source_list:
|
for source in source_list:
|
||||||
if source in sidebar_templates:
|
sidebar_templates.setdefault(source, [])
|
||||||
sidebar_templates[source].append(template_name)
|
sidebar_templates[source].append(template_name)
|
||||||
else:
|
|
||||||
sidebar_templates[source] = [template_name]
|
|
||||||
|
|||||||
Reference in New Issue
Block a user