Example #1
0
def flat_tree_list(generate_level_names=True):
    """
    Generate a flat page list.
    Usefull for a html select input, like this:
        <option value="1">___| about</option>
        <option value="2">______| features</option>
        <option value="3">_________| unicode</option>
        <option value="4">_________| unicode test</option>
        <option value="5">______| news</option>
        <option value="6">_________| SVN news</option>
    """
    page_data = Page.objects.values(
        "id", "parent", "name", "title", "shortcut", "showlinks",
    ).order_by("position", "name", "id")
    tree = TreeGenerator(page_data)
    tree.activate_all()
    page_list = tree.get_flat_list()

    if generate_level_names:
        for page in page_list:
            page["level_name"] = " %s| %s" % (
                "_"*((page["level"]*2)-2), page["name"]
            )

    return page_list
Example #2
0
def get_sitemap_tree(request):
    """
    Generate a tree of all pages for the sitemap.
    """
    # Get all pages from the database:
    sitemap_data = _get_page_data(request)
    tree = TreeGenerator(sitemap_data)
    sitemap_tree = tree.get_sitemap_tree()
    return sitemap_tree
Example #3
0
def get_main_menu_tree(request, current_page_id):
    """
    Generate a opened tree dict for the given >current_page_id<.
    """
    # Get all pages from the database:
    menu_data = _get_page_data(request)
    # Build the tree:
    tree = TreeGenerator(menu_data)
    # Generate the opened tree dict:
    menu_data = tree.get_menu_tree(current_page_id)
    return menu_data
Example #4
0
    def all_pages(self):
        current_page = self.context["PAGE"]
        current_page.title = "all pages"
        current_page_id = current_page.id

#        page_data = Page.objects.values(
#            "id", "parent", "shortcut", "name", "title",
#            "template", "content", "markup"
#        ).order_by("position")

        pages = Page.objects.all().order_by("position")
        page_data = []
        for page in pages:
            content = escape_django_tags(page.content)
            parent = getattr(page.parent, "id", None)
            url = page.get_absolute_url()

            page_data.append({
                "id": page.id,
                "parent": parent,
                "shortcut": page.shortcut,
                "name": page.name,
                "title": page.title,
                "content": content,
                "template": page.template.id,
                "markup": page.markup,
                "url": url,
            })
#        self.page_msg(page_data)

        tree = TreeGenerator(page_data)
        page_list = tree.get_group_list(
            group_key="template", id=current_page_id
        )[1:]
        for page in page_list:
            content = page["content"]
            markup_object = page["markup"]
            content = apply_markup(content, self.context, markup_object)
            page["content"] = content
#        self.page_msg(page_list)

        context = {
            "page_list": page_list,
        }
        self._render_template("all_pages", context)#, debug=True)