settings can be modified in myslice.ini
[unfold.git] / myslice / settings.py
index 10b3953..2586823 100644 (file)
@@ -1,11 +1,12 @@
-# Django settings for unfold project.
-
 from __future__ import print_function
 
+import myslice.components
+from myslice.configengine import ConfigEngine
+
 import os.path
 
-import djcelery
-djcelery.setup_loader()
+import djcelery
+djcelery.setup_loader()
 
 ### detect if we're in a build environment
 try:
@@ -14,48 +15,51 @@ try:
 except:
     building=True
 
-DEBUG = True
+config = ConfigEngine()
+
+if config.myslice.debug :
+    DEBUG = True
+else :
+    DEBUG = False
 
 # show the various settings as we go
 DEBUG_SETTINGS = False
 
-# compute ROOT from where this file is installed
-# should fit every need including developers
 # but you can redefine ROOT if that's not working for you
 try:
     # get the directory where this file is
-    ROOT=os.path.dirname(__file__) or '.'
-    # move one step up
-    ROOT=os.path.realpath(ROOT+'/..')
+    ROOT = os.path.realpath(os.path.dirname(__file__) + '/..')
 except:
     # something is badly wrong here
-    ROOT=None
+    ROOT = None
     import traceback
     traceback.print_exc()
 
 #### this is where the problem lies I believe
 # first try to run manage.py collectstatic without this
 # themes
-theme=None
-try:
-    from myslice.configengine import ConfigEngine
-    configEngine = ConfigEngine()
-    if configEngine.myslice.theme :
-        theme = configEngine.myslice.theme
-except:
-    pass
-    
-# 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="/var/myslice-f4f"
-# the place to store local data, like e.g. the sqlite db
-DATAROOT="/var/unfold"
+if config.myslice.theme :
+    theme = config.myslice.theme
+else :
+    theme = None
+
+# HTTPROOT
+if config.myslice.httproot :
+    HTTPROOT = config.myslice.httproot
+else :
+    HTTPROOT = "/var/myslice-f4f"
+
+# DATAROOT
+if config.myslice.httproot :
+    DATAROOT = config.myslice.httproot
+else :
+    DATAROOT = "/var/unfold"
+
 if not os.path.isdir(DATAROOT):
     print("WARNING: {} is a non-existing directory".format(DATAROOT))
     print("consequently we assume development mode and re-route DATAROOT to {}".format(ROOT))
     DATAROOT=ROOT
+
 # if not there, then we assume it's from a devel tree
 if not os.path.isdir (os.path.join(HTTPROOT,"static")):
     HTTPROOT=ROOT
@@ -105,12 +109,12 @@ EMAIL_USE_TLS = False
 
 DATABASES = {
     'default': {
-        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
-        '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.
-        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
+        'ENGINE'    : 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
+        '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.
+        'PORT'      : '',                      # Set to empty string for default. Not used with sqlite3.
     }
 }
 
@@ -253,17 +257,17 @@ INSTALLED_APPS = [
     # Uncomment the next line to enable the admin:
      'django.contrib.admin',
        # FORGE Plugin app
-       'djcelery',
-       'forge',
+#      'djcelery',
     # Uncomment the next line to enable admin documentation:
     # 'django.contrib.admindocs',
     'portal',
-    # SLA
-    'sla',
 ]
 # this app won't load in a build environment
 if not building: INSTALLED_APPS.append ('rest')
 
+for component in components.list() :
+    INSTALLED_APPS.append(component)
+
 BROKER_URL = "amqp://myslice:myslice@localhost:5672/myslice"
 
 for aux in auxiliaries: