Skip to content

Commit 9e06734

Browse files
authored
Merge pull request #1613 from ynput/enhancement/product-name-template-settings
Settings: Product name template profile filters
2 parents 46da65b + 69e4fb0 commit 9e06734

3 files changed

Lines changed: 51 additions & 12 deletions

File tree

client/ayon_core/pipeline/create/product_name.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,11 @@ def get_product_name_template(
6060
tools_settings = project_settings["core"]["tools"]
6161
profiles = tools_settings["creator"]["product_name_profiles"]
6262
filtering_criteria = {
63+
"product_base_types": product_base_type or product_type,
6364
"product_types": product_type,
6465
"host_names": host_name,
6566
"task_names": task_name,
6667
"task_types": task_type,
67-
"product_base_types": product_base_type,
6868
}
6969
matching_profile = filter_profiles(profiles, filtering_criteria)
7070
template = None

server/settings/conversion.py

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,31 @@
77
PRODUCT_NAME_REPL_REGEX = re.compile(r"[^<>{}\[\]a-zA-Z0-9_.]")
88

99

10-
def _convert_imageio_configs_1_6_5(overrides):
10+
def _convert_product_name_templates_1_7_0(overrides):
11+
product_name_profiles = (
12+
overrides
13+
.get("tools", {})
14+
.get("creator", {})
15+
.get("product_name_profiles")
16+
)
17+
if (
18+
not product_name_profiles
19+
or not isinstance(product_name_profiles, list)
20+
):
21+
return
22+
23+
# Already converted
24+
item = product_name_profiles[0]
25+
if "product_base_types" in item or "product_types" not in item:
26+
return
27+
28+
# Move product base types to product types
29+
for item in product_name_profiles:
30+
item["product_base_types"] = item["product_types"]
31+
item["product_types"] = []
32+
33+
34+
def _convert_product_name_templates_1_6_5(overrides):
1135
product_name_profiles = (
1236
overrides
1337
.get("tools", {})
@@ -204,7 +228,8 @@ def convert_settings_overrides(
204228
) -> dict[str, Any]:
205229
_convert_imageio_configs_0_3_1(overrides)
206230
_convert_imageio_configs_0_4_5(overrides)
207-
_convert_imageio_configs_1_6_5(overrides)
231+
_convert_product_name_templates_1_6_5(overrides)
232+
_convert_product_name_templates_1_7_0(overrides)
208233
_convert_publish_plugins(overrides)
209234
_convert_extract_thumbnail(overrides)
210235
return overrides

server/settings/tools.py

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ def normalize_value(cls, value):
2424
class ProductNameProfile(BaseSettingsModel):
2525
_layout = "expanded"
2626

27+
product_base_types: list[str] = SettingsField(
28+
default_factory=list,
29+
title="Product base types",
30+
)
2731
product_types: list[str] = SettingsField(
2832
default_factory=list,
2933
title="Product types",
@@ -468,35 +472,39 @@ class GlobalToolsModel(BaseSettingsModel):
468472
],
469473
"product_name_profiles": [
470474
{
475+
"product_base_types": [],
471476
"product_types": [],
472477
"host_names": [],
473478
"task_types": [],
474479
"task_names": [],
475480
"template": "{product[type]}{variant}"
476481
},
477482
{
478-
"product_types": [
483+
"product_base_types": [
479484
"workfile"
480485
],
486+
"product_types": [],
481487
"host_names": [],
482488
"task_types": [],
483489
"task_names": [],
484490
"template": "{product[type]}{Task[name]}"
485491
},
486492
{
487-
"product_types": [
493+
"product_base_types": [
488494
"render"
489495
],
496+
"product_types": [],
490497
"host_names": [],
491498
"task_types": [],
492499
"task_names": [],
493500
"template": "{product[type]}{Task[name]}{Variant}<_{Aov}>"
494501
},
495502
{
496-
"product_types": [
503+
"product_base_types": [
497504
"renderLayer",
498505
"renderPass"
499506
],
507+
"product_types": [],
500508
"host_names": [
501509
"tvpaint"
502510
],
@@ -507,10 +515,11 @@ class GlobalToolsModel(BaseSettingsModel):
507515
)
508516
},
509517
{
510-
"product_types": [
518+
"product_base_types": [
511519
"review",
512520
"workfile"
513521
],
522+
"product_types": [],
514523
"host_names": [
515524
"aftereffects",
516525
"tvpaint"
@@ -520,7 +529,8 @@ class GlobalToolsModel(BaseSettingsModel):
520529
"template": "{product[type]}{Task[name]}"
521530
},
522531
{
523-
"product_types": ["render"],
532+
"product_base_types": ["render"],
533+
"product_types": [],
524534
"host_names": [
525535
"aftereffects"
526536
],
@@ -529,9 +539,10 @@ class GlobalToolsModel(BaseSettingsModel):
529539
"template": "{product[type]}{Task[name]}{Composition}{Variant}"
530540
},
531541
{
532-
"product_types": [
542+
"product_base_types": [
533543
"staticMesh"
534544
],
545+
"product_types": [],
535546
"host_names": [
536547
"maya"
537548
],
@@ -540,9 +551,10 @@ class GlobalToolsModel(BaseSettingsModel):
540551
"template": "S_{folder[name]}{variant}"
541552
},
542553
{
543-
"product_types": [
554+
"product_base_types": [
544555
"skeletalMesh"
545556
],
557+
"product_types": [],
546558
"host_names": [
547559
"maya"
548560
],
@@ -551,9 +563,10 @@ class GlobalToolsModel(BaseSettingsModel):
551563
"template": "SK_{folder[name]}{variant}"
552564
},
553565
{
554-
"product_types": [
566+
"product_base_types": [
555567
"hda"
556568
],
569+
"product_types": [],
557570
"host_names": [
558571
"houdini"
559572
],
@@ -562,9 +575,10 @@ class GlobalToolsModel(BaseSettingsModel):
562575
"template": "{folder[name]}_{variant}"
563576
},
564577
{
565-
"product_types": [
578+
"product_base_types": [
566579
"textureSet"
567580
],
581+
"product_types": [],
568582
"host_names": [
569583
"substancedesigner"
570584
],

0 commit comments

Comments
 (0)