diff --git a/addons/aldryn-django/aldryn_config.py b/addons/aldryn-django/aldryn_config.py index d0cbf7b..ce2e926 100644 --- a/addons/aldryn-django/aldryn_config.py +++ b/addons/aldryn-django/aldryn_config.py @@ -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'), ] diff --git a/requirements.in b/requirements.in index 51ac228..d81a863 100644 --- a/requirements.in +++ b/requirements.in @@ -1,6 +1,6 @@ # # Warning: text inside the INSTALLED_ADDONS tags is auto-generated. Manual changes will be overwritten. https://control.divio.com/api/v1/apps/serve/aldryn-addons/1.0.2/24f5d1c8-66fe-43b2-a540-17d61045a72b/aldryn-addons-1.0.2.tar.gz#egg=aldryn-addons==1.0.2 -https://control.divio.com/api/v1/apps/serve/aldryn-django/1.10.8.4/2e6f0c94-2f00-42dc-9db2-9f15727b6616/aldryn-django-1.10.8.4.tar.gz#egg=aldryn-django==1.10.8.4 +https://control.divio.com/api/v1/apps/serve/aldryn-django/1.11.11.1/002e1533-c0b2-41c6-9384-60594e7afeed/aldryn-django-1.11.11.1.tar.gz#egg=aldryn-django==1.11.11.1 https://control.divio.com/api/v1/apps/serve/aldryn-sso/1.1.16/dbe0c45a-c981-4beb-8624-b0d2c4196aa0/aldryn-sso-1.1.16.tar.gz#egg=aldryn-sso==1.1.16 https://control.divio.com/api/v1/apps/serve/aldryn-django-cms/3.5.2.2/88bf7991-90a3-4c98-acf5-42c3fa14e2a4/aldryn-django-cms-3.5.2.2.tar.gz#egg=aldryn-django-cms==3.5.2.2 https://control.divio.com/api/v1/apps/serve/aldryn-forms/3.0.3/d6a05ca0-134c-495f-98c0-0faaf3bdfd3b/aldryn-forms-3.0.3.tar.gz#egg=aldryn-forms==3.0.3