From 4d8e603ae6ff19bee005f6d9caf4f60dc212a126 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Sun, 23 Sep 2018 15:14:55 +0200 Subject: [PATCH] multitenant: add loader to get settings from theme (#26636) --- hobo/multitenant/settings_loaders.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/hobo/multitenant/settings_loaders.py b/hobo/multitenant/settings_loaders.py index ec3c061..66614b3 100644 --- a/hobo/multitenant/settings_loaders.py +++ b/hobo/multitenant/settings_loaders.py @@ -7,6 +7,8 @@ from django.conf import settings from django.utils.encoding import smart_bytes from django.utils.six.moves.urllib import parse as urlparse +from hobo.theme.utils import get_theme + class FileBaseSettingsLoader(object): """ @@ -172,6 +174,25 @@ class CORSSettings(FileBaseSettingsLoader): tenant_settings.CORS_ORIGIN_WHITELIST = whitelist +class ThemeSettings(object): + def get_new_time(self, tenant): + return 0 + + def update_settings(self, tenant_settings, tenant): + theme_id = tenant_settings.TEMPLATE_VARS.get('theme') + if not theme_id: + return + theme = get_theme(theme_id) + if not theme: + return + module_name = settings.SETTINGS_MODULE.split('.')[0] + module_settings = theme.get('settings', {}).get(module_name) + if not module_settings: + return + for key, val in module_settings.items(): + setattr(tenant_settings, key, val) + + class SharedThemeSettings(FileBaseSettingsLoader): FILENAME = 'hobo.json' -- 2.19.0