X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/a9eef437702d5df7a2f97010e6798c689371808c..fc4711d32acb2f0a4cbcf0bfe668189f3590db49:/settings.py diff --git a/settings.py b/settings.py old mode 100755 new mode 100644 index 4188e05..0c0495a --- a/settings.py +++ b/settings.py @@ -1,65 +1,109 @@ # encoding:utf-8 -# Django settings for lanai project. import os.path import sys SITE_ID = 1 -ADMIN_MEDIA_PREFIX = '/forum/admin/media/' -SECRET_KEY = '$oo^&_m&qwbib=(_4m_n*zn-d=g#s0he5fx9xonnym#8p6yigm' -# List of callables that know how to import templates from various sources. -TEMPLATE_LOADERS = ( - 'django.template.loaders.filesystem.load_template_source', - 'django.template.loaders.app_directories.load_template_source', - 'forum.modules.module_templates_loader', - 'forum.skins.load_template_source', -# 'django.template.loaders.eggs.load_template_source', -) +SECRET_KEY = 'a;::qCl1mfh?avagttOJ;8f5Rr54d,9qy7;o15M2cYO75?OQo51u3LnQ;!8N.:,7' + +CACHE_MAX_KEY_LENGTH = 235 MIDDLEWARE_CLASSES = [ - #'django.middleware.gzip.GZipMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'forum.middleware.django_cookies.CookiePreHandlerMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', - #'django.middleware.locale.LocaleMiddleware', - #'django.middleware.cache.UpdateCacheMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.common.CommonMiddleware', - #'django.middleware.cache.FetchFromCacheMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - #'django.middleware.sqlprint.SqlPrintingMiddleware', + 'forum.middleware.extended_user.ExtendedUser', 'forum.middleware.anon_user.ConnectToSessionMessagesMiddleware', - 'forum.middleware.pagesize.QuestionsPageSizeMiddleware', + 'forum.middleware.request_utils.RequestUtils', 'forum.middleware.cancel.CancelActionMiddleware', - 'debug_toolbar.middleware.DebugToolbarMiddleware', - 'recaptcha_django.middleware.ReCaptchaMiddleware', + 'forum.middleware.admin_messages.AdminMessagesMiddleware', + 'forum.middleware.custom_pages.CustomPagesFallbackMiddleware', 'django.middleware.transaction.TransactionMiddleware', + 'forum.middleware.django_cookies.CookiePostHandlerMiddleware', ] -TEMPLATE_CONTEXT_PROCESSORS = ( +TEMPLATE_CONTEXT_PROCESSORS = [ 'django.core.context_processors.request', - 'context.application_settings', - #'django.core.context_processors.i18n', - 'forum.user_messages.context_processors.user_messages',#must be before auth - 'django.core.context_processors.auth', #this is required for admin -) + 'forum.context.application_settings', + 'django.contrib.messages.context_processors.messages', + 'forum.user_messages.context_processors.user_messages', + 'django.contrib.auth.context_processors.auth', +] ROOT_URLCONF = 'urls' +APPEND_SLASH = True TEMPLATE_DIRS = ( os.path.join(os.path.dirname(__file__),'forum','skins').replace('\\','/'), ) -#UPLOAD SETTINGS + FILE_UPLOAD_TEMP_DIR = os.path.join(os.path.dirname(__file__), 'tmp').replace('\\','/') FILE_UPLOAD_HANDLERS = ("django.core.files.uploadhandler.MemoryFileUploadHandler", "django.core.files.uploadhandler.TemporaryFileUploadHandler",) DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage' -# for user upload + ALLOW_FILE_TYPES = ('.jpg', '.jpeg', '.gif', '.bmp', '.png', '.tiff') -# unit byte ALLOW_MAX_FILE_SIZE = 1024 * 1024 +SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer' + +MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage' + # User settings from settings_local import * +template_loaders = ( + 'django.template.loaders.filesystem.Loader', + 'django.template.loaders.app_directories.Loader', + 'forum.modules.template_loader.module_templates_loader', + 'forum.skins.load_template_source', +) +TEMPLATE_LOADERS = list(template_loaders) if DEBUG else [ ('django.template.loaders.cached.Loader', template_loaders) ] + +try: + if len(FORUM_SCRIPT_ALIAS) > 0: + APP_URL = '%s/%s' % (APP_URL, FORUM_SCRIPT_ALIAS[:-1]) +except NameError: + pass + +app_url_split = APP_URL.split("://") + +APP_PROTOCOL = app_url_split[0] +APP_DOMAIN = app_url_split[1].split('/')[0] +APP_BASE_URL = '%s://%s' % (APP_PROTOCOL, APP_DOMAIN) + +FORCE_SCRIPT_NAME = '' + +for path in app_url_split[1].split('/')[1:]: + FORCE_SCRIPT_NAME = FORCE_SCRIPT_NAME + '/' + path + +if FORCE_SCRIPT_NAME.endswith('/'): + FORCE_SCRIPT_NAME = FORCE_SCRIPT_NAME[:-1] + +#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 MODULE_LIST] + +[TEMPLATE_LOADERS.extend( + ["%s.%s" % (m.__name__, tl) for tl in getattr(m, 'TEMPLATE_LOADERS', [])] + ) for m in MODULE_LIST] + + INSTALLED_APPS = [ 'django.contrib.auth', 'django.contrib.contenttypes', @@ -68,34 +112,36 @@ INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.humanize', 'django.contrib.sitemaps', + 'django.contrib.messages', 'forum', - #'django_authopenid', - 'debug_toolbar' , ] -AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend',] +if DEBUG: + try: + import debug_toolbar + MIDDLEWARE_CLASSES.append('debug_toolbar.middleware.DebugToolbarMiddleware') + INSTALLED_APPS.append('debug_toolbar') + except: + pass + +try: + import south + INSTALLED_APPS.append('south') +except: + pass -if USE_SPHINX_SEARCH: - INSTALLED_APPS.append('djangosphinx') - -if USE_FB_CONNECT: - INSTALLED_APPS.append('fbconnect') - -if DATABASE_ENGINE in ('postgresql_psycopg2', 'postgresql', ) and False: - USE_PG_FTS = True - INSTALLED_APPS.append('pgfulltext') -else: - USE_PG_FTS = False - -#load optional plugin module for external password login -if 'USE_EXTERNAL_LEGACY_LOGIN' in locals() and USE_EXTERNAL_LEGACY_LOGIN: - INSTALLED_APPS.append(EXTERNAL_LEGACY_LOGIN_MODULE) - - if 'EXTERNAL_LEGACY_LOGIN_AUTHENTICATION_BACKEND' in locals(): - AUTHENTICATION_BACKENDS.append(EXTERNAL_LEGACY_LOGIN_AUTHENTICATION_BACKEND) - if 'EXTERNAL_LEGACY_LOGIN_AUTHENTICATION_MIDDLEWARE' in locals(): - MIDDLEWARE_CLASSES.append(EXTERNAL_LEGACY_LOGIN_AUTHENTICATION_MIDDLEWARE) - def LOAD_EXTERNAL_LOGIN_APP(): - return __import__(EXTERNAL_LEGACY_LOGIN_MODULE, [], [], ['api','forms','views']) -else: - LOAD_EXTERNAL_LOGIN_APP = lambda: None +# Try loading Gunicorn web server +try: + import gunicorn + INSTALLED_APPS.append('gunicorn') +except ImportError: + pass + +if not DEBUG: + try: + import rosetta + INSTALLED_APPS.append('rosetta') + except: + pass + +AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend',]