def get_root_pages(current_page=None): # If given a string, this could either be: # - A Django URL (which can be reversed) # - A page URL if isinstance(current_page, six.string_types): try: current_page = get_page_model().objects.get( url=reverse(current_page)) except get_page_model().DoesNotExist: current_page = None except NoReverseMatch: current_page = None page_list = [] # Find the root page so the template can highlight it if current_page: root_page = current_page.get_root() else: root_page = None for i in get_page_model().objects.root_nodes().filter( show_in_navigation=True): page_list.append((i, i == root_page)) return page_list
def get_root_pages(current_page=None): # If given a string, this could either be: # - A Django URL (which can be reversed) # - A page URL if isinstance(current_page, six.string_types): try: current_page = get_page_model().objects.get(url=reverse(current_page)) except get_page_model().DoesNotExist: current_page = None page_list = [] # Find the root page so the template can highlight it if current_page: root_page = current_page.get_root() else: root_page = None for i in get_page_model().objects.root_nodes().filter(show_in_navigation=True): page_list.append((i, i == root_page)) return page_list
def get_pages_at_level(current_page, level=1): if isinstance(current_page, six.string_types): try: current_page = get_page_model().objects.get(url=reverse(current_page)) except get_page_model().DoesNotExist: current_page = None if current_page: page_and_ancestors = list(current_page.get_ancestors(include_self=True)) # Page isn't deep enough to show this level of navigation if level > current_page.level + 1: return [] parent_page = page_and_ancestors[level - 1] page_list = [] for i in parent_page.get_children().filter(show_in_navigation=True): page_list.append((i, i in page_and_ancestors)) return page_list
def get_pages_at_level(current_page, level=1): if isinstance(current_page, six.string_types): try: current_page = get_page_model().objects.get( url=reverse(current_page)) except get_page_model().DoesNotExist: current_page = None if current_page: page_and_ancestors = list( current_page.get_ancestors(include_self=True)) # Page isn't deep enough to show this level of navigation if level > current_page.level + 1: return [] parent_page = page_and_ancestors[level - 1] page_list = [] for i in parent_page.get_children().filter(show_in_navigation=True): page_list.append((i, i in page_and_ancestors)) return page_list