]> git.openstreetmap.org Git - osqa.git/blobdiff - settings.py
Resolves Jira OSQA-359, adding an option to allow negative user reputation in the...
[osqa.git] / settings.py
index 0db3f3b9ba2759b333d9c262fcb1d88c4678a99f..f1c6f6b29a257f30730762bfb1194236409e4cc4 100644 (file)
@@ -15,6 +15,7 @@ TEMPLATE_LOADERS = [
 ]
 
 MIDDLEWARE_CLASSES = [
+    'forum.middleware.django_cookies.CookiePreHandlerMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
     'forum.middleware.extended_user.ExtendedUser',
@@ -23,7 +24,21 @@ MIDDLEWARE_CLASSES = [
     'forum.middleware.cancel.CancelActionMiddleware',
     'forum.middleware.admin_messages.AdminMessagesMiddleware',
     'django.middleware.transaction.TransactionMiddleware',
+    'forum.middleware.django_cookies.CookiePostHandlerMiddleware',
 ]
+# Backwards compatibility. If we fail to import the CSRF middle-ware from the location
+# where it is supposed to be, we add the old middle-ware classes to the classes list.
+try:
+    from django.middleware.csrf import CsrfViewMiddleware
+    MIDDLEWARE_CLASSES = [
+        'django.middleware.csrf.CsrfViewMiddleware',
+        'django.middleware.csrf.CsrfResponseMiddleware',
+    ] + MIDDLEWARE_CLASSES
+except ImportError:
+    MIDDLEWARE_CLASSES = [
+        'django.contrib.csrf.middleware.CsrfViewMiddleware',
+        'django.contrib.csrf.middleware.CsrfResponseMiddleware',
+    ] + MIDDLEWARE_CLASSES
 
 TEMPLATE_CONTEXT_PROCESSORS = [
     'django.core.context_processors.request',
@@ -71,16 +86,25 @@ for path in app_url_split[1].split('/')[1:]:
 if FORCE_SCRIPT_NAME.endswith('/'):
     FORCE_SCRIPT_NAME = FORCE_SCRIPT_NAME[:-1]
 
-from forum import modules
-modules.init_modules_engine(SITE_SRC_ROOT, DISABLED_MODULES)
+#Module system initialization
+MODULES_PACKAGE = 'forum_modules'
+MODULES_FOLDER = os.path.join(SITE_SRC_ROOT, MODULES_PACKAGE)
+
+MODULE_LIST = filter(lambda m: getattr(m, 'CAN_USE', True), [
+        __import__('forum_modules.%s' % f, globals(), locals(), ['forum_modules'])
+        for f in os.listdir(MODULES_FOLDER)
+        if os.path.isdir(os.path.join(MODULES_FOLDER, f)) and
+           os.path.exists(os.path.join(MODULES_FOLDER, "%s/__init__.py" % f)) and
+           not f in DISABLED_MODULES
+])
 
 [MIDDLEWARE_CLASSES.extend(
         ["%s.%s" % (m.__name__, mc) for mc in getattr(m, 'MIDDLEWARE_CLASSES', [])]
-                          ) for m in modules.MODULE_LIST]
+                          ) for m in MODULE_LIST]
 
 [TEMPLATE_LOADERS.extend(
         ["%s.%s" % (m.__name__, tl) for tl in getattr(m, 'TEMPLATE_LOADERS', [])]
-                          ) for m in modules.MODULE_LIST]
+                          ) for m in MODULE_LIST]
 
 
 INSTALLED_APPS = [