From cd9254b27d897fdf97313cb126528a958a819c84 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 31 Mar 2021 14:58:50 +0200 Subject: [PATCH] settings handler saves pype_path from system settings to global settings on save --- pype/settings/handlers.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/pype/settings/handlers.py b/pype/settings/handlers.py index 5a4e507547..0891ac39b5 100644 --- a/pype/settings/handlers.py +++ b/pype/settings/handlers.py @@ -8,6 +8,7 @@ from abc import ABCMeta, abstractmethod import six import pype from .constants import ( + GLOBAL_SETTINGS_KEY, SYSTEM_SETTINGS_KEY, PROJECT_SETTINGS_KEY, PROJECT_ANATOMY_KEY, @@ -401,6 +402,11 @@ class MongoSettingsHandler(SettingsHandler): self._prepare_project_settings_keys() return self._attribute_keys + def _prepare_global_settings(self, data): + if "general" not in data: + return {} + return data["general"].get("pype_path") or {} + def save_studio_settings(self, data): """Save studio overrides of system settings. @@ -412,8 +418,8 @@ class MongoSettingsHandler(SettingsHandler): Args: data(dict): Data of studio overrides with override metadata. """ + # Store system settings self.system_settings_cache.update_data(data) - self.collection.replace_one( { "type": SYSTEM_SETTINGS_KEY @@ -425,6 +431,22 @@ class MongoSettingsHandler(SettingsHandler): upsert=True ) + # Get global settings from system settings + global_settings = self._prepare_global_settings( + self.system_settings_cache.data + ) + # Store global settings + self.collection.replace_one( + { + "type": GLOBAL_SETTINGS_KEY + }, + { + "type": GLOBAL_SETTINGS_KEY, + "data": global_settings + }, + upsert=True + ) + def save_project_settings(self, project_name, overrides): """Save studio overrides of project settings.