settings.py 7.52 KB
Newer Older
1
# Django settings for panikdb project.
2
# coding: utf-8
3 4

import os
fred's avatar
fred committed
5
from django.conf import global_settings
6 7 8

DEBUG = True
TEMPLATE_DEBUG = DEBUG
fred's avatar
fred committed
9
DEBUG_TOOLBAR = True
10

fred's avatar
fred committed
11
PROJECT_DIR = os.path.normpath(os.path.dirname(os.path.dirname(__file__)))
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
PROJECT_PATH = os.path.dirname(os.path.dirname(__file__))

ADMINS = (
    ('Frederic Peters', 'fred@radiopanik.org'),
)

MANAGERS = ADMINS

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(PROJECT_PATH, 'panikdb.sqlite3'),
    }
}

# Hosts/domain names that are valid for this site; required if DEBUG is False
# See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts
ALLOWED_HOSTS = []

# Local time zone for this installation. Choices can be found here:
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
# although not all choices may be available on all operating systems.
# In a Windows environment this must be set to your system time zone.
TIME_ZONE = 'Europe/Brussels'

# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
LANGUAGE_CODE = 'fr-be'

SITE_ID = 1

# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
USE_I18N = True

47 48
LOCALE_PATHS = (os.path.join(PROJECT_DIR, 'panikdb', 'locale'),)

49 50 51 52 53
# If you set this to False, Django will not format dates, numbers and
# calendars according to the current locale.
USE_L10N = True

# If you set this to False, Django will not use timezone-aware datetimes.
54
USE_TZ = False
55 56 57 58 59 60 61 62

# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/var/www/example.com/media/"
MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media')

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://example.com/media/", "http://media.example.com/"
fred's avatar
fred committed
63
MEDIA_URL = '/media/'
64 65 66 67 68 69 70 71 72 73 74

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/var/www/example.com/static/"
STATIC_ROOT = os.path.join(PROJECT_PATH, 'static')

# URL prefix for static files.
# Example: "http://example.com/static/", "http://static.example.com/"
STATIC_URL = '/static/'

75
CKEDITOR_UPLOAD_PATH = 'uploads/'
fred's avatar
fred committed
76
CKEDITOR_UPLOAD_PREFIX = '/media/uploads/'
77

78 79 80 81 82 83 84 85 86 87
# Additional locations of static files
STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(PROJECT_PATH, 'panikdb', 'static'),
)

# List of finder classes that know how to find static files in
# various locations.
88 89
STATICFILES_FINDERS = global_settings.STATICFILES_FINDERS + \
            ('gadjo.finders.XStaticFinder',)
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127

# Make this unique, and don't share it with anybody.
SECRET_KEY = '(jwx-1y#d#vps93glikirr&tq_!^_4g+9-qj(jy#l=sllqw(^j'

# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
#     'django.template.loaders.eggs.Loader',
)

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    # Uncomment the next line for simple clickjacking protection:
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

ROOT_URLCONF = 'panikdb.urls'

# Python dotted path to the WSGI application used by Django's runserver.
WSGI_APPLICATION = 'panikdb.wsgi.application'

TEMPLATE_DIRS = (
    os.path.join(PROJECT_PATH, 'panikdb', 'templates'),
)

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.admin',
128
    'registration',
129
    'ckeditor',
130
    'haystack',
131
    'taggit',
132 133 134
    'jquery',
    'datetimewidget',
    'django_bootstrap_staticfiles',
135
    'emissions',
136
    'newsletter',
fred's avatar
fred committed
137
    'matos',
138
    'nonstop',
fred's avatar
fred committed
139
    'panikdb.aa',
fred's avatar
fred committed
140
    'panikdb.customtags',
fred's avatar
fred committed
141
    'panikdb.stats',
fred's avatar
fred committed
142
    'panikdb.poll',
143 144 145
    'gadjo',
    'combo.data',
    'combo.manager',
fred's avatar
fred committed
146
    'combo.apps.maps',
147
    'sorl.thumbnail',
148
    'gallery',
149 150
    'panikombo',
    'django_select2',
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
)

# A sample logging configuration. The only tangible logging
# performed by this configuration is to send an email to
# the site admins on every HTTP 500 error when DEBUG=False.
# See http://docs.djangoproject.com/en/dev/topics/logging for
# more details on how to customize your logging configuration.
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        }
    },
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['require_debug_false'],
            'class': 'django.utils.log.AdminEmailHandler'
        }
    },
    'loggers': {
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
    }
}

182 183
CKEDITOR_CONFIGS = {
    'default': {
184
        'allowedContent': True,
185 186
        'filebrowserUploadUrl': '/ckeditor/upload/',
        'filebrowserBrowseUrl': '/ckeditor/browse/',
fred's avatar
fred committed
187 188 189 190
        'toolbar_Own': [['Source', 'Format', '-', 'Bold', 'Italic'],
                        ['NumberedList','BulletedList'],
                        ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'],
                        ['Link', 'Unlink'],
191 192
                        ['Image',],
                        ['RemoveFormat',]],
fred's avatar
fred committed
193
        'toolbar': 'Own',
194 195 196
    },
}

197 198 199
HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
200
        'URL': 'http://127.0.0.1:8985/solr/panik'
201 202
    },
}
203

fred's avatar
fred committed
204 205 206 207 208 209
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
    },
}

fred's avatar
fred committed
210 211
TEST_RUNNER = 'django.test.runner.DiscoverRunner'

fred's avatar
fred committed
212
AUTH_USER_MODEL = 'aa.User'
213
LOGIN_REDIRECT_URL = '/'
214
WEBSITE_BASE_URL = 'http://www.radiopanik.org/'
215

216 217 218 219 220 221 222 223 224 225 226 227 228
NEWSLETTER_SENDER = 'info@radiopanik.org'
NEWSLETTER_DOMAIN = 'radiopanik.org'
NEWSLETTER_STYLE = """
body { color: #222; text-align: justify; }
h2, h3 { font-family: "Reglo"; }
h3 { margin-bottom: 0; }
h3 + p { margin-top: 0; }
p strong { color: black; }
h3 strong { text-transform: uppercase; color: blue; }
p a { color: black; text-decoration: none; border-bottom: 1px dotted black; }
p a:hover { border-bottom: 1px solid black; }
"""

fred's avatar
fred committed
229 230
RAVEN_CONFIG = None

231
from panikombo.misc import COMBO_PUBLIC_TEMPLATES
232
COMBO_DEFAULT_PUBLIC_TEMPLATE = 'standard'
233

234
AUTO_RENDER_SELECT2_STATICS = False
235

236 237
PIGE_DOWNLOAD_BASE_URL = 'http://pige.panik/extractor/download.cgi'

238 239
JSON_CELL_TYPES = {}

fred's avatar
fred committed
240 241 242
TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + \
            ('panikdb.context_processors.internal_ip',)

243 244
FILE_UPLOAD_DIRECTORY_PERMISSIONS = 0o755
FILE_UPLOAD_PERMISSIONS = 0o644
fred's avatar
fred committed
245

246 247 248 249
try:
    from local_settings import *
except ImportError:
    pass
fred's avatar
fred committed
250 251 252 253 254 255 256 257

if DEBUG and DEBUG_TOOLBAR:
    MIDDLEWARE_CLASSES += (
        'debug_toolbar.middleware.DebugToolbarMiddleware',
    )
    INSTALLED_APPS += (
        'debug_toolbar',
    )
fred's avatar
fred committed
258 259 260 261 262

if RAVEN_CONFIG:
    INSTALLED_APPS += (
        'raven.contrib.django.raven_compat',
    )