From 1a94cedae7c9eacf5f755ec1bd37f9c3544576ca Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Thu, 14 Mar 2013 14:28:00 +0100 Subject: [PATCH] Remove hardcoded version numbers from the download page. --- releases/urls.py | 6 +++--- releases/views.py | 14 +++++++++++++- templates/releases/download.html | 21 ++++++++++----------- 3 files changed, 26 insertions(+), 15 deletions(-) diff --git a/releases/urls.py b/releases/urls.py index 3c1457de3..97a4597a3 100644 --- a/releases/urls.py +++ b/releases/urls.py @@ -1,10 +1,10 @@ from __future__ import absolute_import, unicode_literals -from django.conf.urls import patterns +from django.conf.urls import patterns, url from .views import index, redirect urlpatterns = patterns('', - (r'^$', index), - (r'^([0-9a-z_.-]+)/(tarball|checksum|egg)/$', redirect), + url(r'^$', index, name='download'), + url(r'^([0-9a-z_.-]+)/(tarball|checksum|egg)/$', redirect, name='download-redirect'), ) diff --git a/releases/views.py b/releases/views.py index 80a891286..0ae9ea162 100644 --- a/releases/views.py +++ b/releases/views.py @@ -7,7 +7,19 @@ def index(request): - return render(request, 'releases/download.html') + # Build a dictionary of x => latest 1.x.y release + releases = {} + for release in Release.objects.filter(status='f', major=1).order_by('minor', 'micro'): + releases[release.minor] = release + releases = [releases[minor] for minor in sorted(releases)] + current = releases.pop() + previous = releases.pop() + context = { + 'current_version': current.version, + 'previous_version': previous.version, + 'earlier_versions': [release.version for release in reversed(releases)], + } + return render(request, 'releases/download.html', context) def redirect(request, version, kind): diff --git a/templates/releases/download.html b/templates/releases/download.html index 5ffb1e802..5c6035e39 100644 --- a/templates/releases/download.html +++ b/templates/releases/download.html @@ -13,17 +13,17 @@

How to get Django

Option 1. Get the latest official version

-

The latest official version is 1.5. You can get it by direct download: +

The latest official version is {{ current_version }}. You can get it by direct download: -

First, download Django-1.5.tar.gz (checksums). Then:

+

First, download Django-{{ current_version }}.tar.gz (checksums). Then:

-
tar xzvf Django-1.5.tar.gz
-cd Django-1.5
+
tar xzvf Django-{{ current_version }}.tar.gz
+cd Django-{{ current_version }}
 sudo python setup.py install

You can also use pip: -

pip install Django==1.5
+
pip install Django=={{ current_version }}

Option 2. Get the latest development version

@@ -43,7 +43,7 @@

After you get it

{% block content-related %}

For the impatient:

Which version is better?

@@ -52,14 +52,13 @@

Which version is better?

If you're just looking for a stable deployment target and don't mind waiting for the next release, you'll want to stick with the latest official release (which will always include detailed notes on any changes you'll need to make while upgrading).

Previous releases

Unsupported previous releases (no longer receive security updates or bugfixes)

{% endblock %}