mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
Merge pull request #4231 from pypeclub/bugfix/OP-4512_Anatomy-local-drive-site-roots-ignored
SiteSync: anatomy local drive site roots ignored
This commit is contained in:
commit
8ee073fd73
7 changed files with 44 additions and 15 deletions
|
|
@ -22,7 +22,7 @@ class DropboxHandler(AbstractProvider):
|
|||
)
|
||||
return
|
||||
|
||||
if not self.presets["enabled"]:
|
||||
if not self.presets.get("enabled"):
|
||||
self.log.debug("Sync Server: Site {} not enabled for {}.".
|
||||
format(site_name, project_name))
|
||||
return
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ class GDriveHandler(AbstractProvider):
|
|||
)
|
||||
return
|
||||
|
||||
if not self.presets["enabled"]:
|
||||
if not self.presets.get("enabled"):
|
||||
self.log.debug(
|
||||
"Sync Server: Site {} not enabled for {}.".format(
|
||||
site_name, project_name
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import threading
|
|||
import time
|
||||
|
||||
from openpype.lib import Logger
|
||||
from openpype.lib.local_settings import get_local_site_id
|
||||
from openpype.pipeline import Anatomy
|
||||
from .abstract_provider import AbstractProvider
|
||||
|
||||
|
|
@ -220,6 +221,6 @@ class LocalDriveHandler(AbstractProvider):
|
|||
|
||||
def _normalize_site_name(self, site_name):
|
||||
"""Transform user id to 'local' for Local settings"""
|
||||
if site_name != 'studio':
|
||||
if site_name == get_local_site_id():
|
||||
return 'local'
|
||||
return site_name
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ class SFTPHandler(AbstractProvider):
|
|||
Returns:
|
||||
(boolean)
|
||||
"""
|
||||
return self.presets["enabled"] and self.conn is not None
|
||||
return self.presets.get("enabled") and self.conn is not None
|
||||
|
||||
@classmethod
|
||||
def get_system_settings_schema(cls):
|
||||
|
|
|
|||
|
|
@ -1368,13 +1368,19 @@ class SyncServerModule(OpenPypeModule, ITrayModule):
|
|||
"""
|
||||
sync_sett = self.sync_system_settings
|
||||
project_enabled = True
|
||||
project_settings = None
|
||||
if project_name:
|
||||
project_enabled = project_name in self.get_enabled_projects()
|
||||
project_settings = self.get_sync_project_setting(project_name)
|
||||
sync_enabled = sync_sett["enabled"] and project_enabled
|
||||
|
||||
system_sites = {}
|
||||
if sync_enabled:
|
||||
for site, detail in sync_sett.get("sites", {}).items():
|
||||
if project_settings:
|
||||
site_settings = project_settings["sites"].get(site)
|
||||
if site_settings:
|
||||
detail.update(site_settings)
|
||||
system_sites[site] = detail
|
||||
|
||||
system_sites.update(self._get_default_site_configs(sync_enabled,
|
||||
|
|
@ -1396,14 +1402,22 @@ class SyncServerModule(OpenPypeModule, ITrayModule):
|
|||
exclude_locals=True)
|
||||
roots = {}
|
||||
for root, config in anatomy_sett["roots"].items():
|
||||
roots[root] = config[platform.system().lower()]
|
||||
roots[root] = config
|
||||
studio_config = {
|
||||
'enabled': True,
|
||||
'provider': 'local_drive',
|
||||
"root": roots
|
||||
}
|
||||
all_sites = {self.DEFAULT_SITE: studio_config}
|
||||
if sync_enabled:
|
||||
all_sites[get_local_site_id()] = {'provider': 'local_drive'}
|
||||
all_sites[get_local_site_id()] = {'enabled': True,
|
||||
'provider': 'local_drive',
|
||||
"root": roots}
|
||||
# duplicate values for normalized local name
|
||||
all_sites["local"] = {
|
||||
'enabled': True,
|
||||
'provider': 'local_drive',
|
||||
"root": roots}
|
||||
return all_sites
|
||||
|
||||
def get_provider_for_site(self, project_name=None, site=None):
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ from openpype.lib.path_templates import (
|
|||
FormatObject,
|
||||
)
|
||||
from openpype.lib.log import Logger
|
||||
from openpype.lib import get_local_site_id
|
||||
|
||||
log = Logger.get_logger(__name__)
|
||||
|
||||
|
|
@ -60,6 +61,10 @@ class BaseAnatomy(object):
|
|||
project_name = project_doc["name"]
|
||||
self.project_name = project_name
|
||||
|
||||
if site_name not in ["studio", "local", get_local_site_id()]:
|
||||
raise RuntimeError("Anatomy could be created only for default "
|
||||
"local sites not for {}".format(site_name))
|
||||
|
||||
self._site_name = site_name
|
||||
|
||||
self._data = self._prepare_anatomy_data(
|
||||
|
|
|
|||
|
|
@ -248,6 +248,9 @@ class SitesWidget(QtWidgets.QWidget):
|
|||
main_layout.addWidget(comboboxes_widget, 0)
|
||||
main_layout.addWidget(content_widget, 1)
|
||||
|
||||
active_site_widget.value_changed.connect(self.refresh)
|
||||
remote_site_widget.value_changed.connect(self.refresh)
|
||||
|
||||
self.active_site_widget = active_site_widget
|
||||
self.remote_site_widget = remote_site_widget
|
||||
|
||||
|
|
@ -268,25 +271,29 @@ class SitesWidget(QtWidgets.QWidget):
|
|||
self.modules_manager.modules_by_name["sync_server"]
|
||||
)
|
||||
|
||||
# This is temporary modification
|
||||
# - whole logic here should be in sync module's providers
|
||||
site_names = sync_server_module.get_active_sites_from_settings(
|
||||
self.project_settings["project_settings"].value
|
||||
)
|
||||
site_configs = sync_server_module.get_all_site_configs(
|
||||
self._project_name)
|
||||
|
||||
roots_entity = (
|
||||
self.project_settings[PROJECT_ANATOMY_KEY][LOCAL_ROOTS_KEY]
|
||||
)
|
||||
|
||||
site_names = [self.active_site_widget.current_text(),
|
||||
self.remote_site_widget.current_text()]
|
||||
output = []
|
||||
for site_name in site_names:
|
||||
if not site_name:
|
||||
continue
|
||||
|
||||
site_inputs = []
|
||||
for root_name, path_entity in roots_entity.items():
|
||||
platform_entity = path_entity[platform.system().lower()]
|
||||
site_config = site_configs[site_name]
|
||||
for root_name, path_entity in site_config.get("root", {}).items():
|
||||
if not path_entity:
|
||||
continue
|
||||
platform_value = path_entity[platform.system().lower()]
|
||||
site_inputs.append({
|
||||
"label": root_name,
|
||||
"key": root_name,
|
||||
"value": platform_entity.value
|
||||
"value": platform_value
|
||||
})
|
||||
|
||||
output.append(
|
||||
|
|
@ -436,6 +443,7 @@ class SitesWidget(QtWidgets.QWidget):
|
|||
|
||||
class _SiteCombobox(QtWidgets.QWidget):
|
||||
input_label = None
|
||||
value_changed = QtCore.Signal()
|
||||
|
||||
def __init__(self, modules_manager, project_settings, parent):
|
||||
super(_SiteCombobox, self).__init__(parent)
|
||||
|
|
@ -661,6 +669,7 @@ class _SiteCombobox(QtWidgets.QWidget):
|
|||
|
||||
self._set_local_settings_value(self.current_text())
|
||||
self._update_style()
|
||||
self.value_changed.emit()
|
||||
|
||||
def _set_local_settings_value(self, value):
|
||||
raise NotImplementedError(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue