diff options
author | Dan McGee <dan@archlinux.org> | 2013-01-19 17:37:14 +0100 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2013-01-19 17:37:16 +0100 |
commit | 23ef118ac129e17d251634d2ef3c88c6d74279e3 (patch) | |
tree | 3fb5eac4a8e06e27dc45aab1a8d16d9a53da7217 | |
parent | 721f092e4a36a58da2f701973521fb087a977693 (diff) | |
download | archweb-23ef118ac129e17d251634d2ef3c88c6d74279e3.tar.gz archweb-23ef118ac129e17d251634d2ef3c88c6d74279e3.tar.xz |
Don't redefine mirror_url function every call
If we pull this out and define it at the top level once, we save the
interpreter a fair amount of work.
Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r-- | public/views.py | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/public/views.py b/public/views.py index 3c823c9..22cb875 100644 --- a/public/views.py +++ b/public/views.py @@ -76,6 +76,16 @@ def donate(request): return render(request, 'public/donate.html', context) +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) + + @cache_control(max_age=300) def download(request): try: @@ -83,20 +93,11 @@ def download(request): except Release.DoesNotExist: release = None - 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, 'releng_pxeboot_url': settings.PXEBOOT_URL, - 'mirror_urls': mirror_urls, + 'mirror_urls': _mirror_urls, } return render(request, 'public/download.html', context) |