def render(self, context): try: value = resolve_variable_with_filters(self.val_var, context) maxvalue = resolve_variable_with_filters(self.max_var, context) except VariableDoesNotExist: return '' try: value = float(value) maxvalue = float(maxvalue) ratio = (value / maxvalue) * int(self.max_width) except (ValueError, ZeroDivisionError): return '' return str(int(round(ratio)))
def render(self, context): context.push() for var,val in self.extra_context.items(): context[var] = resolve_variable_with_filters(val, context) singular = self.render_token_list(self.singular) if self.plural and self.countervar and self.counter: count = resolve_variable_with_filters(self.counter, context) context[self.countervar] = count plural = self.render_token_list(self.plural) result = translation.ngettext(singular, plural, count) % context else: result = translation.gettext(singular) % context context.pop() return result
def render(self, context): obj_list = resolve_variable_with_filters(self.target_var, context) if obj_list == '': # target_var wasn't found in context; fail silently context[self.var_name] = [] return '' output = [] # list of dictionaries in the format {'grouper': 'key', 'list': [list of contents]} for obj in obj_list: grouper = resolve_variable_with_filters('var.%s' % self.expression, \ Context({'var': obj})) if output and repr(output[-1]['grouper']) == repr(grouper): output[-1]['list'].append(obj) else: output.append({'grouper': grouper, 'list': [obj]}) context[self.var_name] = output return ''
def render(self, context): for ifnot, boolvar in self.boolvars: try: value = resolve_variable_with_filters(boolvar, context) except VariableDoesNotExist: value = None if (value and not ifnot) or (ifnot and not value): return self.nodelist_true.render(context) return self.nodelist_false.render(context)
def get_parent(self, context): if self.parent_name_var: self.parent_name = resolve_variable_with_filters(self.parent_name_var, context) parent = self.parent_name if not parent: error_msg = "Invalid template name in 'extends' tag: %r." % parent if self.parent_name_var: error_msg += " Got this from the %r variable." % self.parent_name_var raise TemplateSyntaxError, error_msg try: return get_template_from_string(load_template_source(parent, self.template_dirs)) except TemplateDoesNotExist: raise TemplateSyntaxError, "Template %r cannot be extended, because it doesn't exist" % parent
def render(self, context): nodelist = NodeList() if context.has_key('forloop'): parentloop = context['forloop'] else: parentloop = {} context.push() try: values = resolve_variable_with_filters(self.sequence, context) except VariableDoesNotExist: values = [] if values is None: values = [] len_values = len(values) if self.reversed: # From http://www.python.org/doc/current/tut/node11.html def reverse(data): for index in range(len(data)-1, -1, -1): yield data[index] values = reverse(values) for i, item in enumerate(values): context['forloop'] = { # shortcuts for current loop iteration number 'counter0': i, 'counter': i+1, # reverse counter iteration numbers 'revcounter': len_values - i, 'revcounter0': len_values - i - 1, # boolean values designating first and last times through loop 'first': (i == 0), 'last': (i == len_values - 1), 'parentloop': parentloop, } context[self.loopvar] = item for node in self.nodelist_loop: nodelist.append(node.render(context)) context.pop() return nodelist.render(context)