Config -> ConfigEngine
[myslice.git] / myslice / settings.py
index 9158441..4f65538 100644 (file)
@@ -1,4 +1,4 @@
-# Django settings for myslice project.
+# Django settings for unfold project.
 
 import os.path
 
@@ -14,20 +14,33 @@ try:
     # move one step up
     ROOT=os.path.realpath(ROOT+'/..')
 except:
+    # something is badly wrong here
     ROOT=None
-    if DEBUG:
-        import traceback
-        traceback.print_exc()
-
-if os.path.isdir(os.path.join(ROOT,"static")):
+    import traceback
+    traceback.print_exc()
+
+# find out HTTPROOT, which is different from ROOT 
+# when deployed from a package
+# this code is run by collectstatic too, so we cannot
+# assume we have ./static present already
+HTTPROOT="/usr/share/unfold"
+# the place to store local data, like e.g. the sqlite db
+DATAROOT="/var/unfold"
+# if not there, then we assume it's from a devel tree
+if not os.path.isdir (os.path.join(HTTPROOT,"static")):
+    HTTPROOT=ROOT
     DATAROOT=ROOT
-else:
-    DATAROOT="/usr/share/unfold"
-    if not os.path.isdir(os.path.join(DATAROOT,"static")):
-        DATAROOT=None
 
-if not ROOT: raise Exception,"Cannot find ROOT for myslice"
-if not DATAROOT: raise Exception,"Cannot find DATAROOT for myslice"
+if not os.path.isdir(ROOT): raise Exception,"Cannot find ROOT %s for unfold"%ROOT
+if not os.path.isdir(HTTPROOT): raise Exception,"Cannot find HTTPROOT %s for unfold"%HTTPROOT
+
+# dec 2013 - we currently have 2 auxiliary subdirs with various utilities
+# that we do not wish to package 
+# * sandbox is for plugin developers
+# * sample is for various test views
+# for each of these, if we find a directory of that name under ROOT, it then gets
+# inserted in INSTALLED_APPS and its urls get included (see urls.py)
+auxiliaries = [ 'sandbox', 'sample', ]
 
 ####################
 ADMINS = (
@@ -44,10 +57,22 @@ EMAIL_HOST = "localhost"
 EMAIL_PORT = 25
 EMAIL_USE_TLS = False
 
+# use the email for debugging purpose
+# turn on debugging: 
+# python -m smtpd -n -c DebuggingServer localhost:1025
+
+#if DEBUG:
+#    EMAIL_HOST = 'localhost'
+#    EMAIL_PORT = 1025
+#    EMAIL_HOST_USER = ''
+#    EMAIL_HOST_PASSWORD = ''
+#    EMAIL_USE_TLS = False
+#    DEFAULT_FROM_EMAIL = 'testing@example.com'
+
 DATABASES = {
     'default': {
         'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
-        'NAME': os.path.join(DATAROOT,'myslice.sqlite3'), # Or path to database file if using sqlite3.
+        'NAME': os.path.join(DATAROOT,'unfold.sqlite3'), # Or path to database file if using sqlite3.
         'USER': '',                      # Not used with sqlite3.
         'PASSWORD': '',                  # Not used with sqlite3.
         'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
@@ -59,7 +84,7 @@ DATABASES = {
 # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
 # although not all choices may be available on all operating systems.
 # In a Windows environment this must be set to your system time zone.
-TIME_ZONE = 'America/Chicago'
+TIME_ZONE = 'Europe/Paris'
 
 # Language code for this installation. All choices can be found here:
 # http://www.i18nguy.com/unicode/language-identifiers.html
@@ -91,7 +116,7 @@ MEDIA_URL = ''
 # Don't put anything in this directory yourself; store your static files
 # in apps' "static/" subdirectories and in STATICFILES_DIRS.
 # Example: "/home/media/media.lawrence.com/static/"
-STATIC_ROOT = os.path.join(DATAROOT,'static')
+STATIC_ROOT = os.path.join(HTTPROOT,'static')
 
 # URL prefix for static files.
 # Example: "http://media.lawrence.com/static/"
@@ -155,16 +180,16 @@ MIDDLEWARE_CLASSES = (
 ROOT_URLCONF = 'myslice.urls'
 
 # Python dotted path to the WSGI application used by Django's runserver.
-WSGI_APPLICATION = 'myslice.wsgi.application'
+WSGI_APPLICATION = 'unfold.wsgi.application'
 
 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.
-    os.path.join(DATAROOT,"templates"),
+    os.path.join(HTTPROOT,"templates"),
 )
 
-INSTALLED_APPS = (
+INSTALLED_APPS = [
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
@@ -185,21 +210,15 @@ INSTALLED_APPS = (
     # managing database migrations
     'south', 
     # Uncomment the next line to enable the admin:
-    # 'django.contrib.admin',
+     'django.contrib.admin',
     # Uncomment the next line to enable admin documentation:
     # 'django.contrib.admindocs',
     'portal',
-    # temporary - not packaged
-    # 'trash',
-    'sample',
-# DEPRECATED #    'django.contrib.formtools',
-# DEPRECATED ##    'crispy_forms',
-# DEPRECATED #
-# DEPRECATED #    # User registration
-# DEPRECATED #    'django.contrib.auth',
-# DEPRECATED #    'django.contrib.sites',
-# DEPRECATED #    'registration',
-)
+]
+for aux in auxiliaries:
+    if os.path.isdir(os.path.join(ROOT,aux)): 
+        print "Using devel auxiliary",aux
+        INSTALLED_APPS.append(aux)
 
 ACCOUNT_ACTIVATION_DAYS = 7 # One-week activation window; you may, of course, use a different value.
 
@@ -232,7 +251,7 @@ LOGGING = {
     }
 }
 
-AUTHENTICATION_BACKENDS = ( 'auth.manifoldbackend.ManifoldBackend', )
+AUTHENTICATION_BACKENDS = ( 'auth.manifoldbackend.ManifoldBackend','django.contrib.auth.backends.ModelBackend' )
 
 ### the view to redirect malformed (i.e. with a wrong CSRF) incoming requests
 # without this setting django will return a 403 forbidden error, which is fine