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