From: Christopher Allan Webber Date: Sat, 20 Aug 2011 20:00:25 +0000 (-0500) Subject: Change the ordering of the app's __call__ method (attach things to request first) X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=3d0557bf25683c26ec2b6de041d53fe5a0c6255c;p=mediagoblin.git 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. --- diff --git a/mediagoblin/app.py b/mediagoblin/app.py index c1ee3d77..96a7ad61 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -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)