]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/modules/ui_objects.py
Adds logging statement to when there's an error converting auth_user to forum_user...
[osqa.git] / forum / modules / ui_objects.py
index 70bee93a1b695d69aa9325a93ad1668a127c29e9..b88ea50029c5b6c12e40bd0e37ae8a9a3a0ce877 100644 (file)
@@ -1,5 +1,6 @@
 from django.core.urlresolvers import reverse
 from django.template.defaultfilters import slugify
+from django import template
 from forum.utils import html
 
 class Visibility(object):
@@ -82,6 +83,16 @@ class Link(ObjectBase):
             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):
@@ -108,17 +119,19 @@ class PageTab(LoopBase):
 
 
 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(