diff --git a/menu_generator/menu.py b/menu_generator/menu.py index c90663be7efc8a4a599d44f24b1f59e27123e0a1..38111bdb4838c17bb0c50723ebe003c3839b7c8b 100755 --- a/menu_generator/menu.py +++ b/menu_generator/menu.py @@ -82,10 +82,20 @@ class MenuBase(object): def _is_selected(self, item_dict): """ - Given a menu item dictionary, it returns true if `url` is on path. + Given a menu item dictionary, it returns true if `url` is on path, + unless the item is marked as a root, in which case returns true if `url` is part of path. """ url = self._get_url(item_dict) - return url == self.path + if self._is_root(item_dict): + return url in self.path + else: + return url == self.path + + def _is_root(self, item_dict): + """ + Given a menu item dictionary, it returns true if item is marked as a `root`. + """ + return item_dict.get('root', False) def _process_breadcrums(self, menu_list): """