From 545b2710fd14871c9ec40a1eb38be6da251a2077 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 3 May 2021 11:42:29 +0200 Subject: [PATCH] use global settings on load of system settings --- openpype/settings/handlers.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/openpype/settings/handlers.py b/openpype/settings/handlers.py index 3f9322920a..70dd172e46 100644 --- a/openpype/settings/handlers.py +++ b/openpype/settings/handlers.py @@ -511,11 +511,27 @@ class MongoSettingsHandler(SettingsHandler): def get_studio_system_settings_overrides(self): """Studio overrides of system settings.""" if self.system_settings_cache.is_outdated: - document = self.collection.find_one({ - "type": SYSTEM_SETTINGS_KEY + system_settings_document = None + globals_document = None + docs = self.collection.find({ + # Use `$or` as system settings may have more filters in future + "$or": [ + {"type": GLOBAL_SETTINGS_KEY}, + {"type": SYSTEM_SETTINGS_KEY}, + ] }) + for doc in docs: + doc_type = doc["type"] + if doc_type == GLOBAL_SETTINGS_KEY: + globals_document = doc + elif doc_type == SYSTEM_SETTINGS_KEY: + system_settings_document = doc - self.system_settings_cache.update_from_document(document) + merged_document = self._apply_global_settings( + system_settings_document, globals_document + ) + + self.system_settings_cache.update_from_document(merged_document) return self.system_settings_cache.data_copy() def _get_project_settings_overrides(self, project_name):