mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
Merge branch 'develop' into enhancement/OP-2858_move-AvalonMongoDB-logic
This commit is contained in:
commit
a579cd31c8
116 changed files with 3112 additions and 1204 deletions
|
|
@ -1,9 +1,19 @@
|
|||
from openpype.modules import ModulesManager
|
||||
from openpype.pipeline import load
|
||||
from openpype.lib.avalon_context import get_linked_ids_for_representations
|
||||
from openpype.modules.sync_server.utils import SiteAlreadyPresentError
|
||||
|
||||
|
||||
class AddSyncSite(load.LoaderPlugin):
|
||||
"""Add sync site to representation"""
|
||||
"""Add sync site to representation
|
||||
|
||||
If family of synced representation is 'workfile', it looks for all
|
||||
representations which are referenced (loaded) in workfile with content of
|
||||
'inputLinks'.
|
||||
It doesn't do any checks for site, most common use case is when artist is
|
||||
downloading workfile to his local site, but it might be helpful when
|
||||
artist is re-uploading broken representation on remote site also.
|
||||
"""
|
||||
representations = ["*"]
|
||||
families = ["*"]
|
||||
|
||||
|
|
@ -12,21 +22,42 @@ class AddSyncSite(load.LoaderPlugin):
|
|||
icon = "download"
|
||||
color = "#999999"
|
||||
|
||||
_sync_server = None
|
||||
is_add_site_loader = True
|
||||
|
||||
@property
|
||||
def sync_server(self):
|
||||
if not self._sync_server:
|
||||
manager = ModulesManager()
|
||||
self._sync_server = manager.modules_by_name["sync_server"]
|
||||
|
||||
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"]))
|
||||
self.add_site_to_representation(data["project_name"],
|
||||
data["_id"],
|
||||
data["site_name"])
|
||||
self.log.debug("Site added.")
|
||||
family = context["representation"]["context"]["family"]
|
||||
project_name = data["project_name"]
|
||||
repre_id = data["_id"]
|
||||
site_name = data["site_name"]
|
||||
|
||||
@staticmethod
|
||||
def add_site_to_representation(project_name, representation_id, site_name):
|
||||
"""Adds new site to representation_id, resets if exists"""
|
||||
manager = ModulesManager()
|
||||
sync_server = manager.modules_by_name["sync_server"]
|
||||
sync_server.add_site(project_name, representation_id, site_name,
|
||||
force=True)
|
||||
self.sync_server.add_site(project_name, repre_id, site_name,
|
||||
force=True)
|
||||
|
||||
if family == "workfile":
|
||||
links = get_linked_ids_for_representations(project_name,
|
||||
[repre_id],
|
||||
link_type="reference")
|
||||
for link_repre_id in links:
|
||||
try:
|
||||
self.sync_server.add_site(project_name, link_repre_id,
|
||||
site_name,
|
||||
force=False)
|
||||
except SiteAlreadyPresentError:
|
||||
# do not add/reset working site for references
|
||||
self.log.debug("Site present", exc_info=True)
|
||||
|
||||
self.log.debug("Site added.")
|
||||
|
||||
def filepath_from_context(self, context):
|
||||
"""No real file loading"""
|
||||
|
|
|
|||
|
|
@ -12,22 +12,26 @@ class RemoveSyncSite(load.LoaderPlugin):
|
|||
icon = "download"
|
||||
color = "#999999"
|
||||
|
||||
_sync_server = None
|
||||
is_remove_site_loader = True
|
||||
|
||||
@property
|
||||
def sync_server(self):
|
||||
if not self._sync_server:
|
||||
manager = ModulesManager()
|
||||
self._sync_server = manager.modules_by_name["sync_server"]
|
||||
|
||||
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.remove_site_on_representation(data["project_name"],
|
||||
data["_id"],
|
||||
data["site_name"])
|
||||
self.sync_server.remove_site(data["project_name"],
|
||||
data["_id"],
|
||||
data["site_name"],
|
||||
True)
|
||||
self.log.debug("Site added.")
|
||||
|
||||
@staticmethod
|
||||
def remove_site_on_representation(project_name, representation_id,
|
||||
site_name):
|
||||
manager = ModulesManager()
|
||||
sync_server = manager.modules_by_name["sync_server"]
|
||||
sync_server.remove_site(project_name, representation_id,
|
||||
site_name, True)
|
||||
|
||||
def filepath_from_context(self, context):
|
||||
"""No real file loading"""
|
||||
return ""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue