# -*- coding: utf-8 -*- """ Django common settings for cof project. Everything which is supposed to be identical between the production server and the local development server should be here. """ import os # Database credentials try: from .secret import DBNAME, DBUSER, DBPASSWD except ImportError: # On the local development VM, theses credentials are in the environment DBNAME = os.environ["DBNAME"] DBUSER = os.environ["DBUSER"] DBPASSWD = os.environ["DBPASSWD"] except KeyError: raise RuntimeError("Secrets missing") # Other secrets try: from .secret import ( SECRET_KEY, RECAPTCHA_PUBLIC_KEY, RECAPTCHA_PRIVATE_KEY, ADMINS, REDIS_PASSWD, REDIS_DB, REDIS_HOST, REDIS_PORT ) except ImportError: raise RuntimeError("Secrets missing") BASE_DIR = os.path.dirname( os.path.dirname(os.path.dirname(os.path.abspath(__file__))) ) # Application definition INSTALLED_APPS = [ 'gestioncof', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'grappelli', 'django.contrib.admin', 'django.contrib.admindocs', 'bda', 'autocomplete_light', 'captcha', 'django_cas_ng', 'bootstrapform', 'kfet', 'kfet.open', 'channels', 'widget_tweaks', 'custommail', 'djconfig', ] MIDDLEWARE_CLASSES = [ 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'kfet.middleware.KFetAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'djconfig.middleware.DjConfigMiddleware', ] ROOT_URLCONF = 'cof.urls' 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', 'django.core.context_processors.i18n', 'django.core.context_processors.media', 'django.core.context_processors.static', 'djconfig.context_processors.config', 'gestioncof.shared.context_processor', 'kfet.context_processors.auth', 'kfet.context_processors.config', ], }, }, ] DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': DBNAME, 'USER': DBUSER, 'PASSWORD': DBPASSWD, 'HOST': os.environ.get('DBHOST', 'localhost'), } } # Internationalization # https://docs.djangoproject.com/en/1.8/topics/i18n/ LANGUAGE_CODE = 'fr-fr' TIME_ZONE = 'Europe/Paris' USE_I18N = True USE_L10N = True USE_TZ = True # Various additional settings SITE_ID = 1 GRAPPELLI_ADMIN_HEADLINE = "GestioCOF" GRAPPELLI_ADMIN_TITLE = "GestioCOF" MAIL_DATA = { 'petits_cours': { 'FROM': "Le COF ", 'BCC': "archivescof@gmail.com", 'REPLYTO': "cof@ens.fr"}, 'rappels': { 'FROM': 'Le BdA ', 'REPLYTO': 'Le BdA '}, 'revente': { 'FROM': 'BdA-Revente ', 'REPLYTO': 'BdA-Revente '}, } LOGIN_URL = "cof-login" LOGIN_REDIRECT_URL = "home" CAS_SERVER_URL = 'https://cas.eleves.ens.fr/' CAS_IGNORE_REFERER = True CAS_REDIRECT_URL = '/' CAS_EMAIL_FORMAT = "%s@clipper.ens.fr" AUTHENTICATION_BACKENDS = ( 'django.contrib.auth.backends.ModelBackend', 'gestioncof.shared.COFCASBackend', 'kfet.backends.GenericTeamBackend', ) RECAPTCHA_USE_SSL = True # Cache settings CACHES = { 'default': { 'BACKEND': 'redis_cache.RedisCache', 'LOCATION': 'redis://:{passwd}@{host}:{port}/db' .format(passwd=REDIS_PASSWD, host=REDIS_HOST, port=REDIS_PORT, db=REDIS_DB), } } # Channels settings CHANNEL_LAYERS = { "default": { "BACKEND": "asgi_redis.RedisChannelLayer", "CONFIG": { "hosts": [( "redis://:{passwd}@{host}:{port}/{db}" .format(passwd=REDIS_PASSWD, host=REDIS_HOST, port=REDIS_PORT, db=REDIS_DB) )], }, "ROUTING": "cof.routing.routing", } } FORMAT_MODULE_PATH = 'cof.locale'