def render(self, context): self.filter_expression.var.translate = not self.noop if self.message_context: self.filter_expression.var.message_context = ( self.message_context.resolve(context)) output = self.filter_expression.resolve(context) value = render_value_in_context(output, context) # Restore percent signs. Percent signs in template text are doubled # so they are not interpreted as string format flags. is_safe = isinstance(value, SafeData) value = value.replace('%%', '%') formatvalues = [] for formatvalue in self.formatvalues: try: variable = Variable(formatvalue) formatvalues.append(variable.resolve(context)) except VariableDoesNotExist: formatvalues.append(formatvalue) value = value.format(*formatvalues) value = mark_safe(value) if is_safe else value if self.asvar: context[self.asvar] = value return '' else: return value
def render(self, context): for var in self.vars: value = var.resolve(context, True) if value: if not self.escape: value = mark_safe(value) return render_value_in_context(value, context) return ''
def render(self, context): for var in self.vars: value = var.resolve(context, True) if value: if not self.escape: value = mark_safe(value) return render_value_in_context(value, context) return ''
def render(self, context): if self not in context.render_context: # First time the node is rendered in template context.render_context[self] = itertools_cycle(self.cyclevars) cycle_iter = context.render_context[self] value = next(cycle_iter).resolve(context) if self.variable_name: context[self.variable_name] = value if self.silent: return '' return render_value_in_context(value, context)
def render(self, context): self.filter_expression.var.translate = not self.noop if self.message_context: self.filter_expression.var.message_context = self.message_context.resolve(context) output = self.filter_expression.resolve(context) value = render_value_in_context(output, context) if self.asvar: context[self.asvar] = value return "" else: return value
def render(self, context): if self not in context.render_context: # First time the node is rendered in template context.render_context[self] = itertools_cycle(self.cyclevars) cycle_iter = context.render_context[self] value = next(cycle_iter).resolve(context) if self.variable_name: context[self.variable_name] = value if self.silent: return '' return render_value_in_context(value, context)
def render(self, context): self.filter_expression.var.translate = not self.noop if self.message_context: self.filter_expression.var.message_context = ( self.message_context.resolve(context)) output = self.filter_expression.resolve(context) value = render_value_in_context(output, context) if self.asvar: context[self.asvar] = value return '' else: return value
def render(self, context): self.filter_expression.var.translate = not self.noop if self.message_context: self.filter_expression.var.message_context = ( self.message_context.resolve(context)) output = self.filter_expression.resolve(context) value = render_value_in_context(output, context) if self.asvar: context[self.asvar] = PhraseDelegate(value, self.trimmed) return '' else: delegate = PhraseDelegate(self.filter_expression.var, self.trimmed) return delegate
def render(self, context): self.filter_expression.var.translate = not self.noop if self.message_context: self.filter_expression.var.message_context = ( self.message_context.resolve(context)) output = self.filter_expression.resolve(context) value = render_value_in_context(output, context) if self.asvar: context[self.asvar] = PhraseDelegate(value) return '' else: delegate = PhraseDelegate(value) return delegate
def render(self, context): self.filter_expression.var.translate = not self.noop if self.message_context: self.filter_expression.var.message_context = ( self.message_context.resolve(context)) output = self.filter_expression.resolve(context) value = render_value_in_context(output, context) # Restore percent signs. Percent signs in template text are doubled # so they are not interpreted as string format flags. is_safe = isinstance(value, SafeData) value = value.replace('%%', '%') value = mark_safe(value) if is_safe else value if self.asvar: context[self.asvar] = value return '' else: return value
def render(self, context, nested=False): if self.message_context: message_context = self.message_context.resolve(context) else: message_context = None tmp_context = {} for var, val in self.extra_context.items(): tmp_context[var] = val.resolve(context) # Update() works like a push(), so corresponding context.pop() is at # the end of function context.update(tmp_context) singular, vars = self.render_token_list(self.singular) if self.plural and self.countervar and self.counter: count = self.counter.resolve(context) context[self.countervar] = count plural, plural_vars = self.render_token_list(self.plural) if message_context: result = translation.npgettext(message_context, singular, plural, count) else: result = translation.ungettext(singular, plural, count) vars.extend(plural_vars) else: if message_context: result = translation.pgettext(message_context, singular) else: # result = translation.ugettext(singular) result = PhraseDelegate(singular) default_value = settings.TEMPLATE_STRING_IF_INVALID render_value = lambda v: render_value_in_context( context.get(v, default_value), context) data = dict([(v, render_value(v)) for v in vars]) context.pop() # FIX # try: # result = result % data # except (KeyError, ValueError): # if nested: # # Either string is malformed, or it's a bug # raise TemplateSyntaxError("'blocktrans' is unable to format " # "string returned by gettext: %r using %r" % (result, data)) # with translation.override(None): # result = self.render(context, nested=True) return result
def render(self, context): if self not in context.render_context: context.render_context[self] = self.conditional_outputs conditional_outputs = context.render_context[self] try: conditional_variable_value = self.conditional_variable.resolve(context) if self.passes_condition(conditional_variable_value) and not self.condition_met: value = conditional_outputs[0].resolve(context) self.condition_met = True else: value = conditional_outputs[1].resolve(context) return render_value_in_context(value, context) except template.VariableDoesNotExist: # fail silently... return
def render(self, context, nested=False): if self.message_context: message_context = self.message_context.resolve(context) else: message_context = None tmp_context = {} for var, val in self.extra_context.items(): tmp_context[var] = val.resolve(context) # Update() works like a push(), so corresponding context.pop() is at # the end of function context.update(tmp_context) singular, vars = self.render_token_list(self.singular) if self.plural and self.countervar and self.counter: count = self.counter.resolve(context) context[self.countervar] = count plural, plural_vars = self.render_token_list(self.plural) if message_context: result = translation.npgettext(message_context, singular, plural, count) else: result = translation.ungettext(singular, plural, count) vars.extend(plural_vars) else: if message_context: result = translation.pgettext(message_context, singular) else: # result = translation.ugettext(singular) result = PhraseDelegate(singular) default_value = settings.TEMPLATE_STRING_IF_INVALID render_value = lambda v: render_value_in_context( context.get(v, default_value), context) data = dict([(v, render_value(v)) for v in vars]) context.pop() # FIX # try: # result = result % data # except (KeyError, ValueError): # if nested: # # Either string is malformed, or it's a bug # raise TemplateSyntaxError("'blocktrans' is unable to format " # "string returned by gettext: %r using %r" % (result, data)) # with translation.override(None): # result = self.render(context, nested=True) return result
def render(self, context): self.filter_expression.var.translate = not self.noop if self.message_context: self.filter_expression.var.message_context = ( self.message_context.resolve(context)) output = self.filter_expression.resolve(context) value = render_value_in_context(output, context) # Restore percent signs. Percent signs in template text are doubled # so they are not interpreted as string format flags. is_safe = isinstance(value, SafeData) value = value.replace('%%', '%') value = mark_safe(value) if is_safe else value if self.asvar: context[self.asvar] = value return '' else: return value
def render(self, context): if self not in context.render_context: context.render_context[self] = itertools_cycle(self.cycle_values) cycle_iter = context.render_context[self] try: conditional_variable_value = self.conditional_variable.resolve(context) if self.passes_condition(conditional_variable_value): value = next(cycle_iter).resolve(context) self.last_cycle_value = value else: if self.last_cycle_value is None: self.last_cycle_value = next(cycle_iter).resolve(context) value = self.last_cycle_value return render_value_in_context(value, context) except template.VariableDoesNotExist: # fail silently... return
def render_value(key): if key in context: val = context[key] else: val = default_value % key if '%s' in default_value else default_value return render_value_in_context(val, context)
def variable_node_render(self, context): """ Like VariableNode.render, but doesn't catch UnicodeDecodeError. """ output = self.filter_expression.resolve(context) return render_value_in_context(output, context)
def render(self, context): for var in self.vars: value = var.resolve(context, True) if value: return render_value_in_context(value, context) return ''
def render_value(key): if key in context: val = context[key] else: val = default_value % key if '%s' in default_value else default_value return render_value_in_context(val, context)
from __future__ import unicode_literals
def value_renderer(value): if isinstance(value, (Number, datetime.date)): return value return render_value_in_context(value, context=value_rendering_context)
def render(self, context): for var in self.vars: value = var.resolve(context, True) if value: return render_value_in_context(value, context) return ''