diff --git a/buildout.cfg b/buildout.cfg
index e00aa9f..8b91acf 100644
--- a/buildout.cfg
+++ b/buildout.cfg
@@ -13,7 +13,7 @@ develop =
[django]
recipe = djangorecipe
-version = 1.2.1
+version = 1.2.5
settings = settings
eggs = ${buildout:eggs}
test = djangopypi
diff --git a/chishop/templates/registration/login.html b/chishop/templates/registration/login.html
index 6c7f799..a8ab11b 100644
--- a/chishop/templates/registration/login.html
+++ b/chishop/templates/registration/login.html
@@ -1,8 +1,8 @@
{% extends "base_site.html" %}
{% block content %}
-
{% endblock %}
diff --git a/chishop/templates/registration/registration_form.html b/chishop/templates/registration/registration_form.html
index 719a875..bccf8d1 100644
--- a/chishop/templates/registration/registration_form.html
+++ b/chishop/templates/registration/registration_form.html
@@ -2,7 +2,8 @@
{% block content %}
Register
-
{% endblock %}
diff --git a/src/djangopypi/Changelog b/src/djangopypi/Changelog
index d93dcca..fb30d19 100644
--- a/src/djangopypi/Changelog
+++ b/src/djangopypi/Changelog
@@ -1,10 +1,11 @@
History
=======
-0.4.2 (2011-02-08)
+0.4.2 (2011-02-21)
------------------
* Added CSRF support for Django>=1.2
+* Added conditional support to proxy packages not indexed
0.4.1 (2010-06-17)
------------------
diff --git a/src/djangopypi/djangopypi/settings.py b/src/djangopypi/djangopypi/settings.py
index 5fe595e..83a8493 100644
--- a/src/djangopypi/djangopypi/settings.py
+++ b/src/djangopypi/djangopypi/settings.py
@@ -97,3 +97,13 @@ if not hasattr(settings,'DJANGOPYPI_ACTION_VIEWS'):
"submit": distutils.register_or_upload, #``register`` command
"list_classifiers": distutils.list_classifiers, #``list_classifiers`` command
}
+
+""" These settings enable proxying of packages that are not in the local index
+to another index, http://pypi.python.org/ by default. This feature is disabled
+by default and can be enabled by setting DJANGOPYPI_PROXY_MISSING to True in
+your settings file. """
+if not hasattr(settings, 'DJANGOPYPI_PROXY_BASE_URL'):
+ settings.DJANGOPYPI_PROXY_BASE_URL = 'http://pypi.python.org/simple'
+
+if not hasattr(settings, 'DJANGOPYPI_PROXY_MISSING'):
+ settings.DJANGOPYPI_PROXY_MISSING = False
diff --git a/src/djangopypi/djangopypi/urls.py b/src/djangopypi/djangopypi/urls.py
index 90abe81..f7001f2 100644
--- a/src/djangopypi/djangopypi/urls.py
+++ b/src/djangopypi/djangopypi/urls.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-from django.conf.urls.defaults import patterns, url, include
+from django.conf.urls.defaults import patterns, url
from djangopypi.feeds import ReleaseFeed
urlpatterns = patterns("djangopypi.views",
diff --git a/src/djangopypi/djangopypi/views/packages.py b/src/djangopypi/djangopypi/views/packages.py
index 77a3ea3..70b2ba8 100644
--- a/src/djangopypi/djangopypi/views/packages.py
+++ b/src/djangopypi/djangopypi/views/packages.py
@@ -1,5 +1,6 @@
from django.conf import settings
from django.db.models.query import Q
+from django.http import Http404, HttpResponseRedirect
from django.forms.models import inlineformset_factory
from django.shortcuts import get_object_or_404, render_to_response
from django.template import RequestContext
@@ -27,7 +28,14 @@ def details(request, package, **kwargs):
def simple_details(request, package, **kwargs):
kwargs.setdefault('template_name', 'djangopypi/package_detail_simple.html')
- return details(request, package, **kwargs)
+ try:
+ return details(request, package, **kwargs)
+ except Http404, e:
+ if settings.DJANGOPYPI_PROXY_MISSING:
+ return HttpResponseRedirect('%s/%s/' %
+ (settings.DJANGOPYPI_PROXY_BASE_URL.rstrip('/'),
+ package))
+ raise e
def doap(request, package, **kwargs):
kwargs.setdefault('template_name', 'djangopypi/package_doap.xml')
diff --git a/src/djangopypi/setup.cfg b/src/djangopypi/setup.cfg
index 5786d4d..bd36a8d 100644
--- a/src/djangopypi/setup.cfg
+++ b/src/djangopypi/setup.cfg
@@ -1,2 +1,2 @@
[bdist_rpm]
-doc_files = AUTHORS CHANGELOG LICENSE README TODO
\ No newline at end of file
+doc_files = AUTHORS Changelog LICENSE README TODO
\ No newline at end of file