forked from beba/foerderbarometer
165 lines
5.0 KiB
Python
165 lines
5.0 KiB
Python
import os
|
|
|
|
from pathlib import Path
|
|
|
|
from dotenv import load_dotenv
|
|
|
|
from input.utils.settings import env, password_validators
|
|
|
|
BASE_DIR = Path(__file__).parents[1]
|
|
|
|
load_dotenv(BASE_DIR / '.env')
|
|
|
|
DEBUG = env('DEBUG', False)
|
|
|
|
SECRET_KEY = env('SECRET_KEY')
|
|
|
|
ALLOWED_HOSTS = ['*']
|
|
|
|
HOST = env('HOST', 'http://localhost:8000')
|
|
|
|
INSTALLED_APPS = [
|
|
'input.apps.InputConfig',
|
|
'django.contrib.admin',
|
|
'django.contrib.auth',
|
|
'django.contrib.contenttypes',
|
|
'django.contrib.sessions',
|
|
'django.contrib.messages',
|
|
'django.contrib.staticfiles',
|
|
'formtools',
|
|
]
|
|
|
|
MIDDLEWARE = [
|
|
'django.middleware.security.SecurityMiddleware',
|
|
'whitenoise.middleware.WhiteNoiseMiddleware',
|
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
|
'django.middleware.locale.LocaleMiddleware',
|
|
'django.middleware.common.CommonMiddleware',
|
|
'django.middleware.csrf.CsrfViewMiddleware',
|
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
|
'django.contrib.messages.middleware.MessageMiddleware',
|
|
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
|
]
|
|
|
|
ROOT_URLCONF = 'foerderbarometer.urls'
|
|
|
|
DJANGO_TEMPLATES = {
|
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
|
'DIRS': [],
|
|
'APP_DIRS': True,
|
|
'OPTIONS': {
|
|
'context_processors': [
|
|
'django.template.context_processors.debug',
|
|
'django.template.context_processors.request',
|
|
'django.contrib.auth.context_processors.auth',
|
|
'django.contrib.messages.context_processors.messages',
|
|
],
|
|
},
|
|
}
|
|
|
|
TEMPLATES = [DJANGO_TEMPLATES]
|
|
|
|
WSGI_APPLICATION = 'foerderbarometer.wsgi.application'
|
|
|
|
DATABASE_ENGINE = env('DATABASE_ENGINE', 'mysql')
|
|
|
|
DATABASE_SQLITE = {
|
|
'ENGINE': 'django.db.backends.sqlite3',
|
|
'NAME': BASE_DIR / 'db.sqlite3',
|
|
}
|
|
|
|
DATABASE_MYSQL = {
|
|
'ENGINE': 'django.db.backends.mysql',
|
|
'NAME': env('DATABASE_NAME', 'fdb'),
|
|
'USER': env('DATABASE_USER', 'fdb'),
|
|
'PASSWORD': env('DATABASE_PASSWORD'),
|
|
'HOST': env('DATABASE_HOST', 'localhost'),
|
|
'PORT': env('DATABASE_PORT', 3306),
|
|
'OPTIONS': {
|
|
'charset' : 'utf8',
|
|
'use_unicode' : True,
|
|
'init_command': 'SET '
|
|
'storage_engine=INNODB,'
|
|
'character_set_connection=utf8,'
|
|
'collation_connection=utf8_bin'
|
|
},
|
|
'TEST_CHARSET': 'utf8',
|
|
'TEST_COLLATION': 'utf8_general_ci',
|
|
}
|
|
|
|
if DATABASE_ENGINE == 'mysql':
|
|
DATABASE_DEFAULT = DATABASE_MYSQL
|
|
else:
|
|
DATABASE_DEFAULT = DATABASE_SQLITE
|
|
|
|
DATABASES = {
|
|
'default': DATABASE_DEFAULT,
|
|
}
|
|
|
|
EMAIL_BACKEND = env('EMAIL_BACKEND', 'console')
|
|
|
|
if EMAIL_BACKEND == 'smtp':
|
|
EMAIL_HOST = env('EMAIL_HOST', 'email.wikimedia.de')
|
|
EMAIL_PORT = env('EMAIL_PORT', 587)
|
|
EMAIL_USE_TLS = env('EMAIL_USE_TLS', True)
|
|
EMAIL_HOST_USER = env('EMAIL_HOST_USER')
|
|
EMAIL_HOST_PASSWORD = env('EMAIL_HOST_PASSWORD')
|
|
|
|
EMAIL_BACKEND = f'django.core.mail.backends.{EMAIL_BACKEND}.EmailBackend'
|
|
EMAIL_URL_PREFIX = env('EMAIL_URL_PREFIX', HOST)
|
|
|
|
AUTH_PASSWORD_VALIDATORS = password_validators(
|
|
'UserAttributeSimilarityValidator',
|
|
'MinimumLengthValidator',
|
|
'CommonPasswordValidator',
|
|
'NumericPasswordValidator',
|
|
)
|
|
|
|
USE_I18N = True
|
|
USE_L10N = True
|
|
LANGUAGE_CODE = env('LANGUAGE_CODE', 'en-us')
|
|
|
|
USE_TZ = True
|
|
TIME_ZONE = env('TIME_ZONE', 'UTC')
|
|
|
|
STATIC_ROOT = BASE_DIR / 'staticfiles'
|
|
STATIC_URL = '/static/'
|
|
|
|
if OAUTH_ENABLED := env('OAUTH_ENABLED', not DEBUG):
|
|
MIDDLEWARE += ['input.middleware.oauth.OAuthMiddleware']
|
|
|
|
OAUTH_CLIENT_NAME = env('OAUTH_CLIENT_NAME')
|
|
|
|
OAUTH_CLIENT = {
|
|
'client_id': env('OAUTH_CLIENT_ID'),
|
|
'client_secret': env('OAUTH_CLIENT_SECRET'),
|
|
'access_token_url': 'https://meta.wikimedia.org/w/rest.php/oauth2/access_token',
|
|
'authorize_url': 'https://meta.wikimedia.org/w/rest.php/oauth2/authorize',
|
|
'api_base_url': 'https://meta.wikimedia.org/w/rest.php/oauth2/resource',
|
|
'redirect_uri': env('OAUTH_REDIRECT_URI', f'{HOST}/oauth/callback'),
|
|
'client_kwargs': {
|
|
'scope': 'basic',
|
|
'token_placement': 'header'
|
|
},
|
|
'userinfo_endpoint': 'resource/profile',
|
|
}
|
|
|
|
OAUTH_URL_WHITELISTS = ['/admin']
|
|
|
|
OAUTH_COOKIE_SESSION_ID = 'sso_session_id'
|
|
|
|
IF_EMAIL = env('IF_EMAIL', 'community@wikimedia.de')
|
|
|
|
SURVEY_EMAIL = env('SURVEY_EMAIL', 'sandro.halank@wikimedia.de')
|
|
SURVEY_PREFIX = env('SURVEY_PREFIX', 'https://wikimedia.sslsurvey.de/Foerderbarometer/?')
|
|
|
|
DATAPROTECTION = 'https://www.wikimedia.de/datenschutz/#datenerfassung'
|
|
FOERDERRICHTLINIEN = 'https://de.wikipedia.org/wiki/Wikipedia:Wikimedia_Deutschland/Richtlinie_zur_Förderung_der_Communitys'
|
|
|
|
NUTZUNGSBEDINGUNGEN = 'static/input/nutzungsbedingungen.html'
|
|
NUTZUNGSBEDINGUNGEN_EMAIL_SERVICE = 'static/input/nutzungsbedingungen-mail.pdf'
|
|
NUTZUNGSBEDINGUNGEN_MAILINGLISTEN = 'static/input/nutzungsbedingungen-mailinglisten.pdf'
|
|
NUTZUNGSBEDINGUNGEN_LITERATURSTIPENDIUM = 'static/input/nutzungsbedingungen-literaturstipendium.pdf'
|
|
NUTZUNGSBEDINGUNGEN_OTRS = 'static/input/2025_Nutzungsvereinbarung_OTRS.docx.pdf'
|
|
NUTZUNGSBEDINGUNGEN_VISITENKARTEN = 'static/input/nutzungsbedingungen-visitenkarten.pdf'
|