1 from django import template
2 from forum.modules import ui
4 register = template.Library()
7 class LoadRegistryNode(template.Node):
8 def __init__(self, registry):
9 self.registry = registry
11 def render(self, context):
14 for ui_object in self.registry:
15 if ui_object.can_render(context):
16 result += ui_object.render(context)
22 def loadregistry(parser, token):
24 tag_name, registry = token.split_contents()
26 raise template.TemplateSyntaxError, "%r tag requires exactly one argument" % token.contents.split()[0]
28 registry = ui.get_registry_by_name(registry)
29 return LoadRegistryNode(registry)
32 class LoopRegistryNode(template.Node):
33 def __init__(self, registry, nodelist):
34 self.registry = registry
35 self.nodelist = nodelist
37 def render(self, context):
40 for ui_object in self.registry:
41 if ui_object.can_render(context):
42 ui_object.update_context(context)
43 result += self.nodelist.render(context)
48 def loopregistry(parser, token):
50 tag_name, registry = token.split_contents()
52 raise template.TemplateSyntaxError, "%r tag requires exactly one argument" % token.contents.split()[0]
54 registry = ui.get_registry_by_name(registry)
55 nodelist = parser.parse(('endloopregistry',))
56 parser.delete_first_token()
58 return LoopRegistryNode(registry, nodelist)