mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
Merge pull request #4359 from ynput/bugfix/add_hero_in_add_site_loader
Fix - addSite loader handles hero version
This commit is contained in:
commit
77861116c3
4 changed files with 45 additions and 23 deletions
|
|
@ -164,7 +164,6 @@ def get_linked_representation_id(
|
|||
# Recursive graph lookup for inputs
|
||||
{"$graphLookup": graph_lookup}
|
||||
]
|
||||
|
||||
conn = get_project_connection(project_name)
|
||||
result = conn.aggregate(query_pipeline)
|
||||
referenced_version_ids = _process_referenced_pipeline_result(
|
||||
|
|
@ -213,7 +212,7 @@ def _process_referenced_pipeline_result(result, link_type):
|
|||
|
||||
for output in sorted(outputs_recursive, key=lambda o: o["depth"]):
|
||||
output_links = output.get("data", {}).get("inputLinks")
|
||||
if not output_links:
|
||||
if not output_links and output["type"] != "hero_version":
|
||||
continue
|
||||
|
||||
# Leaf
|
||||
|
|
@ -232,6 +231,9 @@ def _process_referenced_pipeline_result(result, link_type):
|
|||
|
||||
|
||||
def _filter_input_links(input_links, link_type, correctly_linked_ids):
|
||||
if not input_links: # to handle hero versions
|
||||
return
|
||||
|
||||
for input_link in input_links:
|
||||
if link_type and input_link["type"] != link_type:
|
||||
continue
|
||||
|
|
|
|||
|
|
@ -34,12 +34,24 @@ class AddSyncSite(load.LoaderPlugin):
|
|||
return self._sync_server
|
||||
|
||||
def load(self, context, name=None, namespace=None, data=None):
|
||||
self.log.info("Adding {} to representation: {}".format(
|
||||
data["site_name"], data["_id"]))
|
||||
family = context["representation"]["context"]["family"]
|
||||
project_name = data["project_name"]
|
||||
repre_id = data["_id"]
|
||||
""""Adds site skeleton information on representation_id
|
||||
|
||||
Looks for loaded containers for workfile, adds them site skeleton too
|
||||
(eg. they should be downloaded too).
|
||||
Args:
|
||||
context (dict):
|
||||
name (str):
|
||||
namespace (str):
|
||||
data (dict): expects {"site_name": SITE_NAME_TO_ADD}
|
||||
"""
|
||||
# self.log wont propagate
|
||||
project_name = context["project"]["name"]
|
||||
repre_doc = context["representation"]
|
||||
family = repre_doc["context"]["family"]
|
||||
repre_id = repre_doc["_id"]
|
||||
site_name = data["site_name"]
|
||||
print("Adding {} to representation: {}".format(
|
||||
data["site_name"], repre_id))
|
||||
|
||||
self.sync_server.add_site(project_name, repre_id, site_name,
|
||||
force=True)
|
||||
|
|
@ -52,6 +64,8 @@ class AddSyncSite(load.LoaderPlugin):
|
|||
)
|
||||
for link_repre_id in links:
|
||||
try:
|
||||
print("Adding {} to linked representation: {}".format(
|
||||
data["site_name"], link_repre_id))
|
||||
self.sync_server.add_site(project_name, link_repre_id,
|
||||
site_name,
|
||||
force=False)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,10 @@ from openpype.pipeline import load
|
|||
|
||||
|
||||
class RemoveSyncSite(load.LoaderPlugin):
|
||||
"""Remove sync site and its files on representation"""
|
||||
"""Remove sync site and its files on representation.
|
||||
|
||||
Removes files only on local site!
|
||||
"""
|
||||
representations = ["*"]
|
||||
families = ["*"]
|
||||
|
||||
|
|
@ -24,13 +27,18 @@ class RemoveSyncSite(load.LoaderPlugin):
|
|||
return self._sync_server
|
||||
|
||||
def load(self, context, name=None, namespace=None, data=None):
|
||||
self.log.info("Removing {} on representation: {}".format(
|
||||
data["site_name"], data["_id"]))
|
||||
self.sync_server.remove_site(data["project_name"],
|
||||
data["_id"],
|
||||
data["site_name"],
|
||||
project_name = context["project"]["name"]
|
||||
repre_doc = context["representation"]
|
||||
repre_id = repre_doc["_id"]
|
||||
site_name = data["site_name"]
|
||||
|
||||
print("Removing {} on representation: {}".format(site_name, repre_id))
|
||||
|
||||
self.sync_server.remove_site(project_name,
|
||||
repre_id,
|
||||
site_name,
|
||||
True)
|
||||
self.log.debug("Site added.")
|
||||
self.log.debug("Site removed.")
|
||||
|
||||
def filepath_from_context(self, context):
|
||||
"""No real file loading"""
|
||||
|
|
|
|||
|
|
@ -1480,23 +1480,21 @@ class RepresentationWidget(QtWidgets.QWidget):
|
|||
repre_ids = []
|
||||
data_by_repre_id = {}
|
||||
selected_side = action_representation.get("selected_side")
|
||||
site_name = "{}_site_name".format(selected_side)
|
||||
|
||||
is_sync_loader = tools_lib.is_sync_loader(loader)
|
||||
for item in items:
|
||||
item_id = item.get("_id")
|
||||
repre_ids.append(item_id)
|
||||
repre_id = item["_id"]
|
||||
repre_ids.append(repre_id)
|
||||
if not is_sync_loader:
|
||||
continue
|
||||
|
||||
site_name = "{}_site_name".format(selected_side)
|
||||
data_site_name = item.get(site_name)
|
||||
if not data_site_name:
|
||||
continue
|
||||
|
||||
data_by_repre_id[item_id] = {
|
||||
"_id": item_id,
|
||||
"site_name": data_site_name,
|
||||
"project_name": self.dbcon.active_project()
|
||||
data_by_repre_id[repre_id] = {
|
||||
"site_name": data_site_name
|
||||
}
|
||||
|
||||
repre_contexts = get_repres_contexts(repre_ids, self.dbcon)
|
||||
|
|
@ -1586,8 +1584,8 @@ def _load_representations_by_loader(loader, repre_contexts,
|
|||
version_name = version_doc.get("name")
|
||||
try:
|
||||
if data_by_repre_id:
|
||||
_id = repre_context["representation"]["_id"]
|
||||
data = data_by_repre_id.get(_id)
|
||||
repre_id = repre_context["representation"]["_id"]
|
||||
data = data_by_repre_id.get(repre_id)
|
||||
options.update(data)
|
||||
load_with_repre_context(
|
||||
loader,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue