From 06ea62edb65100ce2e45449ffe1a183cbc585226 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 28 Dec 2020 12:01:20 +0100 Subject: [PATCH 01/10] custom attributes custom attributes has template with security roles --- .../template_custom_attribute.json | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 pype/tools/settings/settings/gui_schemas/system_schema/module_settings/template_custom_attribute.json diff --git a/pype/tools/settings/settings/gui_schemas/system_schema/module_settings/template_custom_attribute.json b/pype/tools/settings/settings/gui_schemas/system_schema/module_settings/template_custom_attribute.json new file mode 100644 index 0000000000..57ada0b4a6 --- /dev/null +++ b/pype/tools/settings/settings/gui_schemas/system_schema/module_settings/template_custom_attribute.json @@ -0,0 +1,21 @@ +[ + { + "key": "{key}", + "label": "{key}", + "type": "dict", + "children": [ + { + "key": "write_security_role", + "label": "Write roles", + "type": "list", + "object_type": "text" + }, + { + "key": "read_security_role", + "label": "Read roles", + "type": "list", + "object_type": "text" + } + ] + } +] From dfb75966866e8c596b122d778e782b945702ad9c Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 28 Dec 2020 12:01:48 +0100 Subject: [PATCH 02/10] modifiable custom attributes are not set with modifiable dictionary but are predefined --- .../module_settings/schema_ftrack.json | 108 +++++++++--------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/pype/tools/settings/settings/gui_schemas/system_schema/module_settings/schema_ftrack.json b/pype/tools/settings/settings/gui_schemas/system_schema/module_settings/schema_ftrack.json index ec4f415a12..9efc8a31ec 100644 --- a/pype/tools/settings/settings/gui_schemas/system_schema/module_settings/schema_ftrack.json +++ b/pype/tools/settings/settings/gui_schemas/system_schema/module_settings/schema_ftrack.json @@ -87,66 +87,66 @@ "type": "dict", "children": [ { - "type": "dict-modifiable", - "label": "Show Attributes", + "type": "dict", "key": "show", - "object_type": { - "type": "dict", - "children": [ - { - "key": "default", - "label": "default", - "type": "text" - }, - { - "key": "write_security_role", - "label": "write", - "type": "list", - "object_type": { - "type": "text" + "label": "Project Custom attributes", + "children": [ + { + "type": "schema_template", + "name": "template_custom_attribute", + "template_data": [ + { + "key": "avalon_auto_sync" + }, + { + "key": "library_project" } - }, - { - "key": "read_security_role", - "label": "Read", - "type": "list", - "object_type": { - "type": "text" - } - } - ] - } + ] + } + ] }, { - "type": "dict-modifiable", - "label": "Hierarchical Attributes", + "type": "dict", "key": "is_hierarchical", - "object_type": { - "type": "dict", - "children": [ - { - "key": "default", - "label": "default", - "type": "text" - }, - { - "key": "write_security_role", - "label": "write", - "type": "list", - "object_type": { - "type": "text" + "label": "Hierarchical Attributes", + "children": [ + { + "type": "schema_template", + "name": "template_custom_attribute", + "template_data": [ + { + "key": "fps" + }, + { + "key": "frameStart" + }, + { + "key": "frameEnd" + }, + { + "key": "clipIn" + }, + { + "key": "clipOut" + }, + { + "key": "handleStart" + }, + { + "key": "handleEnd" + }, + { + "key": "resolutionWidth" + }, + { + "key": "resolutionHeight" + }, + { + "key": "pixelAspect" } - }, - { - "key": "read_security_role", - "label": "Read", - "type": "list", - "object_type": { - "type": "text" - } - } - ] - } + ] + } + ] } ] } From 5fd0eb0176f0920892a39dbecad25a4cff5ba324 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 28 Dec 2020 12:02:01 +0100 Subject: [PATCH 03/10] removed default values from custom attributes --- .../settings/defaults/system_settings/modules.json | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/pype/settings/defaults/system_settings/modules.json b/pype/settings/defaults/system_settings/modules.json index 0f4b0b37f3..7865d6f1f3 100644 --- a/pype/settings/defaults/system_settings/modules.json +++ b/pype/settings/defaults/system_settings/modules.json @@ -28,7 +28,6 @@ "custom_attributes": { "show": { "avalon_auto_sync": { - "default": "", "write_security_role": [ "API", "Administrator" @@ -39,7 +38,6 @@ ] }, "library_project": { - "default": "", "write_security_role": [ "API", "Administrator" @@ -52,52 +50,42 @@ }, "is_hierarchical": { "fps": { - "default": "25", "write_security_role": [], "read_security_role": [] }, "frameStart": { - "default": "", "write_security_role": [], "read_security_role": [] }, "frameEnd": { - "default": "", "write_security_role": [], "read_security_role": [] }, "clipIn": { - "default": "", "write_security_role": [], "read_security_role": [] }, "clipOut": { - "default": "", "write_security_role": [], "read_security_role": [] }, "handleStart": { - "default": "", "write_security_role": [], "read_security_role": [] }, "handleEnd": { - "default": "", "write_security_role": [], "read_security_role": [] }, "resolutionWidth": { - "default": "", "write_security_role": [], "read_security_role": [] }, "resolutionHeight": { - "default": "", "write_security_role": [], "read_security_role": [] }, "pixelAspect": { - "default": "", "write_security_role": [], "read_security_role": [] } @@ -153,4 +141,4 @@ "idle_manager": { "enabled": true } -} +} \ No newline at end of file From 329665afc24a6faaf5b2b4515717fa648ea88ebd Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 28 Dec 2020 12:02:36 +0100 Subject: [PATCH 04/10] removed dict-invisible from schemas --- .../system_schema/host_settings/schema_aftereffects.json | 2 +- .../gui_schemas/system_schema/host_settings/schema_tvpaint.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pype/tools/settings/settings/gui_schemas/system_schema/host_settings/schema_aftereffects.json b/pype/tools/settings/settings/gui_schemas/system_schema/host_settings/schema_aftereffects.json index 8134071ebb..4578e836b5 100644 --- a/pype/tools/settings/settings/gui_schemas/system_schema/host_settings/schema_aftereffects.json +++ b/pype/tools/settings/settings/gui_schemas/system_schema/host_settings/schema_aftereffects.json @@ -21,7 +21,7 @@ "env_group_key": "aftereffects" }, { - "type": "dict-invisible", + "type": "dict", "key": "variants", "children": [ { diff --git a/pype/tools/settings/settings/gui_schemas/system_schema/host_settings/schema_tvpaint.json b/pype/tools/settings/settings/gui_schemas/system_schema/host_settings/schema_tvpaint.json index 44d5a54b6a..b328e5cf79 100644 --- a/pype/tools/settings/settings/gui_schemas/system_schema/host_settings/schema_tvpaint.json +++ b/pype/tools/settings/settings/gui_schemas/system_schema/host_settings/schema_tvpaint.json @@ -21,7 +21,7 @@ "env_group_key": "tvpaint" }, { - "type": "dict-invisible", + "type": "dict", "key": "variants", "children": [ { From 8e2d3a490e629ab6ecba90d5a07b4ae1f2067d5c Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 28 Dec 2020 12:02:50 +0100 Subject: [PATCH 05/10] removed backwards compatibility for dict-invisible --- pype/tools/settings/settings/widgets/item_types.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pype/tools/settings/settings/widgets/item_types.py b/pype/tools/settings/settings/widgets/item_types.py index c5112473e6..ca970ab138 100644 --- a/pype/tools/settings/settings/widgets/item_types.py +++ b/pype/tools/settings/settings/widgets/item_types.py @@ -4121,7 +4121,6 @@ TypeToKlass.types["dict-modifiable"] = ModifiableDict # DEPRECATED - remove when removed from schemas TypeToKlass.types["splitter"] = SplitterWidget TypeToKlass.types["dict-item"] = DictWidget -TypeToKlass.types["dict-invisible"] = DictWidget # --------------------------------------------- TypeToKlass.types["dict"] = DictWidget TypeToKlass.types["path-widget"] = PathWidget From 9de0c3a0c54369e6cd856f6cdb40377a3a8c10c9 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 28 Dec 2020 12:32:35 +0100 Subject: [PATCH 06/10] changed variable names in custom attributes action --- .../actions/action_create_cust_attrs.py | 39 ++++++++++--------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/pype/modules/ftrack/actions/action_create_cust_attrs.py b/pype/modules/ftrack/actions/action_create_cust_attrs.py index a6601775f1..3c0d456e54 100644 --- a/pype/modules/ftrack/actions/action_create_cust_attrs.py +++ b/pype/modules/ftrack/actions/action_create_cust_attrs.py @@ -94,8 +94,8 @@ Example: "avalon_auto_sync": { "label": "Avalon auto-sync", "type": "boolean", - "write_security_role": ["API", "Administrator"], - "read_security_role": ["API", "Administrator"] + "write_security_roles": ["API", "Administrator"], + "read_security_roles": ["API", "Administrator"] } }, "is_hierarchical": { @@ -136,7 +136,11 @@ class CustomAttributes(BaseAction): required_keys = ("key", "label", "type") - presetable_keys = ("default", "write_security_role", "read_security_role") + presetable_keys = ( + "default", + "write_security_roles", + "read_security_roles" + ) hierarchical_key = "is_hierarchical" type_posibilities = ( @@ -211,17 +215,17 @@ class CustomAttributes(BaseAction): self.groups = {} self.ftrack_settings = get_system_settings()["modules"]["ftrack"] - self.attrs_presets = self.prepare_attribute_pressets() + self.attrs_settings = self.prepare_attribute_settings() - def prepare_attribute_pressets(self): + def prepare_attribute_settings(self): output = {} - attr_presets = self.ftrack_settings["custom_attributes"] - for entity_type, preset in attr_presets.items(): + attr_settings = self.ftrack_settings["custom_attributes"] + for entity_type, attr_data in attr_settings.items(): # Lower entity type entity_type = entity_type.lower() # Just store if entity type is not "task" if entity_type != "task": - output[entity_type] = preset + output[entity_type] = attr_data continue # Prepare empty dictionary for entity type if not set yet @@ -229,7 +233,7 @@ class CustomAttributes(BaseAction): output[entity_type] = {} # Store presets per lowered object type - for obj_type, _preset in preset.items(): + for obj_type, _preset in attr_data.items(): output[entity_type][obj_type.lower()] = _preset return output @@ -496,21 +500,20 @@ class CustomAttributes(BaseAction): else: entity_key = attr_data["entity_type"] - entity_presets = self.attrs_presets.get(entity_key) or {} + entity_settings = self.attrs_settings.get(entity_key) or {} if entity_key.lower() == "task": object_type = attr_data["object_type"] - entity_presets = entity_presets.get(object_type.lower()) or {} + entity_settings = entity_settings.get(object_type.lower()) or {} - key_presets = entity_presets.get(attr_key) or {} - - for key, value in key_presets.items(): + key_settings = entity_settings.get(attr_key) or {} + for key, value in key_settings.items(): if key in self.presetable_keys and value: output[key] = value return output def process_attr_data(self, cust_attr_data, event): - attr_presets = self.presets_for_attr_data(cust_attr_data) - cust_attr_data.update(attr_presets) + attr_settings = self.presets_for_attr_data(cust_attr_data) + cust_attr_data.update(attr_settings) try: data = {} @@ -778,9 +781,9 @@ class CustomAttributes(BaseAction): roles_read = attr["read_security_roles"] if "write_security_roles" in attr: roles_write = attr["write_security_roles"] - output['read_security_roles'] = self.get_security_roles(roles_read) - output['write_security_roles'] = self.get_security_roles(roles_write) + output["read_security_roles"] = self.get_security_roles(roles_read) + output["write_security_roles"] = self.get_security_roles(roles_write) return output def get_entity_type(self, attr): From f8177f828c735592aecd4a981c990c36760719fc Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 28 Dec 2020 12:33:03 +0100 Subject: [PATCH 07/10] removed roles from custom attributes definitions --- pype/modules/ftrack/lib/custom_attributes.json | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/pype/modules/ftrack/lib/custom_attributes.json b/pype/modules/ftrack/lib/custom_attributes.json index 17ff6691d3..3945dfaf6e 100644 --- a/pype/modules/ftrack/lib/custom_attributes.json +++ b/pype/modules/ftrack/lib/custom_attributes.json @@ -2,15 +2,11 @@ "show": { "avalon_auto_sync": { "label": "Avalon auto-sync", - "type": "boolean", - "write_security_role": ["API", "Administrator"], - "read_security_role": ["API", "Administrator"] + "type": "boolean" }, "library_project": { "label": "Library Project", - "type": "boolean", - "write_security_role": ["API", "Administrator"], - "read_security_role": ["API", "Administrator"] + "type": "boolean" } }, "is_hierarchical": { From 2dcb33b16eef40bef3ac80132e5447602da847fb Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 28 Dec 2020 12:33:28 +0100 Subject: [PATCH 08/10] fixed keys for roles --- .../defaults/system_settings/modules.json | 48 +++++++++---------- .../template_custom_attribute.json | 4 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/pype/settings/defaults/system_settings/modules.json b/pype/settings/defaults/system_settings/modules.json index 7865d6f1f3..51d5b8190f 100644 --- a/pype/settings/defaults/system_settings/modules.json +++ b/pype/settings/defaults/system_settings/modules.json @@ -28,21 +28,21 @@ "custom_attributes": { "show": { "avalon_auto_sync": { - "write_security_role": [ + "write_security_roles": [ "API", "Administrator" ], - "read_security_role": [ + "read_security_roles": [ "API", "Administrator" ] }, "library_project": { - "write_security_role": [ + "write_security_roles": [ "API", "Administrator" ], - "read_security_role": [ + "read_security_roles": [ "API", "Administrator" ] @@ -50,44 +50,44 @@ }, "is_hierarchical": { "fps": { - "write_security_role": [], - "read_security_role": [] + "write_security_roles": [], + "read_security_roles": [] }, "frameStart": { - "write_security_role": [], - "read_security_role": [] + "write_security_roles": [], + "read_security_roles": [] }, "frameEnd": { - "write_security_role": [], - "read_security_role": [] + "write_security_roles": [], + "read_security_roles": [] }, "clipIn": { - "write_security_role": [], - "read_security_role": [] + "write_security_roles": [], + "read_security_roles": [] }, "clipOut": { - "write_security_role": [], - "read_security_role": [] + "write_security_roles": [], + "read_security_roles": [] }, "handleStart": { - "write_security_role": [], - "read_security_role": [] + "write_security_roles": [], + "read_security_roles": [] }, "handleEnd": { - "write_security_role": [], - "read_security_role": [] + "write_security_roles": [], + "read_security_roles": [] }, "resolutionWidth": { - "write_security_role": [], - "read_security_role": [] + "write_security_roles": [], + "read_security_roles": [] }, "resolutionHeight": { - "write_security_role": [], - "read_security_role": [] + "write_security_roles": [], + "read_security_roles": [] }, "pixelAspect": { - "write_security_role": [], - "read_security_role": [] + "write_security_roles": [], + "read_security_roles": [] } } } diff --git a/pype/tools/settings/settings/gui_schemas/system_schema/module_settings/template_custom_attribute.json b/pype/tools/settings/settings/gui_schemas/system_schema/module_settings/template_custom_attribute.json index 57ada0b4a6..71b7f2ea53 100644 --- a/pype/tools/settings/settings/gui_schemas/system_schema/module_settings/template_custom_attribute.json +++ b/pype/tools/settings/settings/gui_schemas/system_schema/module_settings/template_custom_attribute.json @@ -5,13 +5,13 @@ "type": "dict", "children": [ { - "key": "write_security_role", + "key": "write_security_roles", "label": "Write roles", "type": "list", "object_type": "text" }, { - "key": "read_security_role", + "key": "read_security_roles", "label": "Read roles", "type": "list", "object_type": "text" From c286e11d410322c3f3cbf785cd15be31996e4b91 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 28 Dec 2020 13:26:16 +0100 Subject: [PATCH 09/10] added custom attributes applications, tools and avalon_mongo_id to settings --- .../defaults/system_settings/modules.json | 36 +++++++++++++++++++ .../module_settings/schema_ftrack.json | 9 +++++ 2 files changed, 45 insertions(+) diff --git a/pype/settings/defaults/system_settings/modules.json b/pype/settings/defaults/system_settings/modules.json index 51d5b8190f..6493901bac 100644 --- a/pype/settings/defaults/system_settings/modules.json +++ b/pype/settings/defaults/system_settings/modules.json @@ -46,9 +46,45 @@ "API", "Administrator" ] + }, + "applications": { + "write_security_roles": [ + "API", + "Administrator", + "Pypeclub" + ], + "read_security_roles": [ + "API", + "Administrator", + "Pypeclub" + ] } }, "is_hierarchical": { + "avalon_mongo_id": { + "write_security_roles": [ + "API", + "Administrator", + "Pypeclub" + ], + "read_security_roles": [ + "API", + "Administrator", + "Pypeclub" + ] + }, + "tools_env": { + "write_security_roles": [ + "API", + "Administrator", + "Pypeclub" + ], + "read_security_roles": [ + "API", + "Administrator", + "Pypeclub" + ] + }, "fps": { "write_security_roles": [], "read_security_roles": [] diff --git a/pype/tools/settings/settings/gui_schemas/system_schema/module_settings/schema_ftrack.json b/pype/tools/settings/settings/gui_schemas/system_schema/module_settings/schema_ftrack.json index 9efc8a31ec..0683bd10b5 100644 --- a/pype/tools/settings/settings/gui_schemas/system_schema/module_settings/schema_ftrack.json +++ b/pype/tools/settings/settings/gui_schemas/system_schema/module_settings/schema_ftrack.json @@ -100,6 +100,9 @@ }, { "key": "library_project" + }, + { + "key": "applications" } ] } @@ -114,6 +117,12 @@ "type": "schema_template", "name": "template_custom_attribute", "template_data": [ + { + "key": "tools_env" + }, + { + "key": "avalon_mongo_id" + }, { "key": "fps" }, From 49c92a9ec24ed04171641c796bcea6db72d73f24 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 28 Dec 2020 13:26:46 +0100 Subject: [PATCH 10/10] removed removed default roles from mongo id attribute --- pype/modules/ftrack/actions/action_create_cust_attrs.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/pype/modules/ftrack/actions/action_create_cust_attrs.py b/pype/modules/ftrack/actions/action_create_cust_attrs.py index 3c0d456e54..ae040fd630 100644 --- a/pype/modules/ftrack/actions/action_create_cust_attrs.py +++ b/pype/modules/ftrack/actions/action_create_cust_attrs.py @@ -270,14 +270,11 @@ class CustomAttributes(BaseAction): def create_hierarchical_mongo_attr(self, session, event): # Set security roles for attribute - default_role_list = ("API", "Administrator", "Pypeclub") data = { "key": CUST_ATTR_ID_KEY, "label": "Avalon/Mongo ID", "type": "text", "default": "", - "write_security_roles": default_role_list, - "read_security_roles": default_role_list, "group": CUST_ATTR_GROUP, "is_hierarchical": True, "config": {"markdown": False}