add contrib locale to make-locale-pack, various bugfixes
[wolnelektury.git] / wolnelektury / settings.py
index 6c890b9..ab74294 100644 (file)
@@ -21,16 +21,16 @@ DATABASES = {
         'USER': '',                      # Not used with sqlite3.
         'PASSWORD': '',                  # Not used with sqlite3.
         'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
         'USER': '',                      # Not used with sqlite3.
         'PASSWORD': '',                  # Not used with sqlite3.
         'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
-        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
     }
 }
 
     }
 }
 
+
 # Local time zone for this installation. Choices can be found here:
 # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
 # although not all choices may be available on all operating systems.
 # If running in a Windows environment this must be set to the same as your
 # system time zone.
 # Local time zone for this installation. Choices can be found here:
 # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
 # although not all choices may be available on all operating systems.
 # If running in a Windows environment this must be set to the same as your
 # system time zone.
-TIME_ZONE = 'Europe/Warsaw Poland'
+TIME_ZONE = 'Europe/Warsaw'
 
 # Language code for this installation. All choices can be found here:
 # http://www.i18nguy.com/unicode/language-identifiers.html
 
 # Language code for this installation. All choices can be found here:
 # http://www.i18nguy.com/unicode/language-identifiers.html
@@ -47,6 +47,8 @@ LANGUAGES = tuple(sorted([
     ('ru', u'русский'),
     ('es', u'español'),
     ('uk', u'українська'),
     ('ru', u'русский'),
     ('es', u'español'),
     ('uk', u'українська'),
+    ('jp', u'日本語'),
+    ('it', u'italiano'),
 ], key=lambda x: x[0]))
 
 
 ], key=lambda x: x[0]))
 
 
@@ -58,8 +60,9 @@ USE_I18N = True
 
 # Absolute path to the directory that holds media.
 # Example: "/home/media/media.lawrence.com/"
 
 # Absolute path to the directory that holds media.
 # Example: "/home/media/media.lawrence.com/"
-MEDIA_ROOT = path.join(PROJECT_DIR, '../media')
-STATIC_ROOT = path.join(PROJECT_DIR, 'static')
+MEDIA_ROOT = path.join(PROJECT_DIR, '../media/')
+STATIC_ROOT = path.join(PROJECT_DIR, 'static/')
+SEARCH_INDEX = path.join(MEDIA_ROOT, 'search/')
 
 # URL that handles the media served from MEDIA_ROOT. Make sure to use a
 # trailing slash if there is a path component (optional in other cases).
 
 # URL that handles the media served from MEDIA_ROOT. Make sure to use a
 # trailing slash if there is a path component (optional in other cases).
@@ -76,29 +79,36 @@ ADMIN_MEDIA_PREFIX = '/admin-media/'
 
 # List of callables that know how to import templates from various sources.
 TEMPLATE_LOADERS = [
 
 # List of callables that know how to import templates from various sources.
 TEMPLATE_LOADERS = [
-    'django.template.loaders.filesystem.load_template_source',
-    'django.template.loaders.app_directories.load_template_source',
-#     'django.template.loaders.eggs.load_template_source',
+    'django.template.loaders.filesystem.Loader',
+    'django.template.loaders.app_directories.Loader',
+#     'django.template.loaders.eggs.Loader',
 ]
 
 ]
 
-TEMPLATE_CONTEXT_PROCESSORS = [
-    'django.core.context_processors.auth',
+TEMPLATE_CONTEXT_PROCESSORS = (
+    'django.contrib.auth.context_processors.auth',
     'django.core.context_processors.debug',
     'django.core.context_processors.i18n',
     'django.core.context_processors.media',
     'django.core.context_processors.request',
     'wolnelektury.context_processors.extra_settings',
     'django.core.context_processors.debug',
     'django.core.context_processors.i18n',
     'django.core.context_processors.media',
     'django.core.context_processors.request',
     'wolnelektury.context_processors.extra_settings',
-]
+    'search.context_processors.search_form',
+    "allauth.context_processors.allauth",
+    "allauth.account.context_processors.account",
+)
 
 MIDDLEWARE_CLASSES = [
 
 MIDDLEWARE_CLASSES = [
+    'django.middleware.cache.UpdateCacheMiddleware',
     'django.middleware.common.CommonMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.middleware.doc.XViewMiddleware',
     'pagination.middleware.PaginationMiddleware',
     'django.middleware.locale.LocaleMiddleware',
     'django.middleware.common.CommonMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.middleware.doc.XViewMiddleware',
     'pagination.middleware.PaginationMiddleware',
     'django.middleware.locale.LocaleMiddleware',
-
+    'piwik.django.middleware.PiwikMiddleware',
     'maintenancemode.middleware.MaintenanceModeMiddleware',
     'maintenancemode.middleware.MaintenanceModeMiddleware',
+    'django.middleware.common.CommonMiddleware',
+    'django.middleware.cache.FetchFromCacheMiddleware',
+    'django.contrib.messages.middleware.MessageMiddleware',
 ]
 
 ROOT_URLCONF = 'wolnelektury.urls'
 ]
 
 ROOT_URLCONF = 'wolnelektury.urls'
