Patchwork Get rid of hard-coded absolute paths.

login
register
mail settings
Submitter Guilherme Salgado
Date Feb. 22, 2011, 6:55 p.m.
Message ID <20110222185501.8133.2563.stgit@localhost6.localdomain6>
Download mbox | patch
Permalink /patch/83991/
State Superseded
Headers show

Comments

Guilherme Salgado - Feb. 22, 2011, 6:55 p.m.
This is so that you don't have to change a dozen variables when you deploy an
instance somewhere other than on /srv/patchwork.
---
 apps/settings.py |   15 ++++++++++-----
 apps/urls.py     |   10 +++++++---
 2 files changed, 17 insertions(+), 8 deletions(-)

Patch

diff --git a/apps/settings.py b/apps/settings.py
index 68837b3..84a262c 100644
--- a/apps/settings.py
+++ b/apps/settings.py
@@ -1,4 +1,5 @@ 
 # Django settings for patchwork project.
+import os
 
 DEBUG = True
 TEMPLATE_DEBUG = DEBUG
@@ -34,10 +35,6 @@  SITE_ID = 1
 # to load the internationalization machinery.
 USE_I18N = True
 
-# Absolute path to the directory that holds media.
-# Example: "/home/media/media.lawrence.com/"
-MEDIA_ROOT = '/srv/patchwork/lib/python/django/contrib/admin/media'
-
 # URL that handles the media served from MEDIA_ROOT.
 # Example: "http://media.lawrence.com"
 MEDIA_URL = ''
@@ -70,12 +67,20 @@  ROOT_URLCONF = 'apps.urls'
 LOGIN_URL = '/accounts/login'
 LOGIN_REDIRECT_URL = '/user/'
 
+# If you deploy somewhere other than /srv/patchwork you need to change the
+# settings below, preferably on local_settings.py instead of here.
+ROOT_DIR = '/srv/patchwork'
 TEMPLATE_DIRS = (
     # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
     # Always use forward slashes, even on Windows.
     # Don't forget to use absolute paths, not relative paths.
-    '/srv/patchwork/templates'
+    os.path.join(ROOT_DIR, 'templates')
 )
+# Absolute path to the directory that holds media.
+# Example: "/home/media/media.lawrence.com/"
+MEDIA_ROOT = os.path.join(
+    ROOT_DIR, 'lib', 'python', 'django', 'contrib', 'admin', 'media')
+
 TEMPLATE_CONTEXT_PROCESSORS = (
     "django.core.context_processors.auth",
     "django.core.context_processors.debug",
diff --git a/apps/urls.py b/apps/urls.py
index 5c4ac57..3e82aa5 100644
--- a/apps/urls.py
+++ b/apps/urls.py
@@ -17,6 +17,8 @@ 
 # along with Patchwork; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+import os
+
 from django.conf.urls.defaults import *
 from django.conf import settings
 from patchwork.admin import admin_site
@@ -25,6 +27,8 @@  from registration.views import register
 from patchwork.forms import RegistrationForm
 from patchwork.utils import userprofile_register_callback
 
+htdocs = os.path.join(settings.ROOT_DIR, 'htdocs')
+
 urlpatterns = patterns('',
     # Example:
     (r'^', include('patchwork.urls')),
@@ -42,10 +46,10 @@  urlpatterns = patterns('',
      (r'^admin/(.*)', admin_site.root),
 
      (r'^css/(?P<path>.*)$', 'django.views.static.serve',
-        {'document_root': '/srv/patchwork/htdocs/css'}),
+        {'document_root': os.path.join(htdocs, 'css')}),
      (r'^js/(?P<path>.*)$', 'django.views.static.serve',
-        {'document_root': '/srv/patchwork/htdocs/js'}),
+        {'document_root': os.path.join(htdocs, 'js')}),
      (r'^images/(?P<path>.*)$', 'django.views.static.serve',
-        {'document_root': '/srv/patchwork/htdocs/images'}),
+        {'document_root': os.path.join(htdocs, 'images')}),
 )