1 from django
import template
2 from django
.utils
.safestring
import mark_safe
4 from mygpo
.web
.utils
import get_page_list
, license_info
, hours_to_str
7 register
= template
.Library()
11 return mark_safe(dic
.get(key
, ''))
14 def lookup_list(dict, keys
):
21 def smartwidthratio(val
, min_val
, max_val
, upper
, lower
):
24 return max(lower
, (float(val
-min_val
) / max_val
* upper
))
27 def page_list(cur
, start
, total
, show_max
):
28 return get_page_list(start
, total
, cur
, show_max
)
33 return [key
for key
, val
in dic
.iteritems() if val
]
42 return [x
for x
in l
if x
!= item
]
45 def format_time(time
):
46 from mygpo
.utils
import format_time
as _format_time
47 return mark_safe(_format_time(time
))
52 return isinstance(obj
, tuple)
56 return isinstance(obj
, list)
61 html
= markdown2
.markdown(txt
)
62 return mark_safe(html
)
67 """ collapses multiple whitespaces and replaces them with """
69 s
= re
.sub("\s+", " ", s
)
74 def license_name(license_url
):
75 """ returns a "pretty" license name for a license URL """
77 info
= license_info(license_url
)
80 return '%s %s' % (info
.name
, info
.version
or '')
87 """ makes urllib.quote_plus available as a template filter """
89 if isinstance(s
, unicode):
91 return mark_safe(urllib
.quote_plus(s
))
94 hours_to_str
= register
.filter(hours_to_str
)
97 def protocol(request
):
98 return 'http{s}://'.format(s
='s' if request
.is_secure() else '')