Merge pull request #1237 from pypeclub/feature/global_settings

Pype global settings
This commit is contained in:
Milan Kolar 2021-04-01 10:11:13 +02:00 committed by GitHub
commit a6dc83aa13
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 96 additions and 74 deletions

View file

@ -15,6 +15,7 @@ METADATA_KEYS = (
)
# File where studio's system overrides are stored
GLOBAL_SETTINGS_KEY = "global_settings"
SYSTEM_SETTINGS_KEY = "system_settings"
PROJECT_SETTINGS_KEY = "project_settings"
PROJECT_ANATOMY_KEY = "project_anatomy"

View file

@ -1,11 +1,6 @@
{
"studio_name": "Studio name",
"studio_code": "stu",
"studio_soft": {
"windows": "convert from \"STUDIO_SOFT\"",
"darwin": "",
"linux": ""
},
"environment": {
"FFMPEG_PATH": {
"windows": "{PYPE_ROOT}/vendor/bin/ffmpeg_exec/windows/bin",
@ -19,5 +14,10 @@
"PYPE_OCIO_CONFIG"
]
}
},
"pype_path": {
"windows": [],
"darwin": [],
"linux": []
}
}

View file

@ -19,20 +19,20 @@
"type": "splitter"
},
{
"key": "studio_soft",
"type": "path",
"label": "Studio Software Location",
"multiplatform": true,
"multipath": false
"key": "environment",
"label": "Environment",
"type": "raw-json",
"env_group_key": "global"
},
{
"type": "splitter"
},
{
"key": "environment",
"label": "Environment",
"type": "raw-json",
"env_group_key": "global"
"type": "path",
"key": "pype_path",
"label": "Pype Path",
"multiplatform": true,
"multipath": true
}
]
}

View file

@ -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,
@ -224,6 +225,13 @@ class MongoSettingsHandler(SettingsHandler):
self._prepare_project_settings_keys()
return self._attribute_keys
def _prepare_global_settings(self, data):
output = {}
# Add "pype_path" key to global settings if is set
if "general" in data and "pype_path" in data["general"]:
output["pype_path"] = data["general"]["pype_path"]
return output
def save_studio_settings(self, data):
"""Save studio overrides of system settings.
@ -235,8 +243,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
@ -248,6 +256,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.