from django.core.urlresolvers import reverse
from django.template.defaultfilters import slugify
+from django import template
from forum.utils import html
class Visibility(object):
html.hyperlink(self.url(context), self.text(context), **self.attrs(context)),
self.post_code(context))
+class Include(ObjectBase):
+ def __init__(self, tpl, visibility=None, weight=500):
+ super(Include, self).__init__(visibility, weight)
+ self.template = template.loader.get_template(tpl)
+
+ def render(self, context):
+ if not isinstance(context, template.Context):
+ context = template.Context(context)
+ return self.template.render(context)
+
class LoopContext(LoopBase):
def __init__(self, loop_context, visibility=None, weight=500):
class ProfileTab(LoopBase):
- def __init__(self, name, title, description, url_getter, private=False, weight=500):
+ def __init__(self, name, title, description, url_getter, private=False, render_to=None, weight=500):
super(ProfileTab, self).__init__(weight=weight)
self.name = name
self.title = title
self.description = description
self.url_getter = url_getter
self.private = private
+ self.render_to = render_to
def can_render(self, context):
- return not self.private or (
- context['view_user'] == context['request'].user or context['request'].user.is_superuser)
+ return (not self.render_to or (self.render_to(context['view_user']))) and (
+ not self.private or (
+ context['view_user'] == context['request'].user or context['request'].user.is_superuser))
def update_context(self, context):
context.update(dict(