sites/www.qmsk.net/menu.py
author Tero Marttila <terom@fixme.fi>
Sat, 07 Feb 2009 17:10:06 +0200
branchsites
changeset 34 09196d5b2a39
parent 31 lib/filesystem/menu.py@107062ebb6f9
permissions -rw-r--r--
move lib.filesystem code to sites/www.qmsk.net, part one
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
class Menu (object) :
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
    """
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
        Contains info needed to render the menu
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     8
    """
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
31
107062ebb6f9 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: 16
diff changeset
    10
    def __init__ (self, fs, page) :
9
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
        """
31
107062ebb6f9 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: 16
diff changeset
    12
            Gather the menu information for the given page, as part of the given FilesystemMapper
9
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    13
        """
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
        # the selected page
31
107062ebb6f9 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: 16
diff changeset
    16
        self.page = fs.tree.get_page(page.url)
12
2abc5ace0b15 basic multi-level menu
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    17
2abc5ace0b15 basic multi-level menu
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    18
        # the selected pagen's inheritance
13
178ea40bbc44 fix unlisted pages and page tree recursion
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    19
        self.ancestry = self.page.get_ancestry() if self.page else []
9
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
        
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
    21
        # list of menu items == root children, since we always show the full menu...
31
107062ebb6f9 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: 16
diff changeset
    22
        self.items = fs.tree.root.children
9
2a47b00f60b0 page list + menu
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    23