Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: cms/converters.py

Issue 4923768585584640: Issue 2179 - [cms] Give Jinja2 templates a way to set global parameters (Closed)
Patch Set: Extract template variables automatically Created March 20, 2015, 3:31 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cms/converters.py
===================================================================
--- a/cms/converters.py
+++ b/cms/converters.py
@@ -285,17 +285,21 @@ class TemplateConverter(Converter):
filters[func].module_ref = module # Prevent garbage collection
self._env = jinja2.Environment(loader=self._SourceLoader(self._params["source"]), autoescape=True)
self._env.filters.update(filters)
self._env.globals.update(globals)
def get_html(self, source):
template = self._env.from_string(source)
- return template.render(self._params)
+ module = template.make_module(self._params)
+ for key, value in module.__dict__.iteritems():
+ if not key.startswith("_"):
+ self._params[key] = value
+ return unicode(module)
def translate(self, default, name, comment=None):
# Note: We currently ignore the comment, it is only relevant when
# generating the master translation.
localedata = self._params["localedata"]
return jinja2.Markup(self.localize_string(name, default, localedata, html_escapes))
def get_string(self, name, page):
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld