]> git.openstreetmap.org Git - osqa.git/commitdiff
Fixes some weird threading problems with modules.
authorhernani <hernani@0cfe37f9-358a-4d5e-be75-b63607b5c754>
Tue, 15 Mar 2011 02:12:27 +0000 (02:12 +0000)
committerhernani <hernani@0cfe37f9-358a-4d5e-be75-b63607b5c754>
Tue, 15 Mar 2011 02:12:27 +0000 (02:12 +0000)
git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@840 0cfe37f9-358a-4d5e-be75-b63607b5c754

forum/models/node.py
forum/models/tag.py
forum/modules/__init__.py
forum/modules/template_loader.py
settings.py

index b3ae67ea59e534216b79ba3ad501eac8b6632f4c..98c538318a0187ab807ac418c63c8ab32ef0ea53 100644 (file)
@@ -8,7 +8,6 @@ from django.utils.safestring import mark_safe
 from django.utils.html import strip_tags
 from forum.utils.html import sanitize_html
 from forum.settings import SUMMARY_LENGTH
-from forum.modules import MODULES_PACKAGE
 from utils import PickledObjectField
 
 class NodeContent(models.Model):
index ce0d8de630e9fb067d9eef7761c3d7a795c4281d..520464971572451eac4d703764e8302c7258d704 100644 (file)
@@ -1,10 +1,7 @@
 import datetime
 from base import *
 
-from forum.modules import MODULES_PACKAGE
-
 from django.utils.translation import ugettext as _
-import django.dispatch
 
 class ActiveTagManager(models.Manager):
     def get_query_set(self):
index a5fdaa6745b5b75800f60fa6d493c5026c016f01..f1ad7d96bb167a936ea87756b8dfb695a7384cf4 100644 (file)
@@ -1,24 +1,7 @@
-import os
 import types
 import logging
 
-MODULES_PACKAGE = 'forum_modules'
-
-MODULE_LIST = []
-
-
-def init_modules_engine(site_src_root, disabled_modules):
-    modules_folder = os.path.join(site_src_root, MODULES_PACKAGE)
-
-    MODULE_LIST.extend(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
-    ]))
-
-    get_modules_folder.value = modules_folder
+from django.conf import settings
 
 def get_modules_folder():
     return get_modules_folder.value
@@ -26,7 +9,7 @@ def get_modules_folder():
 def get_modules_script(script_name):
     all = []
 
-    for m in MODULE_LIST:
+    for m in settings.MODULE_LIST:
         if hasattr(m, script_name):
             all.append(getattr(m, script_name))
             continue
index d0e57ac7aa141daa10ce4b68544928b39d5f92ac..510f308b0e5e0e6d67f4606fc592bb3786920978 100644 (file)
@@ -1,7 +1,7 @@
 import os, re
 
 from forum.skins import load_template_source as skins_template_loader, Template, BaseTemplateLoader
-from forum import modules
+from django.conf import settings
 
 MODULES_TEMPLATE_PREFIX = 'modules/'
 NO_OVERRIDE_TEMPLATE_PREFIX = 'no_override/'
@@ -9,7 +9,7 @@ MODULES_TEMPLATE_FOLDER = 'templates'
 MODULES_TEMPLATE_OVERRIDES_FOLDER = 'template_overrides'
 
 TEMPLATE_OVERRIDE_LOOKUP_PATHS = [f for f in [
-        os.path.join(os.path.dirname(m.__file__), MODULES_TEMPLATE_OVERRIDES_FOLDER) for m in modules.MODULE_LIST
+        os.path.join(os.path.dirname(m.__file__), MODULES_TEMPLATE_OVERRIDES_FOLDER) for m in settings.MODULE_LIST
     ] if os.path.exists(f)
 ]
 
@@ -22,7 +22,7 @@ class ModulesTemplateLoader(BaseTemplateLoader):
 
         if name.startswith(MODULES_TEMPLATE_PREFIX):
             match = self.modules_re.search(name)
-            file_name = os.path.join(modules.get_modules_folder(), match.group(1), MODULES_TEMPLATE_FOLDER, match.group(2))
+            file_name = os.path.join(settings.MODULES_FOLDER, match.group(1), MODULES_TEMPLATE_FOLDER, match.group(2))
 
             if os.path.exists(file_name):
                 template = Template(file_name)
index 0db3f3b9ba2759b333d9c262fcb1d88c4678a99f..de55240cddc405043605566ad30ec53675b33c6c 100644 (file)
@@ -71,16 +71,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 = [