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()
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