menu.py
author Tero Marttila <terom@fixme.fi>
Mon, 15 Jun 2009 02:42:23 +0300
changeset 221 1a1e74f2a4ed
parent 187 ebbcfd24d845
permissions -rw-r--r--
write degal page, tweak h1/h2/h3 styles, tweak other pages to use those, add missing spbot.html page
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
class Menu (object) :
f2600dda89c5 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
    """
f2600dda89c5 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
        Contains info needed to render the menu
f2600dda89c5 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     8
    """
f2600dda89c5 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
172
0797aa26beaf bloat code with even more layers of indirection, split off the filesystem-based stuff into a separate lib.filesystem package (next, move it to sites/www.qmsk.net)
Tero Marttila <terom@fixme.fi>
parents: 158
diff changeset
    10
    def __init__ (self, fs, page) :
151
f2600dda89c5 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
        """
172
0797aa26beaf bloat code with even more layers of indirection, split off the filesystem-based stuff into a separate lib.filesystem package (next, move it to sites/www.qmsk.net)
Tero Marttila <terom@fixme.fi>
parents: 158
diff changeset
    12
            Gather the menu information for the given page, as part of the given FilesystemMapper
151
f2600dda89c5 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    13
        """
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
        # the selected page
172
0797aa26beaf bloat code with even more layers of indirection, split off the filesystem-based stuff into a separate lib.filesystem package (next, move it to sites/www.qmsk.net)
Tero Marttila <terom@fixme.fi>
parents: 158
diff changeset
    16
        self.page = fs.tree.get_page(page.url)
154
4a77c68e62f7 basic multi-level menu
Tero Marttila <terom@fixme.fi>
parents: 153
diff changeset
    17
4a77c68e62f7 basic multi-level menu
Tero Marttila <terom@fixme.fi>
parents: 153
diff changeset
    18
        # the selected pagen's inheritance
155
5e349c1067ec fix unlisted pages and page tree recursion
Tero Marttila <terom@fixme.fi>
parents: 154
diff changeset
    19
        self.ancestry = self.page.get_ancestry() if self.page else []
151
f2600dda89c5 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
        
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
    21
        # list of menu items == root children, since we always show the full menu...
172
0797aa26beaf bloat code with even more layers of indirection, split off the filesystem-based stuff into a separate lib.filesystem package (next, move it to sites/www.qmsk.net)
Tero Marttila <terom@fixme.fi>
parents: 158
diff changeset
    22
        self.items = fs.tree.root.children
151
f2600dda89c5 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    23