]> git.0d.be Git - panikdb.git/blob - panikdb/settings.py
use relative import for local_settings
[panikdb.git] / panikdb / settings.py
1 # Django settings for panikdb project.
2 # coding: utf-8
3
4 import copy
5 import os
6 from django.conf import global_settings
7
8 DEBUG = True
9 DEBUG_TOOLBAR = True
10
11 PROJECT_DIR = os.path.normpath(os.path.dirname(os.path.dirname(__file__)))
12 PROJECT_PATH = os.path.dirname(os.path.dirname(__file__))
13
14 ADMINS = (
15     ('Frederic Peters', 'fred@radiopanik.org'),
16 )
17
18 MANAGERS = ADMINS
19
20 DATABASES = {
21     'default': {
22         'ENGINE': 'django.db.backends.sqlite3',
23         'NAME': os.path.join(PROJECT_PATH, 'panikdb.sqlite3'),
24     }
25 }
26
27 # Hosts/domain names that are valid for this site; required if DEBUG is False
28 # See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts
29 ALLOWED_HOSTS = []
30
31 # Local time zone for this installation. Choices can be found here:
32 # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
33 # although not all choices may be available on all operating systems.
34 # In a Windows environment this must be set to your system time zone.
35 TIME_ZONE = 'Europe/Brussels'
36
37 # Language code for this installation. All choices can be found here:
38 # http://www.i18nguy.com/unicode/language-identifiers.html
39 LANGUAGE_CODE = 'fr-be'
40
41 SITE_ID = 1
42
43 # If you set this to False, Django will make some optimizations so as not
44 # to load the internationalization machinery.
45 USE_I18N = True
46
47 LOCALE_PATHS = (os.path.join(PROJECT_DIR, 'panikdb', 'locale'),)
48
49 # If you set this to False, Django will not format dates, numbers and
50 # calendars according to the current locale.
51 USE_L10N = True
52
53 # If you set this to False, Django will not use timezone-aware datetimes.
54 USE_TZ = False
55
56 # Absolute filesystem path to the directory that will hold user-uploaded files.
57 # Example: "/var/www/example.com/media/"
58 MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media')
59
60 # URL that handles the media served from MEDIA_ROOT. Make sure to use a
61 # trailing slash.
62 # Examples: "http://example.com/media/", "http://media.example.com/"
63 MEDIA_URL = '/media/'
64
65 # Absolute path to the directory static files should be collected to.
66 # Don't put anything in this directory yourself; store your static files
67 # in apps' "static/" subdirectories and in STATICFILES_DIRS.
68 # Example: "/var/www/example.com/static/"
69 STATIC_ROOT = os.path.join(PROJECT_PATH, 'static')
70
71 # URL prefix for static files.
72 # Example: "http://example.com/static/", "http://static.example.com/"
73 STATIC_URL = '/static/'
74
75 CKEDITOR_UPLOAD_PATH = 'uploads/'
76 CKEDITOR_UPLOAD_PREFIX = '/media/uploads/'
77
78 # Additional locations of static files
79 STATICFILES_DIRS = (
80     # Put strings here, like "/home/html/static" or "C:/www/django/static".
81     # Always use forward slashes, even on Windows.
82     # Don't forget to use absolute paths, not relative paths.
83     os.path.join(PROJECT_PATH, 'panikdb', 'static'),
84 )
85
86 # List of finder classes that know how to find static files in
87 # various locations.
88 STATICFILES_FINDERS = list(global_settings.STATICFILES_FINDERS) + \
89             ['gadjo.finders.XStaticFinder']
90
91 # Make this unique, and don't share it with anybody.
92 SECRET_KEY = '(jwx-1y#d#vps93glikirr&tq_!^_4g+9-qj(jy#l=sllqw(^j'
93
94 TEMPLATES = [
95     {
96         'BACKEND': 'django.template.backends.django.DjangoTemplates',
97         'DIRS': [
98             os.path.join(PROJECT_PATH, 'panikdb', 'templates'),
99         ],
100         'APP_DIRS': True,
101         'OPTIONS': {
102             'context_processors': [
103                 'django.contrib.auth.context_processors.auth',
104                 'django.template.context_processors.debug',
105                 'django.template.context_processors.i18n',
106                 'django.template.context_processors.media',
107                 'django.template.context_processors.static',
108                 'django.template.context_processors.tz',
109                 'django.contrib.messages.context_processors.messages',
110                 'panikdb.context_processors.internal_ip',
111             ],
112         },
113     },
114 ]
115
116
117
118 MIDDLEWARE_CLASSES = (
119     'django.middleware.common.CommonMiddleware',
120     'django.contrib.sessions.middleware.SessionMiddleware',
121     'django.middleware.csrf.CsrfViewMiddleware',
122     'django.contrib.auth.middleware.AuthenticationMiddleware',
123     'django.contrib.messages.middleware.MessageMiddleware',
124     # Uncomment the next line for simple clickjacking protection:
125     # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
126 )
127
128 ROOT_URLCONF = 'panikdb.urls'
129
130 # Python dotted path to the WSGI application used by Django's runserver.
131 WSGI_APPLICATION = 'panikdb.wsgi.application'
132
133 INSTALLED_APPS = (
134     'django.contrib.auth',
135     'django.contrib.contenttypes',
136     'django.contrib.sessions',
137     'django.contrib.sites',
138     'django.contrib.messages',
139     'django.contrib.staticfiles',
140     'django.contrib.admin',
141     'registration',
142     'ckeditor',
143     'haystack',
144     'taggit',
145     'emissions',
146     'newsletter',
147     'matos',
148     'nonstop',
149     'panikdb.aa',
150     'panikdb.customtags',
151     'panikdb.stats',
152     'panikdb.poll',
153     'gadjo',
154     'combo.data',
155     'combo.manager',
156     'combo.apps.assets',
157     'combo.apps.maps',
158     'combo.apps.notifications',
159     'combo.apps.pwa',
160     'sorl.thumbnail',
161     'gallery',
162     'panikombo',
163     'django_select2',
164 )
165
166 # A sample logging configuration. The only tangible logging
167 # performed by this configuration is to send an email to
168 # the site admins on every HTTP 500 error when DEBUG=False.
169 # See http://docs.djangoproject.com/en/dev/topics/logging for
170 # more details on how to customize your logging configuration.
171 LOGGING = {
172     'version': 1,
173     'disable_existing_loggers': False,
174     'filters': {
175         'require_debug_false': {
176             '()': 'django.utils.log.RequireDebugFalse'
177         }
178     },
179     'handlers': {
180         'mail_admins': {
181             'level': 'ERROR',
182             'filters': ['require_debug_false'],
183             'class': 'django.utils.log.AdminEmailHandler'
184         }
185     },
186     'loggers': {
187         'django.request': {
188             'handlers': ['mail_admins'],
189             'level': 'ERROR',
190             'propagate': True,
191         },
192     }
193 }
194
195 CKEDITOR_CONFIGS = {
196     'default': {
197         'allowedContent': True,
198         'filebrowserUploadUrl': '/ckeditor/upload/',
199         'filebrowserBrowseUrl': '/ckeditor/browse/',
200         'toolbar_Own': [['Source', 'Format', '-', 'Bold', 'Italic'],
201                         ['NumberedList','BulletedList'],
202                         ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'],
203                         ['Link', 'Unlink'],
204                         ['Image',],
205                         ['RemoveFormat',]],
206         'toolbar': 'Own',
207     },
208 }
209
210 CKEDITOR_CONFIGS['small'] = copy.copy(CKEDITOR_CONFIGS['default'])
211 CKEDITOR_CONFIGS['small']['height'] = 150
212
213 HAYSTACK_CONNECTIONS = {
214     'default': {
215         'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
216         'URL': 'http://127.0.0.1:8985/solr/panik'
217     },
218 }
219
220 CACHES = {
221     'default': {
222         'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
223     },
224 }
225
226 TEST_RUNNER = 'django.test.runner.DiscoverRunner'
227
228 AUTH_USER_MODEL = 'aa.User'
229 LOGIN_REDIRECT_URL = '/'
230 WEBSITE_BASE_URL = 'http://www.radiopanik.org/'
231
232 NEWSLETTER_SENDER = 'info@radiopanik.org'
233 NEWSLETTER_DOMAIN = 'radiopanik.org'
234 NEWSLETTER_STYLE = """
235 body { color: #222; text-align: justify; }
236 h2, h3 { font-family: "Reglo"; }
237 h3 { margin-bottom: 0; }
238 h3 + p { margin-top: 0; }
239 p strong { color: black; }
240 h3 strong { text-transform: uppercase; color: blue; }
241 p a { color: black; text-decoration: none; border-bottom: 1px dotted black; }
242 p a:hover { border-bottom: 1px solid black; }
243 """
244
245 RAVEN_CONFIG = None
246
247 from panikombo.misc import COMBO_PUBLIC_TEMPLATES
248 COMBO_DEFAULT_PUBLIC_TEMPLATE = 'standard'
249
250 AUTO_RENDER_SELECT2_STATICS = False
251
252 PIGE_DOWNLOAD_BASE_URL = 'http://pige.panik/extractor/download.cgi'
253
254 JSON_CELL_TYPES = {}
255 TEMPLATE_VARS = {}
256
257 FILE_UPLOAD_DIRECTORY_PERMISSIONS = 0o755
258 FILE_UPLOAD_PERMISSIONS = 0o644
259
260 try:
261     from .local_settings import *
262 except ImportError:
263     pass
264
265 if DEBUG and DEBUG_TOOLBAR:
266     MIDDLEWARE_CLASSES += (
267         'debug_toolbar.middleware.DebugToolbarMiddleware',
268     )
269     INSTALLED_APPS += (
270         'debug_toolbar',
271     )
272
273 if RAVEN_CONFIG:
274     INSTALLED_APPS += (
275         'raven.contrib.django.raven_compat',
276     )