mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 12:54:40 +01:00
Merge pull request #1502 from ynput/bugfix/YN-0133_copy_folder_type
Library: copy folder type
This commit is contained in:
commit
39bf605e63
1 changed files with 28 additions and 8 deletions
|
|
@ -5,7 +5,7 @@ import itertools
|
||||||
import sys
|
import sys
|
||||||
import traceback
|
import traceback
|
||||||
import uuid
|
import uuid
|
||||||
from typing import Optional, Dict
|
from typing import Optional, Dict, Any
|
||||||
|
|
||||||
import ayon_api
|
import ayon_api
|
||||||
from ayon_api.utils import create_entity_id
|
from ayon_api.utils import create_entity_id
|
||||||
|
|
@ -650,10 +650,10 @@ class ProjectPushItemProcess:
|
||||||
|
|
||||||
def _create_folder(
|
def _create_folder(
|
||||||
self,
|
self,
|
||||||
src_folder_entity,
|
src_folder_entity: dict[str, Any],
|
||||||
project_entity,
|
project_entity: dict[str, Any],
|
||||||
parent_folder_entity,
|
parent_folder_entity: dict[str, Any],
|
||||||
folder_name
|
folder_name: str
|
||||||
):
|
):
|
||||||
parent_id = None
|
parent_id = None
|
||||||
if parent_folder_entity:
|
if parent_folder_entity:
|
||||||
|
|
@ -702,10 +702,14 @@ class ProjectPushItemProcess:
|
||||||
if new_folder_name != folder_name:
|
if new_folder_name != folder_name:
|
||||||
folder_label = folder_name
|
folder_label = folder_name
|
||||||
|
|
||||||
# TODO find out how to define folder type
|
src_folder_type = src_folder_entity["folderType"]
|
||||||
|
dst_folder_type = self._get_dst_folder_type(
|
||||||
|
project_entity,
|
||||||
|
src_folder_type
|
||||||
|
)
|
||||||
folder_entity = new_folder_entity(
|
folder_entity = new_folder_entity(
|
||||||
folder_name,
|
folder_name,
|
||||||
"Folder",
|
dst_folder_type,
|
||||||
parent_id=parent_id,
|
parent_id=parent_id,
|
||||||
attribs=new_folder_attrib
|
attribs=new_folder_attrib
|
||||||
)
|
)
|
||||||
|
|
@ -727,6 +731,22 @@ class ProjectPushItemProcess:
|
||||||
folder_entity["path"] = "/".join([parent_path, folder_name])
|
folder_entity["path"] = "/".join([parent_path, folder_name])
|
||||||
return folder_entity
|
return folder_entity
|
||||||
|
|
||||||
|
def _get_dst_folder_type(
|
||||||
|
self,
|
||||||
|
project_entity: dict[str, Any],
|
||||||
|
src_folder_type: str
|
||||||
|
) -> str:
|
||||||
|
"""Get new folder type."""
|
||||||
|
for folder_type in project_entity["folderTypes"]:
|
||||||
|
if folder_type["name"].lower() == src_folder_type.lower():
|
||||||
|
return folder_type["name"]
|
||||||
|
|
||||||
|
self._status.set_failed(
|
||||||
|
f"'{src_folder_type}' folder type is not configured in "
|
||||||
|
f"project Anatomy."
|
||||||
|
)
|
||||||
|
raise PushToProjectError(self._status.fail_reason)
|
||||||
|
|
||||||
def _fill_or_create_destination_folder(self):
|
def _fill_or_create_destination_folder(self):
|
||||||
dst_project_name = self._item.dst_project_name
|
dst_project_name = self._item.dst_project_name
|
||||||
dst_folder_id = self._item.dst_folder_id
|
dst_folder_id = self._item.dst_folder_id
|
||||||
|
|
@ -1206,7 +1226,7 @@ class ProjectPushItemProcess:
|
||||||
if value_to_update:
|
if value_to_update:
|
||||||
repre_context[context_key] = value_to_update
|
repre_context[context_key] = value_to_update
|
||||||
if "task" not in formatting_data:
|
if "task" not in formatting_data:
|
||||||
repre_context.pop("task")
|
repre_context.pop("task", None)
|
||||||
return repre_context
|
return repre_context
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue