]> 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 6f3679ce94089db875e0279bcbe89531571ca684..8dea68c9c0d4c3c944c526450ba4fcafb73064e5 100644 (file)
@@ -1,5 +1,7 @@
 from django import template
+from django.utils.safestring import mark_safe
 import logging
+import markdown
 
 register = template.Library()
 
@@ -15,13 +17,21 @@ def can_edit_post(user, post):
 
 
 @register.filter
-def cnprog_intword(number):
+def decorated_int(number, cls="thousand"):
     try:
-        if 1000 <= number < 10000:
-            string = str(number)[0:1]
-            return "<span class=""thousand"">%sk</span>" % string
-        else:
-            return number
+        number = int(number)    # allow strings or numbers passed in
+        if number > 999:
+            thousands = float(number) / 1000.0
+
+            if number < 99500:
+                format = "%.1f"
+            else:
+                format = "%.0f"
+
+            s = format % thousands
+
+            return mark_safe("<span class=\"%s\">%sk</span>" % (cls, s))
+        return number
     except:
         return number
 
@@ -34,7 +44,20 @@ def or_preview(setting, request):
 
     return setting.value
 
+@register.filter
+def getval(map, key):
+    return map and map.get(key, None) or None
+
 
 @register.filter
 def contained_in(item, container):
-    return item in container
\ No newline at end of file
+    return item in container
+
+@register.filter
+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