From 481c928770136e6cc789ffa6dce2edc90d32a22a Mon Sep 17 00:00:00 2001 From: Roy Nieterau <roy_nieterau@hotmail.com> Date: Fri, 5 Jul 2024 23:01:31 +0200 Subject: [PATCH 1/5] Load Asset LOP allow to pick product type, make sure filtered product names are sorted --- client/ayon_houdini/api/hda_utils.py | 7 +++++-- .../ayon_8_8Lop_1lop__import_8_81.0/DialogScript | 8 +++++++- .../ayon_8_8Lop_1lop__import_8_81.0/OnCreated | 1 - 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/client/ayon_houdini/api/hda_utils.py b/client/ayon_houdini/api/hda_utils.py index 412364bc04..2023825f39 100644 --- a/client/ayon_houdini/api/hda_utils.py +++ b/client/ayon_houdini/api/hda_utils.py @@ -569,13 +569,16 @@ def get_available_products(node): if not folder_entity: return [] + # Apply filter only if any value is set + product_types = [product_type] if product_type else None + products = ayon_api.get_products( project_name, folder_ids=[folder_entity["id"]], - product_types=[product_type] + product_types=product_types ) - return [product["name"] for product in products] + return list(sorted(product["name"] for product in products)) def set_to_latest_version(node): diff --git a/client/ayon_houdini/startup/otls/ayon_lop_import.hda/ayon_8_8Lop_1lop__import_8_81.0/DialogScript b/client/ayon_houdini/startup/otls/ayon_lop_import.hda/ayon_8_8Lop_1lop__import_8_81.0/DialogScript index 3c97d10f35..00875fb462 100644 --- a/client/ayon_houdini/startup/otls/ayon_lop_import.hda/ayon_8_8Lop_1lop__import_8_81.0/DialogScript +++ b/client/ayon_houdini/startup/otls/ayon_lop_import.hda/ayon_8_8Lop_1lop__import_8_81.0/DialogScript @@ -3,7 +3,7 @@ { name ayon::lop_import::1.0 script load_asset::1.0 - label "Load Asset" + label "AYON Load Asset" help { "" @@ -52,6 +52,12 @@ label "Product Type" type string default { "usd" } + menu { + "usd" "usd" + "pointcache" "pointcache" + "model" "model" + "" "*" + } } parm { name "product_name" diff --git a/client/ayon_houdini/startup/otls/ayon_lop_import.hda/ayon_8_8Lop_1lop__import_8_81.0/OnCreated b/client/ayon_houdini/startup/otls/ayon_lop_import.hda/ayon_8_8Lop_1lop__import_8_81.0/OnCreated index 06ccdaa653..bd09a7838b 100644 --- a/client/ayon_houdini/startup/otls/ayon_lop_import.hda/ayon_8_8Lop_1lop__import_8_81.0/OnCreated +++ b/client/ayon_houdini/startup/otls/ayon_lop_import.hda/ayon_8_8Lop_1lop__import_8_81.0/OnCreated @@ -2,5 +2,4 @@ node = kwargs["node"] hda_module = node.hdaModule() hda_module.setup_flag_changed_callback(node) -node.parm("product_type").lock(True) node.parm("file").lock(True) From b4b03c6232967f6d5c98b1ca4498700f554a3665 Mon Sep 17 00:00:00 2001 From: Roy Nieterau <roy_nieterau@hotmail.com> Date: Fri, 5 Jul 2024 23:14:08 +0200 Subject: [PATCH 2/5] Sort product types alphabetically, add camera product type --- .../ayon_8_8Lop_1lop__import_8_81.0/DialogScript | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/client/ayon_houdini/startup/otls/ayon_lop_import.hda/ayon_8_8Lop_1lop__import_8_81.0/DialogScript b/client/ayon_houdini/startup/otls/ayon_lop_import.hda/ayon_8_8Lop_1lop__import_8_81.0/DialogScript index 00875fb462..fa9e3b7099 100644 --- a/client/ayon_houdini/startup/otls/ayon_lop_import.hda/ayon_8_8Lop_1lop__import_8_81.0/DialogScript +++ b/client/ayon_houdini/startup/otls/ayon_lop_import.hda/ayon_8_8Lop_1lop__import_8_81.0/DialogScript @@ -53,10 +53,11 @@ type string default { "usd" } menu { - "usd" "usd" - "pointcache" "pointcache" - "model" "model" "" "*" + "camera" "camera" + "model" "model" + "pointcache" "pointcache" + "usd" "usd" } } parm { From ba5c8a77df6ab3b874b77688d62aeb57ab3d264c Mon Sep 17 00:00:00 2001 From: Roy Nieterau <roy_nieterau@hotmail.com> Date: Fri, 5 Jul 2024 23:34:43 +0200 Subject: [PATCH 3/5] Update product type parm to the loaded product if it mismatches --- client/ayon_houdini/api/hda_utils.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/client/ayon_houdini/api/hda_utils.py b/client/ayon_houdini/api/hda_utils.py index 2023825f39..bb66f2242f 100644 --- a/client/ayon_houdini/api/hda_utils.py +++ b/client/ayon_houdini/api/hda_utils.py @@ -129,6 +129,14 @@ def update_info(node, context): if node.evalParm(key) != value} parms["load_message"] = "" # clear any warnings/errors + # Update the product type filter to match the type + current = node.evalParm("product_type") + product_type = context["product"]["productType"] + if current or current != product_type: + # If current is empty we consider no filtering applied and we allow + # that to be a state that needs no switching + parms["product_type"] = product_type + # Note that these never trigger any parm callbacks since we do not # trigger the `parm.pressButton` and programmatically setting values # in Houdini does not trigger callbacks automatically From bcfd46a14713b22dc9f79f9f3823dccae6c5debb Mon Sep 17 00:00:00 2001 From: Roy Nieterau <roy_nieterau@hotmail.com> Date: Fri, 5 Jul 2024 23:35:43 +0200 Subject: [PATCH 4/5] Fix if statement --- client/ayon_houdini/api/hda_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/ayon_houdini/api/hda_utils.py b/client/ayon_houdini/api/hda_utils.py index bb66f2242f..8b8b0a323b 100644 --- a/client/ayon_houdini/api/hda_utils.py +++ b/client/ayon_houdini/api/hda_utils.py @@ -132,7 +132,7 @@ def update_info(node, context): # Update the product type filter to match the type current = node.evalParm("product_type") product_type = context["product"]["productType"] - if current or current != product_type: + if current and current != product_type: # If current is empty we consider no filtering applied and we allow # that to be a state that needs no switching parms["product_type"] = product_type From 6dc4ece3db6992b70cd52fa3da14b906ab2b84c5 Mon Sep 17 00:00:00 2001 From: Roy Nieterau <roy_nieterau@hotmail.com> Date: Thu, 11 Jul 2024 14:08:39 +0200 Subject: [PATCH 5/5] Update client/ayon_houdini/startup/otls/ayon_lop_import.hda/ayon_8_8Lop_1lop__import_8_81.0/DialogScript --- .../ayon_8_8Lop_1lop__import_8_81.0/DialogScript | 1 + 1 file changed, 1 insertion(+) diff --git a/client/ayon_houdini/startup/otls/ayon_lop_import.hda/ayon_8_8Lop_1lop__import_8_81.0/DialogScript b/client/ayon_houdini/startup/otls/ayon_lop_import.hda/ayon_8_8Lop_1lop__import_8_81.0/DialogScript index fa9e3b7099..dee8fa4c8f 100644 --- a/client/ayon_houdini/startup/otls/ayon_lop_import.hda/ayon_8_8Lop_1lop__import_8_81.0/DialogScript +++ b/client/ayon_houdini/startup/otls/ayon_lop_import.hda/ayon_8_8Lop_1lop__import_8_81.0/DialogScript @@ -54,6 +54,7 @@ default { "usd" } menu { "" "*" + "animation" "animation" "camera" "camera" "model" "model" "pointcache" "pointcache"