1 from django import template
\r
2 from django.utils.translation import ugettext as _
\r
3 from django.utils.safestring import mark_safe
\r
5 register = template.Library()
\r
7 class UserSignatureNode(template.Node):
\r
8 template = template.loader.get_template('users/signature.html')
\r
10 def __init__(self, user, format):
\r
11 self.user = template.Variable(user)
\r
12 self.format = template.Variable(format)
\r
14 def render(self, context):
\r
15 return self.template.render(template.Context({
\r
16 'user': self.user.resolve(context),
\r
17 'format': self.format.resolve(context)
\r
21 def user_signature(parser, token):
\r
23 tag_name, user, format = token.split_contents()
\r
25 raise template.TemplateSyntaxError, "%r tag requires exactly two arguments" % token.contents.split()[0]
\r
27 return UserSignatureNode(user, format)
\r
30 class ActivityNode(template.Node):
\r
31 template = template.loader.get_template('users/activity.html')
\r
33 def __init__(self, activity, viewer):
\r
34 self.activity = template.Variable(activity)
\r
35 self.viewer = template.Variable(viewer)
\r
37 def render(self, context):
\r
39 action = self.activity.resolve(context).leaf()
\r
40 viewer = self.viewer.resolve(context)
\r
41 describe = mark_safe(action.describe(viewer))
\r
42 return self.template.render(template.Context(dict(action=action, describe=describe)))
\r
43 except Exception, e:
\r
44 #import sys, traceback
\r
45 #traceback.print_exc(file=sys.stdout)
\r
49 def activity_item(parser, token):
\r
51 tag_name, activity, viewer = token.split_contents()
\r
53 raise template.TemplateSyntaxError, "%r tag requires exactly two arguments" % token.contents.split()[0]
\r
55 return ActivityNode(activity, viewer)
\r
58 @register.inclusion_tag('users/action_info.html')
\r
59 def user_moderation(moderator, user):
\r
60 return dict(user=user)
\r