Change the ordering of the app's __call__ method (attach things to request first)

This will make it easier for us to call something like a 404 page rendering method
before the matching check is done.
This commit is contained in:
Christopher Allan Webber 2011-08-20 15:00:25 -05:00
parent 0161aa920d
commit 3d0557bf25

View File

@ -101,6 +101,23 @@ class MediaGoblinApp(object):
## Routing / controller loading stuff
route_match = self.routing.match(path_info)
## Attach utilities to the request object
request.matchdict = route_match
request.urlgen = routes.URLGenerator(self.routing, environ)
# Do we really want to load this via middleware? Maybe?
request.session = request.environ['beaker.session']
# Attach self as request.app
# Also attach a few utilities from request.app for convenience?
request.app = self
request.locale = util.get_locale_from_request(request)
request.template_env = util.get_jinja_env(
self.template_loader, request.locale)
request.db = self.db
request.staticdirect = self.staticdirector
util.setup_user_in_request(request)
# No matching page?
if route_match is None:
# Try to do see if we have a match with a trailing slash
@ -121,23 +138,6 @@ class MediaGoblinApp(object):
controller = util.import_component(route_match['controller'])
request.start_response = start_response
## Attach utilities to the request object
request.matchdict = route_match
request.urlgen = routes.URLGenerator(self.routing, environ)
# Do we really want to load this via middleware? Maybe?
request.session = request.environ['beaker.session']
# Attach self as request.app
# Also attach a few utilities from request.app for convenience?
request.app = self
request.locale = util.get_locale_from_request(request)
request.template_env = util.get_jinja_env(
self.template_loader, request.locale)
request.db = self.db
request.staticdirect = self.staticdirector
util.setup_user_in_request(request)
return controller(request)(environ, start_response)