result categories working.
[wolnelektury.git] / wolnelektury / settings.py
1 # -*- coding: utf-8 -*-
2 # Django settings for wolnelektury project.
3 from os import path
4
5 PROJECT_DIR = path.abspath(path.dirname(__file__))
6
7 DEBUG = False
8 TEMPLATE_DEBUG = DEBUG
9 MAINTENANCE_MODE = False
10
11 ADMINS = [
12     # ('Your Name', 'your_email@domain.com'),
13 ]
14
15 MANAGERS = ADMINS
16
17 DATABASES = {
18     'default': {
19         'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
20         'NAME': path.join(PROJECT_DIR, 'dev.db'), # Or path to database file if using sqlite3.
21         'USER': '',                      # Not used with sqlite3.
22         'PASSWORD': '',                  # Not used with sqlite3.
23         'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
24     }
25 }
26
27 DATABASES['default'] = {
28     'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
29     'NAME': 'mkoziej_wl', # Or path to database file if using sqlite3.
30     'USER': 'mkoziej',                      # Not used with sqlite3.
31     'PASSWORD': 'pelolpe',                  # Not used with sqlite3.
32 }
33
34 DATABASE_OPTIONS = {
35    "init_command": "SET storage_engine=INNODB DEFAULT CHARSET=utf8",
36 }
37
38
39
40 # Local time zone for this installation. Choices can be found here:
41 # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
42 # although not all choices may be available on all operating systems.
43 # If running in a Windows environment this must be set to the same as your
44 # system time zone.
45 TIME_ZONE = 'Europe/Warsaw'
46
47 # Language code for this installation. All choices can be found here:
48 # http://www.i18nguy.com/unicode/language-identifiers.html
49 LANGUAGE_CODE = 'pl'
50
51 gettext = lambda s: s
52
53 LANGUAGES = tuple(sorted([
54     ('pl', u'polski'),
55     ('de', u'Deutsch'),
56     ('en', u'English'),
57     ('lt', u'lietuvių'),
58     ('fr', u'français'),
59     ('ru', u'русский'),
60     ('es', u'español'),
61     ('uk', u'українська'),
62 ], key=lambda x: x[0]))
63
64
65 SITE_ID = 1
66
67 # If you set this to False, Django will make some optimizations so as not
68 # to load the internationalization machinery.
69 USE_I18N = True
70
71 # Absolute path to the directory that holds media.
72 # Example: "/home/media/media.lawrence.com/"
73 MEDIA_ROOT = path.join(PROJECT_DIR, '../media/')
74 STATIC_ROOT = path.join(PROJECT_DIR, 'static/')
75 SEARCH_INDEX = path.join(MEDIA_ROOT, 'search/')
76
77 # URL that handles the media served from MEDIA_ROOT. Make sure to use a
78 # trailing slash if there is a path component (optional in other cases).
79 # Examples: "http://media.lawrence.com", "http://example.com/media/"
80 MEDIA_URL = '/media/'
81 STATIC_URL = '/static/'
82
83 # URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
84 # trailing slash.
85 # Examples: "http://foo.com/media/", "/media/".
86 ADMIN_MEDIA_PREFIX = '/admin-media/'
87
88 # Make this unique, and don't share it with anybody.
89
90 # List of callables that know how to import templates from various sources.
91 TEMPLATE_LOADERS = [
92     'django.template.loaders.filesystem.Loader',
93     'django.template.loaders.app_directories.Loader',
94 #     'django.template.loaders.eggs.Loader',
95 ]
96
97 TEMPLATE_CONTEXT_PROCESSORS = (
98     'django.contrib.auth.context_processors.auth',
99     'django.core.context_processors.debug',
100     'django.core.context_processors.i18n',
101     'django.core.context_processors.media',
102     'django.core.context_processors.request',
103     'wolnelektury.context_processors.extra_settings',
104     'search.context_processors.search_form',
105 )
106
107 MIDDLEWARE_CLASSES = [
108     'django.middleware.cache.UpdateCacheMiddleware',
109     'django.middleware.common.CommonMiddleware',
110     'django.contrib.sessions.middleware.SessionMiddleware',
111     'django.contrib.auth.middleware.AuthenticationMiddleware',
112     'django.middleware.doc.XViewMiddleware',
113     'pagination.middleware.PaginationMiddleware',
114     'django.middleware.locale.LocaleMiddleware',
115     'piwik.django.middleware.PiwikMiddleware',
116     'maintenancemode.middleware.MaintenanceModeMiddleware',
117     'django.middleware.common.CommonMiddleware',
118     'django.middleware.cache.FetchFromCacheMiddleware',
119 ]
120
121 ROOT_URLCONF = 'wolnelektury.urls'
122
123 TEMPLATE_DIRS = [
124     path.join(PROJECT_DIR, 'templates'),
125 ]
126
127 LOGIN_URL = '/uzytkownicy/zaloguj/'
128
129 LOGIN_REDIRECT_URL = '/'
130
131 INSTALLED_APPS = [
132     # external
133     'django.contrib.auth',
134     'django.contrib.contenttypes',
135     'django.contrib.sessions',
136     'django.contrib.sites',
137     'django.contrib.admin',
138     'django.contrib.admindocs',
139     'pagination',
140     'piston',
141     'piwik.django',
142     'rosetta',
143     'south',
144     'sorl.thumbnail',
145     'djcelery',
146     'djkombu',
147     #    'django_nose',
148
149     # included
150     'compress',
151     'modeltranslation',
152
153     # our
154     'ajaxable',
155     'api',
156     'catalogue',
157     'chunks',
158     'dictionary',
159     'infopages',
160     'lesmianator',
161     'lessons',
162     'newtagging',
163     'opds',
164     'pdcounter',
165     'reporting',
166     'sponsors',
167     'stats',
168     'suggest',
169     'picture',
170     'search',
171     'social',
172 ]
173
174 CACHES = {
175     'default': {
176         'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
177         'LOCATION': [
178             '127.0.0.1:11211',
179         ]
180     },
181     'permanent': {
182         'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
183         'TIMEOUT': 2419200,
184         'LOCATION': [
185             '127.0.0.1:11211',
186         ]
187     },
188     'api': {
189         'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
190         'LOCATION': path.join(PROJECT_DIR, 'django_cache/'),
191         'KEY_PREFIX': 'api',
192         'TIMEOUT': 86400,
193     },
194 }
195 CACHE_MIDDLEWARE_ANONYMOUS_ONLY=True
196
197 # CSS and JavaScript file groups
198 COMPRESS_CSS = {
199     'all': {
200         #'source_filenames': ('css/master.css', 'css/jquery.autocomplete.css', 'css/master.plain.css', 'css/facelist_2-0.css',),
201         'source_filenames': [
202             'css/jquery.countdown.css', 
203
204             'css/base.css',
205             'css/header.css',
206             'css/main_page.css',
207             'css/dialogs.css',
208             'css/picture_box.css',
209             'css/book_box.css',
210             'css/catalogue.css',
211             'css/sponsors.css',
212             
213             'css/ui-lightness/jquery-ui-1.8.16.custom.css',
214         ],
215         'output_filename': 'css/all.min?.css',
216     },
217     'book': {
218         'source_filenames': ('css/master.book.css',),
219         'output_filename': 'css/book.min?.css',
220     },
221     'player': {
222         'source_filenames': [
223             'jplayer/jplayer.blue.monday.css', 
224         ],
225         'output_filename': 'css/player.min?.css',
226     },
227     'simple': {
228         'source_filenames': ('css/simple.css',),
229         'output_filename': 'css/simple.min?.css',
230     },
231 }
232
233 COMPRESS_JS = {
234     'base': {
235         'source_filenames': (
236             'js/jquery.cycle.min.js',
237             'js/jquery.jqmodal.js',
238             'js/jquery.form.js',
239             'js/jquery.countdown.js', 'js/jquery.countdown-pl.js',
240             'js/jquery.countdown-de.js', 'js/jquery.countdown-uk.js',
241             'js/jquery.countdown-es.js', 'js/jquery.countdown-lt.js',
242             'js/jquery.countdown-ru.js', 'js/jquery.countdown-fr.js',
243
244             'js/jquery-ui-1.8.16.custom.min.js',
245
246             'js/locale.js',
247             'js/dialogs.js',
248             'js/sponsors.js',
249             'js/base.js',
250             'js/pdcounter.js',
251
252             'js/search.js',
253
254             'js/jquery.labelify.js',
255             ),
256         'output_filename': 'js/base?.min.js',
257     },
258     'player': {
259         'source_filenames': [
260             'jplayer/jquery.jplayer.min.js', 
261             'jplayer/jplayer.playlist.min.js', 
262             'js/player.js', 
263         ],
264         'output_filename': 'js/player.min?.js',
265     },
266     'book': {
267         'source_filenames': ('js/jquery.eventdelegation.js', 'js/jquery.scrollto.js', 'js/jquery.highlightfade.js', 'js/book.js',),
268         'output_filename': 'js/book?.min.js',
269     },
270     'book_ie': {
271         'source_filenames': ('js/ierange-m2.js',),
272         'output_filename': 'js/book_ie?.min.js',
273     }
274
275 }
276
277 COMPRESS_VERSION = True
278 COMPRESS_CSS_FILTERS = None
279
280 THUMBNAIL_QUALITY = 95
281 THUMBNAIL_EXTENSION = 'png'
282
283 THUMBNAIL_PROCESSORS = (
284     # Default processors
285     'sorl.thumbnail.processors.colorspace',
286     'sorl.thumbnail.processors.autocrop',
287     'sorl.thumbnail.processors.scale_and_crop',
288     'sorl.thumbnail.processors.filters',
289     # Custom processors
290     'sponsors.processors.add_padding',
291 )
292
293 TRANSLATION_REGISTRY = "wolnelektury.translation"
294
295
296 # seconds until a changes appears in the changes api
297 API_WAIT = 10
298
299 # limit number of filtering tags
300 MAX_TAG_LIST = 6
301
302 NO_BUILD_EPUB = False
303 NO_BUILD_TXT = False
304 NO_BUILD_PDF = False
305 NO_BUILD_MOBI = True
306 NO_SEARCH_INDEX = False
307
308 ALL_EPUB_ZIP = 'wolnelektury_pl_epub'
309 ALL_PDF_ZIP = 'wolnelektury_pl_pdf'
310 ALL_MOBI_ZIP = 'wolnelektury_pl_mobi'
311
312 CATALOGUE_DEFAULT_LANGUAGE = 'pol'
313 PUBLISH_PLAN_FEED = 'http://redakcja.wolnelektury.pl/documents/track/editor-proofreading/'
314
315 PAGINATION_INVALID_PAGE_RAISES_404 = True
316
317 import djcelery
318 djcelery.setup_loader()
319
320 BROKER_BACKEND = "djkombu.transport.DatabaseTransport"
321 BROKER_HOST = "localhost"
322 BROKER_PORT = 5672
323 BROKER_USER = "guest"
324 BROKER_PASSWORD = "guest"
325 BROKER_VHOST = "/"
326
327 CELERY_EAGER_PROPAGATES_EXCEPTIONS = True
328
329 # Load localsettings, if they exist
330 try:
331     from localsettings import *
332 except ImportError:
333     pass
334