From 9802a0a78c21b2877dccc5fd27a9a5ce2190ff8f Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Fri, 1 Jul 2011 21:30:18 -0400 Subject: [PATCH] Added a positional argument to the register_links function --- apps/navigation/api.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/apps/navigation/api.py b/apps/navigation/api.py index 009a9a2b4c..7c2d0cb6c5 100644 --- a/apps/navigation/api.py +++ b/apps/navigation/api.py @@ -21,7 +21,7 @@ def register_multi_item_links(src, links, menu_name=None): multi_object_navigation[menu_name][src]['links'].extend(links) -def register_links(src, links, menu_name=None): +def register_links(src, links, menu_name=None, position=None): """ Associate a link to a model a view, or an url """ @@ -30,10 +30,18 @@ def register_links(src, links, menu_name=None): if hasattr(src, '__iter__'): for one_src in src: object_navigation[menu_name].setdefault(one_src, {'links': []}) - object_navigation[menu_name][one_src]['links'].extend(links) + if position is not None: + for link in reversed(links): + object_navigation[menu_name][one_src]['links'].insert(position, link) + else: + object_navigation[menu_name][one_src]['links'].extend(links) else: object_navigation[menu_name].setdefault(src, {'links': []}) - object_navigation[menu_name][src]['links'].extend(links) + if position is not None: + for link in reversed(links): + object_navigation[menu_name][src]['links'].insert(position, link) + else: + object_navigation[menu_name][src]['links'].extend(links) def register_top_menu(name, link, children_views=None, children_path_regex=None, position=None):