terom@5:
terom@5: class Page (object) :
terom@5: """
terom@5: A page is kind of like a controller, I guess
terom@5: """
terom@5:
terom@5: # the page title, used in the HTML
terom@5: title = None
terom@5:
terom@5: # the page name, used in the menu
terom@5: name = None
terom@5:
terom@5: # the page path, used in the URL
terom@5: path = None
terom@5:
terom@5: # parent page, can be self
terom@5: parent = None
terom@5:
terom@5: # menu of sub-pages, may be empty
terom@5: menu = None
terom@5:
terom@5: def __init__ (self, req, path_suffix) :
terom@5: self.req = req
terom@5: self.path_suffix = path_suffix
terom@5:
terom@5: # default parent to root
terom@5: if not self.parent :
terom@5: from pages import index as index_page
terom@5:
terom@5: self.parent = index_page.Page
terom@5:
terom@5: def _build_template (self, template_class) :
terom@5: tpl = template_class(searchList=[self.req])
terom@5:
terom@5: tpl.page_title = self.title
terom@5: tpl.page_name = self.name
terom@5: tpl.page_path = self.path
terom@5:
terom@5: tpl.page_menu = self.menu
terom@5: tpl.page = self
terom@5:
terom@5: return tpl
terom@5:
terom@5: def get_response_code (self) :
terom@5: """
terom@5: Returns the HTTP response code to be used
terom@5: """
terom@5:
terom@5: return 200
terom@5:
terom@5: def render_template (self) :
terom@5: """
terom@5: Returns an instance of Cheetah.Template, prepopulated with whatever variables it needs, ready to be rendered
terom@5: """
terom@5:
terom@5: abstract
terom@5:
terom@5:
terom@5: