diff options
author | Dan McGee <dan@archlinux.org> | 2010-09-30 12:47:30 -0500 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2010-09-30 12:47:30 -0500 |
commit | 2c1336488059dfc24c34dd11865c713fec252cbc (patch) | |
tree | 7c2e7a3c732d850ca23e03eafbb3b4189073384c /mirrors/templatetags | |
parent | 7def999b0aa3511671049826741ee3ebb6ce9573 (diff) |
Mirror status improvements
* Fix sorting issues. '', 'unknown', and '∞' should now always sort after
anything else in the list.
* Add a completion percentage column; this will tell you at a glance if a
mirror is sometimes unresponsive. This should probably be incorporated
into the mirror score.
* Make a few more things dynamic in the template, like the time back the
page reflects.
* Add some additional template tags for formatting things.
Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'mirrors/templatetags')
-rw-r--r-- | mirrors/templatetags/mirror_status.py | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/mirrors/templatetags/mirror_status.py b/mirrors/templatetags/mirror_status.py index 09c5b331..0031d83b 100644 --- a/mirrors/templatetags/mirror_status.py +++ b/mirrors/templatetags/mirror_status.py @@ -1,15 +1,36 @@ +from datetime import timedelta from django import template +from django.template.defaultfilters import floatformat register = template.Library() @register.filter def duration(value): - if not value: - return u'\u221e' + if not value and type(value) != timedelta: + return u'' # does not take microseconds into account total_secs = value.seconds + value.days * 24 * 3600 mins, secs = divmod(total_secs, 60) hrs, mins = divmod(mins, 60) return '%d:%02d' % (hrs, mins) +@register.filter +def hours(value): + if not value and type(value) != timedelta: + return u'' + # does not take microseconds into account + total_secs = value.seconds + value.days * 24 * 3600 + mins, secs = divmod(total_secs, 60) + hrs, mins = divmod(mins, 60) + if hrs == 1: + return '%d hour' % hrs + return '%d hours' % hrs + +@register.filter +def percentage(value, arg=-1): + if not value and type(value) != float: + return u'' + new_val = value * 100.0 + return floatformat(new_val, arg) + '%' + # vim: set ts=4 sw=4 et: |