@@ -107,98 +117,235 @@ TEMPLATE_DIRS = [
     path.join(PROJECT_DIR, 'templates'),
 ]
 
     path.join(PROJECT_DIR, 'templates'),
 ]
 
-LOGIN_URL = '/uzytkownicy/zaloguj/'
+
+AUTHENTICATION_BACKENDS = [
+    'django.contrib.auth.backends.ModelBackend',
+    'allauth.account.auth_backends.AuthenticationBackend',
+]
+EMAIL_CONFIRMATION_DAYS = 2
+LOGIN_URL = '/uzytkownik/login/'
 
 LOGIN_REDIRECT_URL = '/'
 
 INSTALLED_APPS = [
 
 LOGIN_REDIRECT_URL = '/'
 
 INSTALLED_APPS = [
-    # included
+    # external
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.sites',
     'django.contrib.admin',
     'django.contrib.admindocs',
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.sites',
     'django.contrib.admin',
     'django.contrib.admindocs',
-
-    # external
+    'pagination',
+    'piston',
+    'piwik.django',
+    #'rosetta',
     'south',
     'sorl.thumbnail',
     'south',
     'sorl.thumbnail',
-    'sponsors',
-    'newtagging',
-    'pagination',
-    'chunks',
+    'djcelery',
+    'djkombu',
+    #    'django_nose',
+
+    #allauth stuff
+    'emailconfirmation',
+    'uni_form',
+    'allauth',
+    'allauth.account',
+    'allauth.socialaccount',
+    'allauth.openid',
+    #'allauth.facebook',
+    #'allauth.twitter',
+
+    # included
     'compress',
     'modeltranslation',
     'compress',
     'modeltranslation',
-    'catalogue',
-    'lessons',
-    'piston',
+
+    # our
+    'ajaxable',
     'api',
     'api',
-    'rosetta',
+    'catalogue',
+    'chunks',
+    'dictionary',
     'infopages',
     'infopages',
-    'suggest',
     'lesmianator',
     'lesmianator',
+    'lessons',
+    'newtagging',
     'opds',
     'pdcounter',
     'opds',
     'pdcounter',
+    'reporting',
+    'sponsors',
+    'stats',
+    'suggest',
+    'picture',
+    'search',
+    'social',
 ]
 
 ]
 
