From fbcd424474ec46a74a04a60fd2b7645dba5da9dd Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Sat, 16 Nov 2019 02:47:36 -0400 Subject: [PATCH] Add MediaBootstrapSetting class Used for settings that depend on the value of the MEDIA_ROOT setting. Signed-off-by: Roberto Rosario --- mayan/apps/smart_settings/utils.py | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/mayan/apps/smart_settings/utils.py b/mayan/apps/smart_settings/utils.py index 90fcdb66eb..8eae744581 100644 --- a/mayan/apps/smart_settings/utils.py +++ b/mayan/apps/smart_settings/utils.py @@ -193,18 +193,32 @@ class FilesystemBootstrapSetting(BaseSetting): return self.load_environment_value() -# FilesystemBootstrapSetting setting +class MediaBootstrapSetting(FilesystemBootstrapSetting): + def get_default_value(self): + """ + The default value of this setting class is not static but calculated. + """ + return os.path.join( + self.namespace.get_setting_value(name='MEDIA_ROOT'), + *self.path_parts + ) + + +# FilesystemBootstrapSetting settings SettingNamespaceSingleton.register_setting( - name='CONFIGURATION_FILEPATH', klass=FilesystemBootstrapSetting, + name='CONFIGURATION_FILEPATH', klass=MediaBootstrapSetting, kwargs={ - 'critical': True, 'path_parts': ('media', CONFIGURATION_FILENAME,) + 'critical': True, 'path_parts': (CONFIGURATION_FILENAME,) } ) + +# MediaBootstrapSetting settings + SettingNamespaceSingleton.register_setting( - name='CONFIGURATION_LAST_GOOD_FILEPATH', klass=FilesystemBootstrapSetting, + name='CONFIGURATION_LAST_GOOD_FILEPATH', klass=MediaBootstrapSetting, kwargs={ - 'critical': True, 'path_parts': ('media', CONFIGURATION_LAST_GOOD_FILENAME,) + 'critical': True, 'path_parts': (CONFIGURATION_LAST_GOOD_FILENAME,) } ) SettingNamespaceSingleton.register_setting(