--- 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,
)