Separation between setting up the template env and the template loader
for a glorious future where we have gettext in template context
This commit is contained in:
parent
f62ccaac15
commit
0e0e3d9aad
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user