ed63a1dbb00075f32d8f4729a1d53fcd183cd56f
[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
64 # URL that handles the media served from MEDIA_ROOT. Make sure to use a
65 # trailing slash if there is a path component (optional in other cases).
66 # Examples: "http://media.lawrence.com", "http://example.com/media/"
67 MEDIA_URL = '/media/'
68 STATIC_URL = '/static/'
69
70 # URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
71 # trailing slash.
72 # Examples: "http://foo.com/media/", "/media/".
73 ADMIN_MEDIA_PREFIX = '/admin-media/'
74
75 # Make this unique, and don't share it with anybody.
76
77 # List of callables that know how to import templates from various sources.
78 TEMPLATE_LOADERS = [
79     'django.template.loaders.filesystem.load_template_source',
80     'django.template.loaders.app_directories.load_template_source',
81 #     'django.template.loaders.eggs.load_template_source',
82 ]
83
84 TEMPLATE_CONTEXT_PROCESSORS = (
85     'django.core.context_processors.auth',
86     'django.core.context_processors.debug',
87     'django.core.context_processors.i18n',
88     'django.core.context_processors.media',
89     'django.core.context_processors.request',
90     'wolnelektury.context_processors.extra_settings',
91 )
92
93 MIDDLEWARE_CLASSES = [
94     'django.middleware.cache.UpdateCacheMiddleware',
95     'django.middleware.common.CommonMiddleware',
96     'django.contrib.sessions.middleware.SessionMiddleware',
97     'django.contrib.auth.middleware.AuthenticationMiddleware',
98     'django.middleware.doc.XViewMiddleware',
99     'pagination.middleware.PaginationMiddleware',
100     'django.middleware.locale.LocaleMiddleware',
101     'piwik.django.middleware.PiwikMiddleware',
102     'maintenancemode.middleware.MaintenanceModeMiddleware',
103     'django.middleware.common.CommonMiddleware',
104     'django.middleware.cache.FetchFromCacheMiddleware',
105 ]
106
107 ROOT_URLCONF = 'wolnelektury.urls'
108
109 TEMPLATE_DIRS = [
110     path.join(PROJECT_DIR, 'templates'),
111 ]
112
113 LOGIN_URL = '/uzytkownicy/login/'
114
115 LOGIN_REDIRECT_URL = '/'
116
117 INSTALLED_APPS = [
118     # external
119     'django.contrib.auth',
120     'django.contrib.contenttypes',
121     'django.contrib.sessions',
122     'django.contrib.sites',
123     'django.contrib.admin',
124     'django.contrib.admindocs',
125     'pagination',
126     'piston',
127     'piwik.django',
128     'rosetta',
129     'south',
130     'sorl.thumbnail',
131     'djcelery',
132     'djkombu',
133     #    'django_nose',
134
135     # included
136     'compress',
137     'modeltranslation',
138
139     # our
140     'api',
141     'catalogue',
142     'chunks',
143     'dictionary',
144     'infopages',
145     'lesmianator',
146     'lessons',
147     'newtagging',
148     'opds',
149     'pdcounter',
150     'reporting',
151     'sponsors',
152     'stats',
153     'suggest',
154 ]
155
156 #CACHE_BACKEND = 'locmem:///?max_entries=3000'
157 CACHE_BACKEND = 'memcached://127.0.0.1:11211/'
158 CACHE_MIDDLEWARE_ANONYMOUS_ONLY=True
159
160 # CSS and JavaScript file groups
161 COMPRESS_CSS = {
162     'all': {
163         #'source_filenames': ('css/master.css', 'css/jquery.autocomplete.css', 'css/jquery.countdown.css', 'css/master.plain.css', 'css/sponsors.css', 'css/facelist_2-0.css',),
164         'source_filenames': [
165             'css/base.css',
166             'css/header.css',
167             'css/main_page.css',
168             'css/book_box.css',
169         ],
170         'output_filename': 'css/all.min?.css',
171     },
172     'book': {
173         'source_filenames': ('css/master.book.css',),
174         'output_filename': 'css/book.min?.css',
175     },
176     'simple': {
177         'source_filenames': ('css/simple.css',),
178         'output_filename': 'css/simple.min?.css',
179     },
180 }
181
182 COMPRESS_JS = {
183     'jquery': {
184         #'source_filenames': ('js/jquery.js',),
185         'source_filenames': [],
186         'output_filename': 'js/jquery.min.js',
187     },
188     'all': {
189         #~ 'source_filenames': ('js/jquery.autocomplete.js', 'js/jquery.form.js',
190             #~ 'js/jquery.countdown.js', 'js/jquery.countdown-pl.js',
191             #~ 'js/jquery.countdown-de.js', 'js/jquery.countdown-uk.js',
192             #~ 'js/jquery.countdown-es.js', 'js/jquery.countdown-lt.js',
193             #~ 'js/jquery.countdown-ru.js', 'js/jquery.countdown-fr.js',
194             #~ 'js/jquery.cycle.min.js',
195             #~ 'js/jquery.jqmodal.js', 'js/jquery.labelify.js', 'js/catalogue.js',
196             #~ ),
197         'source_filenames': [],
198         'output_filename': 'js/all?.min.js',
199     },
200     'book': {
201         #~ 'source_filenames': ('js/jquery.eventdelegation.js', 'js/jquery.scrollto.js', 'js/jquery.highlightfade.js', 'js/book.js',),
202         'source_filenames': [],
203         'output_filename': 'js/book?.min.js',
204     },
205     'book_ie': {
206         #~ 'source_filenames': ('js/ierange-m2.js',),
207         'source_filenames': [],
208         'output_filename': 'js/book_ie?.min.js',
209     }
210
211 }
212
213 COMPRESS_VERSION = True
214 COMPRESS_CSS_FILTERS = None
215
216 THUMBNAIL_QUALITY = 95
217 THUMBNAIL_EXTENSION = 'png'
218
219 THUMBNAIL_PROCESSORS = (
220     # Default processors
221     'sorl.thumbnail.processors.colorspace',
222     'sorl.thumbnail.processors.autocrop',
223     'sorl.thumbnail.processors.scale_and_crop',
224     'sorl.thumbnail.processors.filters',
225     # Custom processors
226     'sponsors.processors.add_padding',
227 )
228
229 TRANSLATION_REGISTRY = "wolnelektury.translation"
230
231
232 # seconds until a changes appears in the changes api
233 API_WAIT = 10
234
235 # limit number of filtering tags
236 MAX_TAG_LIST = 6
237
238 NO_BUILD_EPUB = False
239 NO_BUILD_TXT = False
240 NO_BUILD_PDF = False
241 NO_BUILD_MOBI = False
242
243 ALL_EPUB_ZIP = 'wolnelektury_pl_epub'
244 ALL_PDF_ZIP = 'wolnelektury_pl_pdf'
245 ALL_MOBI_ZIP = 'wolnelektury_pl_mobi'
246
247 CATALOGUE_DEFAULT_LANGUAGE = 'pol'
248
249 PAGINATION_INVALID_PAGE_RAISES_404 = True
250
251 import djcelery
252 djcelery.setup_loader()
253
254 BROKER_BACKEND = "djkombu.transport.DatabaseTransport"
255 BROKER_HOST = "localhost"
256 BROKER_PORT = 5672
257 BROKER_USER = "guest"
258 BROKER_PASSWORD = "guest"
259 BROKER_VHOST = "/"
260
261
262 # Load localsettings, if they exist
263 try:
264     from localsettings import *
265 except ImportError:
266     pass
267