X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=www%2Fmaps%2Fmaps%2Fcontrollers%2Ferror.py;fp=www%2Fmaps%2Fmaps%2Fcontrollers%2Ferror.py;h=b98525cd189c0b18fc4f5b5b9d907e908ed4aacc;hb=5485afbd4da2182072ef9756c65137729bf1eee5;hp=0000000000000000000000000000000000000000;hpb=a5341c314815ed4df97e2b0f94d05322660052cf;p=dead%2Fcensus-tools.git diff --git a/www/maps/maps/controllers/error.py b/www/maps/maps/controllers/error.py new file mode 100644 index 0000000..b98525c --- /dev/null +++ b/www/maps/maps/controllers/error.py @@ -0,0 +1,46 @@ +import cgi + +from paste.urlparser import PkgResourcesParser +from pylons import request +from pylons.controllers.util import forward +from pylons.middleware import error_document_template +from webhelpers.html.builder import literal + +from maps.lib.base import BaseController + +class ErrorController(BaseController): + + """Generates error documents as and when they are required. + + The ErrorDocuments middleware forwards to ErrorController when error + related status codes are returned from the application. + + This behaviour can be altered by changing the parameters to the + ErrorDocuments middleware in your config/middleware.py file. + + """ + + def document(self): + """Render the error document""" + resp = request.environ.get('pylons.original_response') + content = literal(resp.body) or cgi.escape(request.GET.get('message', '')) + page = error_document_template % \ + dict(prefix=request.environ.get('SCRIPT_NAME', ''), + code=cgi.escape(request.GET.get('code', str(resp.status_int))), + message=content) + return page + + def img(self, id): + """Serve Pylons' stock images""" + return self._serve_file('/'.join(['media/img', id])) + + def style(self, id): + """Serve Pylons' stock stylesheets""" + return self._serve_file('/'.join(['media/style', id])) + + def _serve_file(self, path): + """Call Paste's FileApp (a WSGI application) to serve the file + at the specified path + """ + request.environ['PATH_INFO'] = '/%s' % path + return forward(PkgResourcesParser('pylons', 'pylons'))