lib/menu.py
author Tero Marttila <terom@fixme.fi>
Sat, 07 Feb 2009 05:12:57 +0200
changeset 28 b68145b5ce24
parent 16 4a40718c7b4b
permissions -rw-r--r--
breadcrumb, but it's hidden
9
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
"""
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
    Handling the list of available pages
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
"""
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     5
# for page_list
16
4a40718c7b4b better error handling of import errors in CGI, and split PageTree out from page.py into page_tree.py and tree_parse.py
Tero Marttila <terom@fixme.fi>
parents: 13
diff changeset
     6
from page_tree import page_tree
9
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     8
class Menu (object) :
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
    """
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
        Contains info needed to render the menu
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
    """
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    12
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    13
    def __init__ (self, page) :
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    14
        """
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    15
            Gather the menu information for the given page
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    16
        """
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    17
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    18
        # the selected page
16
4a40718c7b4b better error handling of import errors in CGI, and split PageTree out from page.py into page_tree.py and tree_parse.py
Tero Marttila <terom@fixme.fi>
parents: 13
diff changeset
    19
        self.page = page_tree.get_page(page.url)
12
2abc5ace0b15 basic multi-level menu
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    20
2abc5ace0b15 basic multi-level menu
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    21
        # the selected pagen's inheritance
13
178ea40bbc44 fix unlisted pages and page tree recursion
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    22
        self.ancestry = self.page.get_ancestry() if self.page else []
9
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    23
        
16
4a40718c7b4b better error handling of import errors in CGI, and split PageTree out from page.py into page_tree.py and tree_parse.py
Tero Marttila <terom@fixme.fi>
parents: 13
diff changeset
    24
        # list of menu items == root children, since we always show the full menu...
4a40718c7b4b better error handling of import errors in CGI, and split PageTree out from page.py into page_tree.py and tree_parse.py
Tero Marttila <terom@fixme.fi>
parents: 13
diff changeset
    25
        self.items = page_tree.root.children
9
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    26