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