Preview access for book funders.
[wolnelektury.git] / src / wolnelektury / settings / __init__.py
index ac36651..f8451cc 100644 (file)
@@ -1,5 +1,11 @@
-# -*- coding: utf-8 -*-
+# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
+#
 # Django settings for wolnelektury project.
+import sentry_sdk
+from sentry_sdk.integrations.django import DjangoIntegration
+
+from .apps import *
 from .basic import *
 from .auth import *
 from .cache import *
@@ -10,101 +16,43 @@ from .locale import *
 from .static import *
 from .paths import *
 
+# Load localsettings, if they exist
+try:
+    from wolnelektury.localsettings import *
+except ImportError:
+    pass
 
-MIDDLEWARE_CLASSES = [
-    'django.middleware.csrf.CsrfViewMiddleware',
-    'ssify.middleware.SsiMiddleware',
-    'django.middleware.cache.UpdateCacheMiddleware',
-    'ssify.middleware.PrepareForCacheMiddleware',
-    'django.middleware.common.CommonMiddleware',
-    'django.contrib.sessions.middleware.SessionMiddleware',
-    'django.contrib.auth.middleware.AuthenticationMiddleware',
-    'django.contrib.admindocs.middleware.XViewMiddleware',
-    'fnp_django_pagination.middleware.PaginationMiddleware',
-    'ssify.middleware.LocaleMiddleware',
-    'maintenancemode.middleware.MaintenanceModeMiddleware',
-    'django.middleware.common.CommonMiddleware',
-    'django.contrib.messages.middleware.MessageMiddleware',
-    'fnpdjango.middleware.SetRemoteAddrFromXRealIP',
-    'django.middleware.cache.FetchFromCacheMiddleware',
-]
-
-ROOT_URLCONF = 'wolnelektury.urls'
 
-# These are the ones we should test.
-INSTALLED_APPS_OUR = [
-    'wolnelektury',
-    # our
-    'ajaxable',
-    'api',
-    'catalogue',
-    'chunks',
-    'dictionary',
-    'infopages',
-    'lesmianator',
-    'newtagging',
-    'opds',
-    'pdcounter',
-    'reporting',
-    'sponsors',
-    'stats',
-    'suggest',
-    'picture',
-    'social',
-    'waiter',
-    'search',
-    'oai',
-    'funding',
-    'polls',
-    'libraries',
-    'newsletter',
-    'contact',
-]
+# If Celery broker not configured, enable always-eager mode.
+try:
+    CELERY_BROKER_URL
+except NameError:
+    CELERY_TASK_ALWAYS_EAGER = True
 
-GETPAID_BACKENDS = (
-    'getpaid.backends.payu',
-)
 
-INSTALLED_APPS_CONTRIB = [
-    # Should be before django.contrib.admin
-    'modeltranslation',
+# If SEARCH_INDEX not configured, disable the search.
+try:
+    SOLR
+except NameError:
+    NO_SEARCH_INDEX = True
+else:
+    NO_SEARCH_INDEX = False
 
-    # external
-    'django.contrib.auth',
-    'django.contrib.contenttypes',
-    'django.contrib.sessions',
-    'django.contrib.sites',
-    'django.contrib.admin',
-    'django.contrib.admindocs',
-    'django.contrib.staticfiles',
-    'fnp_django_pagination',
-    'pipeline',
-    'piston',
-    'piwik',
-    'sorl.thumbnail',
-    'kombu.transport.django',
-    'honeypot',
-    'fnpdjango',
-    'getpaid',
-    'getpaid.backends.payu',
-    'ssify',
-    'django_extensions',
-    'raven.contrib.django.raven_compat',
 
-    # allauth stuff
-    'uni_form',
-    'allauth',
-    'allauth.account',
-    'allauth.socialaccount',
-    'allauth.socialaccount.providers.openid',
-    'allauth.socialaccount.providers.facebook',
-    # 'allauth.socialaccount.providers.twitter',
-    ]
+try:
+    SENTRY_DSN
+except NameError:
+    pass
+else:
+    sentry_sdk.init(
+        dsn=SENTRY_DSN,
+        integrations=[DjangoIntegration()]
+    )
 
-INSTALLED_APPS = INSTALLED_APPS_OUR + INSTALLED_APPS_CONTRIB
 
-# Load localsettings, if they exist
+# Dummy secret key for development.
 try:
-    from wolnelektury.localsettings import *
-except ImportError:
-    pass
+    SECRET_KEY
+except NameError:
+    if DEBUG:
+        SECRET_KEY = 'not-a-secret-key'