-CACHE_BACKEND = 'locmem:///?max_entries=3000'
+CACHES = {
+    'default': {
+        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
+        'LOCATION': [
+            '127.0.0.1:11211',
+        ]
+    },
+    'permanent': {
+        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
+        'TIMEOUT': 2419200,
+        'LOCATION': [
+            '127.0.0.1:11211',
+        ]
+    },
+    'api': {
+        'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
+        'LOCATION': path.join(PROJECT_DIR, 'django_cache/'),
+        'KEY_PREFIX': 'api',
+        'TIMEOUT': 86400,
+    },
+}
+CACHE_MIDDLEWARE_ANONYMOUS_ONLY=True
 
 # CSS and JavaScript file groups
 COMPRESS_CSS = {
     'all': {
 
 # CSS and JavaScript file groups
 COMPRESS_CSS = {
     'all': {
-        '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',),
+        #'source_filenames': ('css/master.css', 'css/jquery.autocomplete.css', 'css/master.plain.css', 'css/facelist_2-0.css',),
+        'source_filenames': [
+            'css/jquery.countdown.css', 
+
+            'css/base.css',
+            'css/cite.css',
+            'css/header.css',
+            'css/main_page.css',
+            'css/dialogs.css',
+            'css/picture_box.css',
+            'css/book_box.css',
+            'css/catalogue.css',
+            'css/sponsors.css',
+            'css/logo.css',
+            'css/auth.css',
+
+            'css/social/shelf_tags.css',
+            'css/ui-lightness/jquery-ui-1.8.16.custom.css',
+        ],
         'output_filename': 'css/all.min?.css',
     },
         'output_filename': 'css/all.min?.css',
     },
+    'screen': {
+        'source_filenames': ['css/screen.css'],
+        'output_filename': 'css/screen.min?.css',
+        'extra_context': {
+            'media': 'screen and (min-width: 800px)',
+        },
+    },
+    'ie': {
+        'source_filenames': [
+            'css/ie.css',
+        ],
+        'output_filename': 'css/ie.min?.css',
+    },
     'book': {
     'book': {
-        'source_filenames': ('css/master.book.css',),
+        'source_filenames': [
+            'css/logo.css',
+            'css/master.book.css',
+        ],
         'output_filename': 'css/book.min?.css',
         'output_filename': 'css/book.min?.css',
-    }
+    },
+    'player': {
+        'source_filenames': [
+            'jplayer/jplayer.blue.monday.css', 
+            'css/player.css', 
+        ],
+        'output_filename': 'css/player.min?.css',
+    },
+    'simple': {
+        'source_filenames': ('css/simple.css',),
+        'output_filename': 'css/simple.min?.css',
+    },
 }
 
 COMPRESS_JS = {
 }
 
 COMPRESS_JS = {
-    'jquery': {
-        'source_filenames': ('js/jquery.js',),
-        'output_filename': 'js/jquery.min.js',
-    },
-    'all': {
-        'source_filenames': ('js/jquery.autocomplete.js', 'js/jquery.form.js',
+    'base': {
+        'source_filenames': (
+            'js/jquery.cycle.min.js',
+            'js/jquery.jqmodal.js',
+            'js/jquery.form.js',
             'js/jquery.countdown.js', 'js/jquery.countdown-pl.js',
             'js/jquery.countdown-de.js', 'js/jquery.countdown-uk.js',
             'js/jquery.countdown-es.js', 'js/jquery.countdown-lt.js',
             'js/jquery.countdown-ru.js', 'js/jquery.countdown-fr.js',
             'js/jquery.countdown.js', 'js/jquery.countdown-pl.js',
             'js/jquery.countdown-de.js', 'js/jquery.countdown-uk.js',
             'js/jquery.countdown-es.js', 'js/jquery.countdown-lt.js',
             'js/jquery.countdown-ru.js', 'js/jquery.countdown-fr.js',
-            'js/jquery.cycle.min.js',
-            'js/jquery.jqmodal.js', 'js/jquery.labelify.js', 'js/catalogue.js',
+
+            'js/jquery-ui-1.8.16.custom.min.js',
+
+            'js/locale.js',
+            'js/dialogs.js',
+            'js/sponsors.js',
+            'js/base.js',
+            'js/pdcounter.js',
+
+            'js/search.js',
             ),
             ),
-        'output_filename': 'js/all?.min.js',
+        'output_filename': 'js/base?.min.js',
+    },
+    'player': {
+        'source_filenames': [
+            'jplayer/jquery.jplayer.min.js', 
+            'jplayer/jplayer.playlist.min.js', 
+            'js/player.js', 
+        ],
+        'output_filename': 'js/player.min?.js',
     },
     'book': {
         'source_filenames': ('js/jquery.eventdelegation.js', 'js/jquery.scrollto.js', 'js/jquery.highlightfade.js', 'js/book.js',),
         'output_filename': 'js/book?.min.js',
     },
     'book': {
         'source_filenames': ('js/jquery.eventdelegation.js', 'js/jquery.scrollto.js', 'js/jquery.highlightfade.js', 'js/book.js',),
         'output_filename': 'js/book?.min.js',
+    },
+    'book_ie': {
+        'source_filenames': ('js/ierange-m2.js',),
+        'output_filename': 'js/book_ie?.min.js',
     }
     }
+
 }
 
 COMPRESS_VERSION = True
 COMPRESS_CSS_FILTERS = None
 
 THUMBNAIL_QUALITY = 95
 }
 
 COMPRESS_VERSION = True
 COMPRESS_CSS_FILTERS = None
 
 THUMBNAIL_QUALITY = 95
-THUMBNAIL_EXTENSION = 'png'
-
-THUMBNAIL_PROCESSORS = (
-    # Default processors
-    'sorl.thumbnail.processors.colorspace',
-    'sorl.thumbnail.processors.autocrop',
-    'sorl.thumbnail.processors.scale_and_crop',
-    'sorl.thumbnail.processors.filters',
-    # Custom processors
-    'sponsors.processors.add_padding',
-)
 
 TRANSLATION_REGISTRY = "wolnelektury.translation"
 
 
 TRANSLATION_REGISTRY = "wolnelektury.translation"
 
+
+# seconds until a changes appears in the changes api
+API_WAIT = 10
+
 # limit number of filtering tags
 MAX_TAG_LIST = 6
 
 NO_BUILD_EPUB = False
 # limit number of filtering tags
 MAX_TAG_LIST = 6
 
 NO_BUILD_EPUB = False
+NO_BUILD_TXT = False
+NO_BUILD_PDF = False
+NO_BUILD_MOBI = True
+NO_SEARCH_INDEX = False
+
+ALL_EPUB_ZIP = 'wolnelektury_pl_epub'
+ALL_PDF_ZIP = 'wolnelektury_pl_pdf'
+ALL_MOBI_ZIP = 'wolnelektury_pl_mobi'
+
+CATALOGUE_DEFAULT_LANGUAGE = 'pol'
+PUBLISH_PLAN_FEED = 'http://redakcja.wolnelektury.pl/documents/track/editor-proofreading/'
+
+PAGINATION_INVALID_PAGE_RAISES_404 = True
+
+import djcelery
+djcelery.setup_loader()
+
+BROKER_BACKEND = "djkombu.transport.DatabaseTransport"
+BROKER_HOST = "localhost"
+BROKER_PORT = 5672
+BROKER_USER = "guest"
+BROKER_PASSWORD = "guest"
+BROKER_VHOST = "/"
+
+CELERY_EAGER_PROPAGATES_EXCEPTIONS = True
+
+LOCALE_PATHS = [
+    path.join(PROJECT_DIR, '../locale-contrib')
+]
 
 # Load localsettings, if they exist
 try:
 
 # Load localsettings, if they exist
 try: