diff -r be954df4f0e8 -r 19ea04f4b0cd lib/filesystem/page.py --- a/lib/filesystem/page.py Sat Feb 07 16:55:23 2009 +0200 +++ b/lib/filesystem/page.py Sat Feb 07 17:07:06 2009 +0200 @@ -7,7 +7,9 @@ import os, os.path import time -from lib import http, template, config +from lib import http, handler, template, config + +import menu class PageError (http.ResponseError) : """ @@ -17,7 +19,7 @@ pass # XXX: should inherit from PageInfo -class Page (object) : +class Page (handler.RequestHandler) : """ This object represents the information about our attempt to render some specific page """ @@ -42,9 +44,6 @@ self.url_tail = url_tail self.charset = charset - # unbound - self.request = None - # sub-init self._init() @@ -55,13 +54,6 @@ pass - def bind_request (self, request) : - """ - Bind this page-render to the given request - """ - - self.request = request - @property def title (self) : """ @@ -100,6 +92,23 @@ timestamp = os.stat(self.path).st_mtime return time.strftime(config.DATETIME_FMT, time.gmtime(timestamp)) + + def handle_request (self, request) : + """ + Renders the fs's layout template with this page + menu + """ + + # render the template + response_data = template.render(self.fs.template, + request = request, + site_root_url = request.get_script_dir(), + site_page_url = request.get_page_prefix(), + page = self, + menu = menu.Menu(self.fs, self), + ) + + # return the response + return http.Response(response_data) class HTMLPage (Page) : """ @@ -126,7 +135,6 @@ """ return template.TemplateLoader.render_file(self.path, - request = self.request, - page_tree = self.fs.tree + page_tree = self.fs.tree, )