summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--public/views.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/public/views.py b/public/views.py
index e15f5b8..3c823c9 100644
--- a/public/views.py
+++ b/public/views.py
@@ -82,11 +82,16 @@ def download(request):
release = Release.objects.filter(available=True).latest()
except Release.DoesNotExist:
release = None
- mirror_urls = MirrorUrl.objects.select_related('mirror').filter(
- protocol__default=True,
- mirror__public=True, mirror__active=True, mirror__isos=True)
- sort_by = attrgetter('country.name', 'mirror.name')
- mirror_urls = sorted(mirror_urls, key=sort_by)
+
+ def mirror_urls():
+ '''In order to ensure this is lazily evaluated since we can't do
+ sorting at the database level, make it a callable.'''
+ urls = MirrorUrl.objects.select_related('mirror').filter(
+ protocol__default=True,
+ mirror__public=True, mirror__active=True, mirror__isos=True)
+ sort_by = attrgetter('country.name', 'mirror.name')
+ return sorted(urls, key=sort_by)
+
context = {
'release': release,
'releng_iso_url': settings.ISO_LIST_URL,