X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/0f6982649692cff135db303910bb7bf94205ca7f..bd65d9583dbb436bbc1a790e7649531742b8386a:/settings.py diff --git a/settings.py b/settings.py index 2cf11e9..a1044e5 100644 --- a/settings.py +++ b/settings.py @@ -1,5 +1,4 @@ # encoding:utf-8 -# Django settings for lanai project. import os.path import sys @@ -7,133 +6,95 @@ SITE_ID = 1 ADMIN_MEDIA_PREFIX = '/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 = ( + +TEMPLATE_LOADERS = [ 'django.template.loaders.filesystem.load_template_source', 'django.template.loaders.app_directories.load_template_source', - 'forum.modules.module_templates_loader', + 'forum.modules.template_loader.module_templates_loader', 'forum.skins.load_template_source', -# 'django.template.loaders.eggs.load_template_source', -) +] MIDDLEWARE_CLASSES = [ - #'django.middleware.gzip.GZipMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.middleware.csrf.CsrfResponseMiddleware', + 'forum.middleware.django_cookies.CookiePreHandlerMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', - #'django.middleware.locale.LocaleMiddleware', - #'django.middleware.cache.UpdateCacheMiddleware', 'django.middleware.common.CommonMiddleware', - #'django.middleware.cache.FetchFromCacheMiddleware', 'forum.middleware.extended_user.ExtendedUser', - #'django.middleware.sqlprint.SqlPrintingMiddleware', 'forum.middleware.anon_user.ConnectToSessionMessagesMiddleware', 'forum.middleware.request_utils.RequestUtils', 'forum.middleware.cancel.CancelActionMiddleware', - #'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', 'forum.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.user_messages.context_processors.user_messages', + 'django.core.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 +# User settings +from settings_local import * +try: + if len(FORUM_SCRIPT_ALIAS) > 0: + APP_URL = '%s/%s' % (APP_URL, FORUM_SCRIPT_ALIAS[:-1]) +except NameError: + pass -def check_local_setting(name, value): - local_vars = locals() - if name in local_vars and local_vars[name] == value: - return True - else: - return False - -SITE_SRC_ROOT = os.path.dirname(__file__) -LOG_FILENAME = 'django.osqa.log' - -#for logging -import logging -logging.basicConfig( - filename=os.path.join(SITE_SRC_ROOT, 'log', LOG_FILENAME), - level=logging.ERROR, - format='%(pathname)s TIME: %(asctime)s MSG: %(filename)s:%(funcName)s:%(lineno)d %(message)s', -) - -#ADMINS and MANAGERS -ADMINS = (('Forum Admin', 'forum@example.com'),) -MANAGERS = ADMINS - -DEBUG = True -DEBUG_TOOLBAR_CONFIG = { - 'INTERCEPT_REDIRECTS': True -} -TEMPLATE_DEBUG = DEBUG -INTERNAL_IPS = ('127.0.0.1',) - -if True: - - DATABASE_NAME = 'meta_rep' # Or path to database file if using sqlite3. - DATABASE_USER = 'postgres' # Not used with sqlite3. - DATABASE_PASSWORD = 'postgres' # Not used with sqlite3. - DATABASE_ENGINE = 'postgresql_psycopg2' #mysql, etc - DATABASE_HOST = 'localhost' - DATABASE_PORT = '' -else: - DATABASE_NAME = 'd:/stuff/sxtest.db'#'sxtest2rep' # Or path to database file if using sqlite3. - DATABASE_USER = '' # Not used with sqlite3. - DATABASE_PASSWORD = '' # Not used with sqlite3. - DATABASE_ENGINE = 'sqlite3' #mysql, etc - DATABASE_HOST = '' - DATABASE_PORT = '' - -#CACHE_BACKEND = 'file://%s' % os.path.join(os.path.dirname(__file__),'cache').replace('\\','/') -#CACHE_BACKEND = 'dummy://' -CACHE_BACKEND = 'memcached://127.0.0.1:11211/' -SESSION_ENGINE = 'django.contrib.sessions.backends.db' - -APP_URL = 'http://' #used by email notif system and RSS +app_url_split = APP_URL.split("://") -#LOCALIZATIONS -TIME_ZONE = 'America/New_York' +APP_PROTOCOL = app_url_split[0] +APP_DOMAIN = app_url_split[1].split('/')[0] +APP_BASE_URL = '%s://%s' % (APP_PROTOCOL, APP_DOMAIN) -########################### -# -# this will allow running your forum with url like http://site.com/forum -# -# FORUM_SCRIPT_ALIAS = 'forum/' -# -FORUM_SCRIPT_ALIAS = '' #no leading slash, default = '' empty string +FORCE_SCRIPT_NAME = '' +for path in app_url_split[1].split('/')[1:]: + FORCE_SCRIPT_NAME = FORCE_SCRIPT_NAME + '/' + path -#OTHER SETTINGS +if FORCE_SCRIPT_NAME.endswith('/'): + FORCE_SCRIPT_NAME = FORCE_SCRIPT_NAME[:-1] -USE_I18N = False -LANGUAGE_CODE = 'en' +#Module system initialization +MODULES_PACKAGE = 'forum_modules' +MODULES_FOLDER = os.path.join(SITE_SRC_ROOT, MODULES_PACKAGE) -EMAIL_VALIDATION = 'off' #string - on|off +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 +]) -DJANGO_VERSION = 1.1 -RESOURCE_REVISION=4 -OSQA_DEFAULT_SKIN = 'default' +[MIDDLEWARE_CLASSES.extend( + ["%s.%s" % (m.__name__, mc) for mc in getattr(m, 'MIDDLEWARE_CLASSES', [])] + ) for m in MODULE_LIST] -DISABLED_MODULES = ['books', 'recaptcha', 'project_badges'] +[TEMPLATE_LOADERS.extend( + ["%s.%s" % (m.__name__, tl) for tl in getattr(m, 'TEMPLATE_LOADERS', [])] + ) for m in MODULE_LIST] INSTALLED_APPS = [ @@ -162,6 +123,13 @@ try: except: pass +# Try loading Gunicorn web server +try: + import gunicorn + INSTALLED_APPS.append('gunicorn') +except ImportError: + pass + if not DEBUG: try: import rosetta @@ -170,6 +138,3 @@ if not DEBUG: pass AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend',] - - -