search - did you mean?
[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     'search.context_processors.search_form',
93 )
94
95 MIDDLEWARE_CLASSES = [
96     'django.middleware.cache.UpdateCacheMiddleware',
97     'django.middleware.common.CommonMiddleware',
98     'django.contrib.sessions.middleware.SessionMiddleware',
99     'django.contrib.auth.middleware.AuthenticationMiddleware',
100     'django.middleware.doc.XViewMiddleware',
101     'pagination.middleware.PaginationMiddleware',
102     'django.middleware.locale.LocaleMiddleware',
103     'piwik.django.middleware.PiwikMiddleware',
104     'maintenancemode.middleware.MaintenanceModeMiddleware',
105     'django.middleware.common.CommonMiddleware',
106     'django.middleware.cache.FetchFromCacheMiddleware',
107 ]
108
109 ROOT_URLCONF = 'wolnelektury.urls'
110
111 TEMPLATE_DIRS = [
112     path.join(PROJECT_DIR, 'templates'),
113 ]
114
115 LOGIN_URL = '/uzytkownicy/zaloguj/'
116
117 LOGIN_REDIRECT_URL = '/'
118
119 INSTALLED_APPS = [
120     # external
121     'django.contrib.auth',
122     'django.contrib.contenttypes',
123     'django.contrib.sessions',
124     'django.contrib.sites',
125     'django.contrib.admin',
126     'django.contrib.admindocs',
127     'pagination',
128     'piston',
129     'piwik.django',
130     'rosetta',
131     'south',
132     'sorl.thumbnail',
133     'djcelery',
134     'djkombu',
135     #    'django_nose',
136
137     # included
138     'compress',
139     'modeltranslation',
140
141     # our
142     'ajaxable',
143     'api',
144     'catalogue',
145     'chunks',
146     'dictionary',
147     'infopages',
148     'lesmianator',
149     'lessons',
150     'newtagging',
151     'opds',
152     'pdcounter',
153     'reporting',
154     'sponsors',
155     'stats',
156     'suggest',
157     'picture',
158     'search',
159 ]
160
161 #CACHE_BACKEND = 'locmem:///?max_entries=3000'
162 CACHE_BACKEND = 'memcached://127.0.0.1:11211/'
163 #CACHE_BACKEND = None
164 CACHE_MIDDLEWARE_ANONYMOUS_ONLY=True
165
166 # CSS and JavaScript file groups
167 COMPRESS_CSS = {
168     'all': {
169         #'source_filenames': ('css/master.css', 'css/jquery.autocomplete.css', 'css/master.plain.css', 'css/facelist_2-0.css',),
170         'source_filenames': [
171             'css/jquery.countdown.css', 
172
173             'css/base.css',
174             'css/header.css',
175             'css/main_page.css',
176             'css/dialogs.css',
177             'css/picture_box.css',
178             'css/book_box.css',
179             'css/catalogue.css',
180             'css/sponsors.css',
181             
182             'css/ui-lightness/jquery-ui-1.8.16.custom.css',
183         ],
184         'output_filename': 'css/all.min?.css',
185     },
186     'book': {
187         'source_filenames': ('css/master.book.css',),
188         'output_filename': 'css/book.min?.css',
189     },
190     'player': {
191         'source_filenames': [
192             'jplayer/jplayer.blue.monday.css', 
193         ],
194         'output_filename': 'css/player.min?.css',
195     },
196     'simple': {
197         'source_filenames': ('css/simple.css',),
198         'output_filename': 'css/simple.min?.css',
199     },
200 }
201
202 COMPRESS_JS = {
203     'base': {
204         'source_filenames': (
205             'js/jquery.cycle.min.js',
206             'js/jquery.jqmodal.js',
207             'js/jquery.form.js',
208             'js/jquery.countdown.js', 'js/jquery.countdown-pl.js',
209             'js/jquery.countdown-de.js', 'js/jquery.countdown-uk.js',
210             'js/jquery.countdown-es.js', 'js/jquery.countdown-lt.js',
211             'js/jquery.countdown-ru.js', 'js/jquery.countdown-fr.js',
212
213             'js/jquery-ui-1.8.16.custom.min.js',
214
215             'js/locale.js',
216             'js/dialogs.js',
217             'js/sponsors.js',
218             'js/base.js',
219             'js/pdcounter.js',
220
221             'js/search.js',
222
223             'js/jquery.labelify.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         'output_filename': 'js/book?.min.js',
238     },
239     'book_ie': {
240         'source_filenames': ('js/ierange-m2.js',),
241         'output_filename': 'js/book_ie?.min.js',
242     }
243
244 }
245
246 COMPRESS_VERSION = True
247 COMPRESS_CSS_FILTERS = None
248
249 THUMBNAIL_QUALITY = 95
250 THUMBNAIL_EXTENSION = 'png'
251
252 THUMBNAIL_PROCESSORS = (
253     # Default processors
254     'sorl.thumbnail.processors.colorspace',
255     'sorl.thumbnail.processors.autocrop',
256     'sorl.thumbnail.processors.scale_and_crop',
257     'sorl.thumbnail.processors.filters',
258     # Custom processors
259     'sponsors.processors.add_padding',
260 )
261
262 TRANSLATION_REGISTRY = "wolnelektury.translation"
263
264
265 # seconds until a changes appears in the changes api
266 API_WAIT = 10
267
268 # limit number of filtering tags
269 MAX_TAG_LIST = 6
270
271 NO_BUILD_EPUB = False
272 NO_BUILD_TXT = False
273 NO_BUILD_PDF = False
274 NO_BUILD_MOBI = True
275 NO_SEARCH_INDEX = False
276
277 ALL_EPUB_ZIP = 'wolnelektury_pl_epub'
278 ALL_PDF_ZIP = 'wolnelektury_pl_pdf'
279 ALL_MOBI_ZIP = 'wolnelektury_pl_mobi'
280
281 CATALOGUE_DEFAULT_LANGUAGE = 'pol'
282 PUBLISH_PLAN_FEED = 'http://redakcja.wolnelektury.pl/documents/track/editor-proofreading/'
283
284 PAGINATION_INVALID_PAGE_RAISES_404 = True
285
286 import djcelery
287 djcelery.setup_loader()
288
289 BROKER_BACKEND = "djkombu.transport.DatabaseTransport"
290 BROKER_HOST = "localhost"
291 BROKER_PORT = 5672
292 BROKER_USER = "guest"
293 BROKER_PASSWORD = "guest"
294 BROKER_VHOST = "/"
295
296
297
298 # Load localsettings, if they exist
299 try:
300     from localsettings import *
301 except ImportError:
302     pass
303