|
|
|
|
@ -88,6 +88,7 @@ class Form(forms.BaseForm):
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def to_settings(self, data, settings):
|
|
|
|
|
import django_cache_url
|
|
|
|
|
import dj_database_url
|
|
|
|
|
import warnings
|
|
|
|
|
from functools import partial
|
|
|
|
|
@ -123,6 +124,8 @@ class Form(forms.BaseForm):
|
|
|
|
|
),
|
|
|
|
|
RuntimeWarning,
|
|
|
|
|
)
|
|
|
|
|
settings['DATABASES']['default'] = dj_database_url.parse(settings['DATABASE_URL'])
|
|
|
|
|
|
|
|
|
|
if not settings['CACHE_URL']:
|
|
|
|
|
settings['CACHE_URL'] = 'locmem://'
|
|
|
|
|
warnings.warn(
|
|
|
|
|
@ -131,8 +134,7 @@ class Form(forms.BaseForm):
|
|
|
|
|
),
|
|
|
|
|
RuntimeWarning,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
settings['DATABASES']['default'] = dj_database_url.parse(settings['DATABASE_URL'])
|
|
|
|
|
settings['CACHES']['default'] = django_cache_url.parse(settings['CACHE_URL'])
|
|
|
|
|
|
|
|
|
|
settings['ROOT_URLCONF'] = env('ROOT_URLCONF', 'urls')
|
|
|
|
|
settings['ADDON_URLS_I18N'].append('aldryn_django.i18n_urls')
|
|
|
|
|
@ -210,7 +212,6 @@ class Form(forms.BaseForm):
|
|
|
|
|
self.logging_settings(settings, env=env)
|
|
|
|
|
# Order matters, sentry settings rely on logging being configured.
|
|
|
|
|
self.sentry_settings(settings, env=env)
|
|
|
|
|
self.cache_settings(settings, env=env)
|
|
|
|
|
self.storage_settings_for_media(settings, env=env)
|
|
|
|
|
self.storage_settings_for_static(data, settings, env=env)
|
|
|
|
|
self.email_settings(data, settings, env=env)
|
|
|
|
|
@ -222,8 +223,6 @@ class Form(forms.BaseForm):
|
|
|
|
|
return settings
|
|
|
|
|
|
|
|
|
|
def domain_settings(self, data, settings, env):
|
|
|
|
|
from aldryn_addons.utils import boolean_ish
|
|
|
|
|
|
|
|
|
|
settings['ALLOWED_HOSTS'] = env('ALLOWED_HOSTS', ['localhost', '*'])
|
|
|
|
|
# will take a full config dict from ALDRYN_SITES_DOMAINS if available,
|
|
|
|
|
# otherwise fall back to constructing the dict from DOMAIN,
|
|
|
|
|
@ -233,8 +232,6 @@ class Form(forms.BaseForm):
|
|
|
|
|
settings['DOMAIN'] = domain
|
|
|
|
|
|
|
|
|
|
domains = env('ALDRYN_SITES_DOMAINS', {})
|
|
|
|
|
permanent_redirect = boolean_ish(env('ALDRYN_SITES_REDIRECT_PERMANENT', False))
|
|
|
|
|
|
|
|
|
|
if not domains and domain:
|
|
|
|
|
domain_aliases = [
|
|
|
|
|
d.strip()
|
|
|
|
|
@ -255,7 +252,6 @@ class Form(forms.BaseForm):
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
settings['ALDRYN_SITES_DOMAINS'] = domains
|
|
|
|
|
settings['ALDRYN_SITES_REDIRECT_PERMANENT'] = permanent_redirect
|
|
|
|
|
|
|
|
|
|
# This is ensured again by aldryn-sites, but we already do it here
|
|
|
|
|
# as we need the full list of domains later when configuring
|
|
|
|
|
@ -303,27 +299,8 @@ class Form(forms.BaseForm):
|
|
|
|
|
def server_settings(self, settings, env):
|
|
|
|
|
settings['PORT'] = env('PORT', 80)
|
|
|
|
|
settings['BACKEND_PORT'] = env('BACKEND_PORT', 8000)
|
|
|
|
|
settings['ENABLE_NGINX'] = env('ENABLE_NGINX', False)
|
|
|
|
|
settings['ENABLE_PAGESPEED'] = env(
|
|
|
|
|
'ENABLE_PAGESPEED',
|
|
|
|
|
env('PAGESPEED', False),
|
|
|
|
|
)
|
|
|
|
|
settings['STATICFILES_DEFAULT_MAX_AGE'] = env(
|
|
|
|
|
'STATICFILES_DEFAULT_MAX_AGE',
|
|
|
|
|
# Keep BROWSERCACHE_MAX_AGE for backwards compatibility
|
|
|
|
|
env('BROWSERCACHE_MAX_AGE', 300),
|
|
|
|
|
)
|
|
|
|
|
settings['NGINX_CONF_PATH'] = env('NGINX_CONF_PATH')
|
|
|
|
|
settings['NGINX_PROCFILE_PATH'] = env('NGINX_PROCFILE_PATH')
|
|
|
|
|
settings['PAGESPEED_ADMIN_HTPASSWD_PATH'] = env(
|
|
|
|
|
'PAGESPEED_ADMIN_HTPASSWD_PATH',
|
|
|
|
|
os.path.join(
|
|
|
|
|
os.path.dirname(settings['NGINX_CONF_PATH']),
|
|
|
|
|
'pagespeed_admin.htpasswd',
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
settings['PAGESPEED_ADMIN_USER'] = env('PAGESPEED_ADMIN_USER')
|
|
|
|
|
settings['PAGESPEED_ADMIN_PASSWORD'] = env('PAGESPEED_ADMIN_PASSWORD')
|
|
|
|
|
'STATICFILES_DEFAULT_MAX_AGE', 300)
|
|
|
|
|
settings['DJANGO_WEB_WORKERS'] = env('DJANGO_WEB_WORKERS', 3)
|
|
|
|
|
settings['DJANGO_WEB_MAX_REQUESTS'] = env('DJANGO_WEB_MAX_REQUESTS', 500)
|
|
|
|
|
settings['DJANGO_WEB_TIMEOUT'] = env('DJANGO_WEB_TIMEOUT', 120)
|
|
|
|
|
@ -382,18 +359,16 @@ class Form(forms.BaseForm):
|
|
|
|
|
|
|
|
|
|
if sentry_dsn:
|
|
|
|
|
settings['INSTALLED_APPS'].append('raven.contrib.django')
|
|
|
|
|
settings['RAVEN_CONFIG'] = {'dsn': sentry_dsn}
|
|
|
|
|
settings['RAVEN_CONFIG'] = {
|
|
|
|
|
'dsn': sentry_dsn,
|
|
|
|
|
'release': env('GIT_COMMIT', 'develop'),
|
|
|
|
|
'environment': env('STAGE', 'local'),
|
|
|
|
|
}
|
|
|
|
|
settings['LOGGING']['handlers']['sentry'] = {
|
|
|
|
|
'level': 'ERROR',
|
|
|
|
|
'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler',
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
def cache_settings(self, settings, env):
|
|
|
|
|
import django_cache_url
|
|
|
|
|
cache_url = env('CACHE_URL')
|
|
|
|
|
if cache_url:
|
|
|
|
|
settings['CACHES']['default'] = django_cache_url.parse(cache_url)
|
|
|
|
|
|
|
|
|
|
def storage_settings_for_media(self, settings, env):
|
|
|
|
|
import yurl
|
|
|
|
|
from aldryn_django.storage import parse_storage_url
|
|
|
|
|
@ -492,14 +467,32 @@ class Form(forms.BaseForm):
|
|
|
|
|
def i18n_settings(self, data, settings, env):
|
|
|
|
|
settings['ALL_LANGUAGES'] = list(settings['LANGUAGES'])
|
|
|
|
|
settings['ALL_LANGUAGES_DICT'] = dict(settings['ALL_LANGUAGES'])
|
|
|
|
|
languages = [
|
|
|
|
|
(code, settings['ALL_LANGUAGES_DICT'][code])
|
|
|
|
|
for code in json.loads(data['languages'])
|
|
|
|
|
]
|
|
|
|
|
settings['LANGUAGE_CODE'] = languages[0][0]
|
|
|
|
|
|
|
|
|
|
settings['USE_L10N'] = True
|
|
|
|
|
settings['USE_I18N'] = True
|
|
|
|
|
settings['LANGUAGES'] = languages
|
|
|
|
|
|
|
|
|
|
def language_codes_to_tuple(codes):
|
|
|
|
|
return [
|
|
|
|
|
(code, settings['ALL_LANGUAGES_DICT'][code])
|
|
|
|
|
for code in codes
|
|
|
|
|
]
|
|
|
|
|
langs_from_env = env('LANGUAGES', None)
|
|
|
|
|
lang_codes_from_env = env('LANGUAGE_CODES', None)
|
|
|
|
|
langs_from_form = json.loads(data['languages'])
|
|
|
|
|
|
|
|
|
|
if langs_from_env:
|
|
|
|
|
settings['LANGUAGES'] = langs_from_env
|
|
|
|
|
elif lang_codes_from_env:
|
|
|
|
|
settings['LANGUAGES'] = language_codes_to_tuple(lang_codes_from_env)
|
|
|
|
|
else:
|
|
|
|
|
settings['LANGUAGES'] = language_codes_to_tuple(langs_from_form)
|
|
|
|
|
|
|
|
|
|
lang_code_from_env = env('LANGUAGE_CODE', None)
|
|
|
|
|
if lang_code_from_env:
|
|
|
|
|
settings['LANGUAGE_CODE'] = lang_code_from_env
|
|
|
|
|
else:
|
|
|
|
|
settings['LANGUAGE_CODE'] = settings['LANGUAGES'][0][0]
|
|
|
|
|
|
|
|
|
|
settings['LOCALE_PATHS'] = [
|
|
|
|
|
os.path.join(settings['BASE_DIR'], 'locale'),
|
|
|
|
|
]
|
|
|
|
|
|