def sidebar_menu(context): def traverse(tree, depth=1): ul = htmlutils.Tag('ul', classes={ 'nav', 'nav-pills', 'nav-stacked', 'depth-' + str(depth), }) yield ul.start() for page, children in tree: is_active = page.pk == calling_page.pk li = htmlutils.Tag('li') li.toggle_class('active', is_active) yield li.start() if is_active: yield htmlutils.tag('a', page.title, href='#') else: yield htmlutils.tag('a', page.title, href=page.url) if children: yield from traverse(children, depth=depth + 1) yield li.end() yield ul.end() if 'self' in context: calling_page = context['self'] top_menu_page = nav.get_top_menu_page(calling_page) if top_menu_page: descendants = top_menu_page.get_descendants().live().in_menu() tree = treeutils.grow_tree(descendants) return '\n'.join(traverse(treeutils.transform(tree))) return ''
def sidebar_menu(context): # pylint: disable=invalid-name def traverse(tree, depth=1): ul = htmlutils.Tag('ul', classes={ 'nav', 'nav-pills', 'nav-stacked', 'depth-' + str(depth), }) yield ul.start() for page, children in tree: is_active = page.pk == calling_page.pk li = htmlutils.Tag('li') li.toggle_class('active', is_active) yield li.start() if is_active: yield htmlutils.tag('a', page.title, href='#') else: yield htmlutils.tag('a', page.title, href=page.url) if children: yield from traverse(children, depth=depth + 1) yield li.end() yield ul.end() if 'self' in context: calling_page = context['self'] top_menu_page = nav.get_top_menu_page(calling_page) if top_menu_page: descendants = top_menu_page.get_descendants().live().in_menu() tree = treeutils.grow_tree(descendants) return '\n'.join(traverse(treeutils.transform(tree))) return ''
def test_transform(self): self.assertEqual( treeutils.transform(self.fixtures.tree_of_slugs()), self.fixtures.transformed_tree_of_slugs(), )