Bases: ContextPlugin
Create review instance in non artist based workflow.
Called only if PS is triggered in Webpublisher or in tests.
Source code in client/ayon_photoshop/plugins/publish/collect_auto_review.py
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96 | class CollectAutoReview(pyblish.api.ContextPlugin):
"""Create review instance in non artist based workflow.
Called only if PS is triggered in Webpublisher or in tests.
"""
label = "Collect Auto Review"
hosts = ["photoshop"]
order = pyblish.api.CollectorOrder + 0.2
targets = ["automated"]
publish = True
def process(self, context):
product_type = "review"
has_review = False
for instance in context:
if instance.data["productType"] == product_type:
self.log.debug("Review instance found, won't create new")
has_review = True
creator_attributes = instance.data.get("creator_attributes", {})
if (creator_attributes.get("mark_for_review") and
"review" not in instance.data["families"]):
instance.data["families"].append("review")
if has_review:
return
stub = photoshop.stub()
stored_items = stub.get_layers_metadata()
for item in stored_items:
if item.get("creator_identifier") == product_type:
if not item.get("active"):
self.log.debug("Review instance disabled")
return
auto_creator = context.data["project_settings"].get(
"photoshop", {}).get(
"create", {}).get(
"ReviewCreator", {})
if not auto_creator or not auto_creator["enabled"]:
self.log.debug("Review creator disabled, won't create new")
return
variant = (context.data.get("variant") or
auto_creator["default_variant"])
project_name = context.data["projectName"]
proj_settings = context.data["project_settings"]
host_name = context.data["hostName"]
folder_entity = context.data["folderEntity"]
task_entity = context.data["taskEntity"]
task_name = task_type = None
if task_entity:
task_name = task_entity["name"]
task_type = task_entity["taskType"]
product_name = get_product_name(
project_name,
task_name,
task_type,
host_name,
product_type,
variant,
project_settings=proj_settings
)
instance = context.create_instance(product_name)
instance.data.update({
"label": product_name,
"name": product_name,
"productName": product_name,
"productType": product_type,
"family": product_type,
"families": [product_type],
"representations": [],
"folderPath": folder_entity["path"],
"publish": self.publish
})
self.log.debug("auto review created::{}".format(instance.data))
|