]> git.openstreetmap.org Git - osqa.git/blob - forum/templatetags/extra_filters.py
Handle big reputation numbers slightly better.
[osqa.git] / forum / templatetags / extra_filters.py
1 from django import template
2 from django.utils.safestring import mark_safe
3 import logging
4
5 register = template.Library()
6
7 @template.defaultfilters.stringfilter
8 @register.filter
9 def collapse(input):
10     return ' '.join(input.split())
11
12
13 @register.filter
14 def can_edit_post(user, post):
15     return user.can_edit_post(post)
16
17
18 @register.filter
19 def decorated_int(number, cls="thousand"):
20     try:
21         if number > 999:
22             if number > 9999:
23                 s = str(number)[:-3]
24             else:
25                 s = str(number)
26                 s = "%s.%s" % (s[0], s[1])
27
28             return mark_safe("<span class=\"%s\">%sk</span>" % (cls, s))
29         return number
30     except:
31         return number
32
33 @register.filter
34 def or_preview(setting, request):
35     if request.user.is_superuser:
36         previewing = request.session.get('previewing_settings', {})
37         if setting.name in previewing:
38             return previewing[setting.name]
39
40     return setting.value
41
42 @register.filter
43 def getval(map, key):
44     return map and map.get(key, None) or None
45
46
47 @register.filter
48 def contained_in(item, container):
49     return item in container