fix collect workfile data

This commit is contained in:
Jakub Trllo 2023-02-15 10:45:57 +01:00
parent dae4094d8a
commit 71d9ceb91e

View file

@ -65,9 +65,9 @@ class CollectWorkfileData(pyblish.api.ContextPlugin):
# Collect and store current context to have reference
current_context = {
"project": legacy_io.Session["AVALON_PROJECT"],
"asset": legacy_io.Session["AVALON_ASSET"],
"task": legacy_io.Session["AVALON_TASK"]
"project_name": context.data["projectName"],
"asset_name": context.data["asset"],
"task_name": context.data["task"]
}
context.data["previous_context"] = current_context
self.log.debug("Current context is: {}".format(current_context))
@ -76,25 +76,31 @@ class CollectWorkfileData(pyblish.api.ContextPlugin):
self.log.info("Collecting workfile context")
workfile_context = get_current_workfile_context()
if "project" in workfile_context:
workfile_context = {
"project_name": workfile_context.get("project"),
"asset_name": workfile_context.get("asset"),
"task_name": workfile_context.get("task"),
}
# Store workfile context to pyblish context
context.data["workfile_context"] = workfile_context
if workfile_context:
# Change current context with context from workfile
key_map = (
("AVALON_ASSET", "asset"),
("AVALON_TASK", "task")
("AVALON_ASSET", "asset_name"),
("AVALON_TASK", "task_name")
)
for env_key, key in key_map:
legacy_io.Session[env_key] = workfile_context[key]
os.environ[env_key] = workfile_context[key]
self.log.info("Context changed to: {}".format(workfile_context))
asset_name = workfile_context["asset"]
task_name = workfile_context["task"]
asset_name = workfile_context["asset_name"]
task_name = workfile_context["task_name"]
else:
asset_name = current_context["asset"]
task_name = current_context["task"]
asset_name = current_context["asset_name"]
task_name = current_context["task_name"]
# Handle older workfiles or workfiles without metadata
self.log.warning((
"Workfile does not contain information about context."
@ -103,6 +109,7 @@ class CollectWorkfileData(pyblish.api.ContextPlugin):
# Store context asset name
context.data["asset"] = asset_name
context.data["task"] = task_name
self.log.info(
"Context is set to Asset: \"{}\" and Task: \"{}\"".format(
asset_name, task_name