from django import template
+from django.utils.safestring import mark_safe
import logging
+import markdown
register = template.Library()
def can_edit_post(user, post):
return user.can_edit_post(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
return previewing[setting.name]
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
+
+@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