Separation between setting up the template env and the template loader
authorChristopher Allan Webber <cwebber@dustycloud.org>
Thu, 12 May 2011 20:17:07 +0000 (15:17 -0500)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Thu, 12 May 2011 20:17:07 +0000 (15:17 -0500)
for a glorious future where we have gettext in template context

mediagoblin/app.py
mediagoblin/util.py

index 2a2f21cc79d986a2ed7224b6ffef93c57bbfbfbf..d124558d5e368ce3141af5e3497ff761e2d6065d 100644 (file)
@@ -40,7 +40,7 @@ class MediaGoblinApp(object):
                  email_sender_address, email_debug_mode,
                  user_template_path=None):
         # Get the template environment
-        self.template_env = util.get_jinja_env(user_template_path)
+        self.template_loader = util.get_jinja_loader(user_template_path)
         
         # Set up storage systems
         self.public_store = public_store
@@ -103,7 +103,10 @@ class MediaGoblinApp(object):
         # Attach self as request.app
         # Also attach a few utilities from request.app for convenience?
         request.app = self
-        request.template_env = self.template_env
+        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
 
index f02b5f510779e472586c21f09fdc4eac7a7cfc8d..ac977bdbf78fb4dcc65dafc49737287344d3bded 100644 (file)
@@ -33,23 +33,31 @@ def _activate_testing():
     TESTS_ENABLED = True
 
 
-def get_jinja_env(user_template_path=None):
+def get_jinja_loader(user_template_path=None):
     """
-    Set up the Jinja environment, possibly allowing for user
+    Set up the Jinja template loaders, possibly allowing for user
     overridden templates.
 
     (In the future we may have another system for providing theming;
     for now this is good enough.)
     """
     if user_template_path:
-        loader = jinja2.ChoiceLoader(
+        return jinja2.ChoiceLoader(
             [jinja2.FileSystemLoader(user_template_path),
              jinja2.PackageLoader('mediagoblin', 'templates')])
     else:
-        loader = jinja2.PackageLoader('mediagoblin', 'templates')
+        return jinja2.PackageLoader('mediagoblin', 'templates')
 
+
+def get_jinja_env(template_loader, locale):
+    """
+    Set up the Jinja environment, 
+
+    (In the future we may have another system for providing theming;
+    for now this is good enough.)
+    """
     return jinja2.Environment(
-        loader=loader, autoescape=True,
+        loader=template_loader, autoescape=True,
         extensions=['jinja2.ext.i18n'])
 
 
@@ -237,4 +245,4 @@ def get_locale_from_request(request):
     else:
         target_lang = 'en'
 
-    return make_locale_lower_upper_style(target_lang)
+    return locale_to_lower_upper(target_lang)