From 4dcfaddff526dca2828571326aa7263a3272fcdf Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Wed, 25 Apr 2012 07:49:26 -0500 Subject: Ensure sorted order of mirrors in status page matches with JS We had one sorting order in the backend, and another once the JS sorting routine kicked in. Match them so we aren't doing more on the client-side on initial display than we have to. Signed-off-by: Dan McGee --- mirrors/views.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'mirrors/views.py') diff --git a/mirrors/views.py b/mirrors/views.py index 6c08f71..c52656f 100644 --- a/mirrors/views.py +++ b/mirrors/views.py @@ -1,4 +1,4 @@ -import datetime +from datetime import timedelta from operator import attrgetter, itemgetter from django import forms @@ -152,7 +152,7 @@ def mirror_details(request, name): def status(request): - bad_timedelta = datetime.timedelta(days=3) + bad_timedelta = timedelta(days=3) status_info = get_mirror_statuses() urls = status_info['urls'] @@ -167,8 +167,8 @@ def status(request): context = status_info.copy() context.update({ - 'good_urls': good_urls, - 'bad_urls': bad_urls, + 'good_urls': sorted(good_urls, key=attrgetter('score')), + 'bad_urls': sorted(bad_urls, key=lambda u: u.delay or timedelta.max), 'error_logs': get_mirror_errors(), }) return direct_to_template(request, 'mirrors/status.html', context) @@ -181,7 +181,7 @@ class MirrorStatusJSONEncoder(DjangoJSONEncoder): 'delay', 'duration_avg', 'duration_stddev', 'score'] def default(self, obj): - if isinstance(obj, datetime.timedelta): + if isinstance(obj, timedelta): # always returned as integer seconds return obj.days * 24 * 3600 + obj.seconds if hasattr(obj, '__iter__'): -- cgit v1.2.3-24-g4f1b