From 58ec2fe113ac00172380fc9704e49589f747833e Mon Sep 17 00:00:00 2001
From: Daniel Roy Greenfeld <pydanny@gmail.com>
Date: Sat, 3 Oct 2015 14:54:29 -0700
Subject: [PATCH] URL to django.contrib.admin is now configurable

---
 docs/deployment-on-heroku.rst                            | 1 +
 docs/settings.rst                                        | 1 +
 {{cookiecutter.repo_name}}/config/settings/common.py     | 4 ++++
 {{cookiecutter.repo_name}}/config/settings/production.py | 4 ++++
 {{cookiecutter.repo_name}}/config/urls.py                | 4 ++--
 {{cookiecutter.repo_name}}/env.example                   | 3 ++-
 6 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/docs/deployment-on-heroku.rst b/docs/deployment-on-heroku.rst
index 6ee99fee2..2190ba827 100644
--- a/docs/deployment-on-heroku.rst
+++ b/docs/deployment-on-heroku.rst
@@ -16,6 +16,7 @@ You can either push the 'deploy' button in your generated README.rst or run thes
     heroku addons:create heroku-redis:hobby-dev
     heroku addons:create mailgun
 
+    heroku config:set DJANGO_SECRET_KEY=`openssl rand -base64 32`
     heroku config:set DJANGO_SECRET_KEY=`openssl rand -base64 32`
     heroku config:set DJANGO_SETTINGS_MODULE='config.settings.production'
     heroku config:set DJANGO_ALLOWED_HOSTS='.herokuapp.com'
diff --git a/docs/settings.rst b/docs/settings.rst
index 0c36df1cd..6364ea4b2 100644
--- a/docs/settings.rst
+++ b/docs/settings.rst
@@ -9,6 +9,7 @@ For configuration purposes, the following table maps environment variables to th
 ======================================= =========================== ============================================== ======================================================================
 Environment Variable                    Django Setting              Development Default                            Production Default
 ======================================= =========================== ============================================== ======================================================================
+DJANGO_ADMIN_URL                        n/a                         r'^admin/'                                     raises error
 DJANGO_CACHES                           CACHES (default)            locmem                                         redis
 DJANGO_DATABASES                        DATABASES (default)         See code                                       See code
 DJANGO_DEBUG                            DEBUG                       True                                           False
diff --git a/{{cookiecutter.repo_name}}/config/settings/common.py b/{{cookiecutter.repo_name}}/config/settings/common.py
index 575bb6fdf..194420103 100644
--- a/{{cookiecutter.repo_name}}/config/settings/common.py
+++ b/{{cookiecutter.repo_name}}/config/settings/common.py
@@ -277,4 +277,8 @@ INSTALLED_APPS += ('kombu.transport.django',)
 BROKER_URL = env("CELERY_BROKER_URL", default='django://')
 ########## END CELERY
 {% endif %}
+
+# Location of root django.contrib.admin URL, use {% url 'admin:index' %}
+ADMIN_URL = r'^admin/'
+
 # Your common stuff: Below this line define 3rd party library settings
diff --git a/{{cookiecutter.repo_name}}/config/settings/production.py b/{{cookiecutter.repo_name}}/config/settings/production.py
index 7c9fc4006..ba9c533ea 100644
--- a/{{cookiecutter.repo_name}}/config/settings/production.py
+++ b/{{cookiecutter.repo_name}}/config/settings/production.py
@@ -217,4 +217,8 @@ RAVEN_CONFIG = {
     'DSN': SENTRY_DSN
 }
 {% endif %}
+
+# Custom Admin URL, use {% url 'admin:index' %}
+ADMIN_URL = env('ADMIN_URL')
+
 # Your production stuff: Below this line define 3rd party library settings
diff --git a/{{cookiecutter.repo_name}}/config/urls.py b/{{cookiecutter.repo_name}}/config/urls.py
index 8cf2596d3..c2afcc633 100644
--- a/{{cookiecutter.repo_name}}/config/urls.py
+++ b/{{cookiecutter.repo_name}}/config/urls.py
@@ -12,8 +12,8 @@ urlpatterns = [
     url(r'^$', TemplateView.as_view(template_name='pages/home.html'), name="home"),
     url(r'^about/$', TemplateView.as_view(template_name='pages/about.html'), name="about"),
 
-    # Django Admin
-    url(r'^admin/', include(admin.site.urls)),
+    # Django Admin, use {% url 'admin:index' %}
+    url(settings.ADMIN_URL, include(admin.site.urls)),
 
     # User management
     url(r'^users/', include("{{ cookiecutter.repo_name }}.users.urls", namespace="users")),
diff --git a/{{cookiecutter.repo_name}}/env.example b/{{cookiecutter.repo_name}}/env.example
index 381a3cf0b..eb2a1529f 100644
--- a/{{cookiecutter.repo_name}}/env.example
+++ b/{{cookiecutter.repo_name}}/env.example
@@ -1,6 +1,7 @@
 POSTGRES_PASSWORD=mysecretpass
 POSTGRES_USER=postgresuser
 
+ADMIN_URL=
 DJANGO_SETTINGS_MODULE=config.settings.production
 DJANGO_SECRET_KEY=
 DJANGO_ALLOWED_HOSTS=
@@ -10,4 +11,4 @@ DJANGO_AWS_STORAGE_BUCKET_NAME=
 DJANGO_MAILGUN_API_KEY=
 DJANGO_MAILGUN_SERVER_NAME=
 DJANGO_SERVER_EMAIL=
-DJANGO_SECURE_SSL_REDIRECT=False
\ No newline at end of file
+DJANGO_SECURE_SSL_REDIRECT=False