changelog shortlog tags changeset files revisions annotate raw

saudade/tagging/templatetags/tagging.py

changeset 28: 3957112b6a39
child:1223eef203fd
author: Jason Moiron <jmoiron@jmoiron.net>
date: Sun Sep 14 11:17:41 2008 -0400 (3 years ago)
permissions: -rw-r--r--
description: fix missing id in anchor that prevented the popup from working right
1#!/usr/bin/env python
2
3from django import template
4
5register = template.Library()
6
7@register.tag(name="stringformat")
8def do_stringformat(parser, token):
9 try:
10 split = token.split_contents()
11 format = split[1]
12 values = split[2:]
13 except ValueError:
14 raise template.TemplateSyntaxError, '%r tag requires at least 2 arguments' % token.contents.split()[0]
15 if not values:
16 raise template.TemplateSyntaxError, '%r tag requires at least 2 arguments' % token.contents.split()[0]
17 return StringformatNode(format, values)
18
19class StringformatNode(template.Node):
20 def __init__(self, format, values):
21 self.format = format
22 self.values = values
23
24 def render(self, context):
25 parser = template.Parser('')
26 format = template.FilterExpression(self.format, parser).resolve(context)
27 values = tuple((template.FilterExpression(v, parser).resolve(context) for v in self.values))
28 print 'formatting: "%s" with "%s"' % (format, values)
29 return format % values
30