]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/templatetags/extra_filters.py
OSQA-525, use old style syntax for the if-statements, adds a bit of backwards compati...
[osqa.git] / forum / templatetags / extra_filters.py
index 22ec0109a81d78b09132fea670a6e01a52586db7..8dea68c9c0d4c3c944c526450ba4fcafb73064e5 100644 (file)
@@ -1,7 +1,7 @@
 from django import template
-from django.core import serializers
-from forum import auth
+from django.utils.safestring import mark_safe
 import logging
+import markdown
 
 register = template.Library()
 
@@ -10,89 +10,54 @@ register = template.Library()
 def collapse(input):
     return ' '.join(input.split())
 
-@register.filter
-def can_moderate_users(user):
-    return auth.can_moderate_users(user)
 
 @register.filter
-def can_vote_up(user):
-    return auth.can_vote_up(user)
+def can_edit_post(user, post):
+    return user.can_edit_post(post)
 
-@register.filter
-def can_flag_offensive(user):
-    return auth.can_flag_offensive(user)
 
 @register.filter
-def can_add_comments(user,subject):
-    return auth.can_add_comments(user,subject)
+def decorated_int(number, cls="thousand"):
+    try:
+        number = int(number)    # allow strings or numbers passed in
+        if number > 999:
+            thousands = float(number) / 1000.0
 
-@register.filter
-def can_vote_down(user):
-    return auth.can_vote_down(user)
+            if number < 99500:
+                format = "%.1f"
+            else:
+                format = "%.0f"
 
-@register.filter
-def can_retag_questions(user):
-    return auth.can_retag_questions(user)
+            s = format % thousands
 
-@register.filter
-def can_edit_post(user, post):
-    return auth.can_edit_post(user, post)
+            return mark_safe("<span class=\"%s\">%sk</span>" % (cls, s))
+        return number
+    except:
+        return number
 
 @register.filter
-def can_delete_comment(user, comment):
-    return auth.can_delete_comment(user, comment)
+def or_preview(setting, request):
+    if request.user.is_superuser:
+        previewing = request.session.get('previewing_settings', {})
+        if setting.name in previewing:
+            return previewing[setting.name]
 
-@register.filter
-def can_view_offensive_flags(user):
-    return auth.can_view_offensive_flags(user)
+    return setting.value
 
 @register.filter
-def can_close_question(user, question):
-    return auth.can_close_question(user, question)
+def getval(map, key):
+    return map and map.get(key, None) or None
 
-@register.filter
-def can_lock_posts(user):
-    return auth.can_lock_posts(user)
-    
-@register.filter
-def can_accept_answer(user, question, answer):
-    return auth.can_accept_answer(user, question, answer)
-    
-@register.filter
-def can_reopen_question(user, question):
-    return auth.can_reopen_question(user, question)
 
 @register.filter
-def can_delete_post(user, post):
-    return auth.can_delete_post(user, post)
-    
-@register.filter
-def can_view_user_edit(request_user, target_user):
-    return auth.can_view_user_edit(request_user, target_user)
-    
-@register.filter
-def can_view_user_votes(request_user, target_user):
-    return auth.can_view_user_votes(request_user, target_user)
-    
-@register.filter
-def can_view_user_preferences(request_user, target_user):
-    return auth.can_view_user_preferences(request_user, target_user)
-    
-@register.filter
-def is_user_self(request_user, target_user):
-    return auth.is_user_self(request_user, target_user)
-    
-@register.filter
-def cnprog_intword(number):
-    try:
-        if 1000 <= number < 10000:
-            string = str(number)[0:1]
-            return "<span class=""thousand"">%sk</span>" % string
-        else:
-            return number
-    except:
-        return number
+def contained_in(item, container):
+    return item in container
 
 @register.filter
-def json_serialize(object):
-    return serializers.serialize('json',object)
+def static_content(content, render_mode):
+    if render_mode == 'markdown':
+        return mark_safe(markdown.markdown(unicode(content), ["settingsparser"]))
+    elif render_mode == "html":
+        return mark_safe(unicode(content))
+    else:
+        return unicode(content)
\ No newline at end of file