From 0b6c0f3de964949dae48198648043285b09e9654 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Thu, 18 Dec 2025 16:24:06 +0100 Subject: [PATCH 1/7] Added source version description Links copied version to original with author information. Author is not passed on version as it might require admin privileges. --- .../tools/push_to_project/models/integrate.py | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/client/ayon_core/tools/push_to_project/models/integrate.py b/client/ayon_core/tools/push_to_project/models/integrate.py index 6d6dd35a9d..51865e6af0 100644 --- a/client/ayon_core/tools/push_to_project/models/integrate.py +++ b/client/ayon_core/tools/push_to_project/models/integrate.py @@ -1045,10 +1045,15 @@ class ProjectPushItemProcess: copied_tags = self._get_transferable_tags(src_version_entity) copied_status = self._get_transferable_status(src_version_entity) + description = self._create_src_version_description( + self._item.src_project_name, + src_version_entity + ) + dst_attrib["description"] = dst_attrib.get("description", "") + description + version_entity = new_version_entity( dst_version, product_id, - author=src_version_entity["author"], status=copied_status, tags=copied_tags, task_id=self._task_info.get("id"), @@ -1372,6 +1377,22 @@ class ProjectPushItemProcess: return copied_status["name"] return None + def _create_src_version_description( + self, + src_project_name: str, + src_version_entity: dict[str, Any] + ) -> str: + """Creates description text about source version.""" + src_version_id = src_version_entity["id"] + src_author = src_version_entity["author"] + version_url = f"{ayon_api.get_base_url()}/projects/{src_project_name}/products?project={src_project_name}&type=version&id={src_version_id}" # noqa: E501 + description = ( + f"Version copied from from {version_url} " + f"created by '{src_author}', " + ) + + return description + class IntegrateModel: def __init__(self, controller): From 1be1a30b38e2c6ade1b33a13f76a6d9aab07ecd6 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Thu, 18 Dec 2025 16:47:33 +0100 Subject: [PATCH 2/7] Always put src description on new line --- client/ayon_core/tools/push_to_project/models/integrate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/ayon_core/tools/push_to_project/models/integrate.py b/client/ayon_core/tools/push_to_project/models/integrate.py index 4c69b1a2c7..5b80b9a358 100644 --- a/client/ayon_core/tools/push_to_project/models/integrate.py +++ b/client/ayon_core/tools/push_to_project/models/integrate.py @@ -1385,7 +1385,7 @@ class ProjectPushItemProcess: src_author = src_version_entity["author"] version_url = f"{ayon_api.get_base_url()}/projects/{src_project_name}/products?project={src_project_name}&type=version&id={src_version_id}" # noqa: E501 description = ( - f"Version copied from from {version_url} " + f"\n\nVersion copied from from {version_url} " f"created by '{src_author}', " ) From f46f1d2e8db3b0cd106aff4cf2bfd9744c3199e9 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Fri, 19 Dec 2025 11:21:54 +0100 Subject: [PATCH 3/7] Refactor description concatenation Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> --- .../tools/push_to_project/models/integrate.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/client/ayon_core/tools/push_to_project/models/integrate.py b/client/ayon_core/tools/push_to_project/models/integrate.py index 5b80b9a358..478d280886 100644 --- a/client/ayon_core/tools/push_to_project/models/integrate.py +++ b/client/ayon_core/tools/push_to_project/models/integrate.py @@ -1045,11 +1045,19 @@ class ProjectPushItemProcess: copied_tags = self._get_transferable_tags(src_version_entity) copied_status = self._get_transferable_status(src_version_entity) + description_parts = [] + dst_attr_description = dst_attrib.get("description") + if dst_attr_description: + description_parts.append(dst_attr_description) + description = self._create_src_version_description( self._item.src_project_name, src_version_entity ) - dst_attrib["description"] = dst_attrib.get("description", "") + description + if description: + description_parts.append(description) + + dst_attrib["description"] = "\n\n".join(description_parts) version_entity = new_version_entity( dst_version, From 8f1eebfcbfaaafdbc0164da624d9f94e42a61074 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Fri, 19 Dec 2025 11:22:20 +0100 Subject: [PATCH 4/7] Refactor version parts concatenation Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> --- .../tools/push_to_project/models/integrate.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/client/ayon_core/tools/push_to_project/models/integrate.py b/client/ayon_core/tools/push_to_project/models/integrate.py index 478d280886..829d58d244 100644 --- a/client/ayon_core/tools/push_to_project/models/integrate.py +++ b/client/ayon_core/tools/push_to_project/models/integrate.py @@ -1391,7 +1391,15 @@ class ProjectPushItemProcess: """Creates description text about source version.""" src_version_id = src_version_entity["id"] src_author = src_version_entity["author"] - version_url = f"{ayon_api.get_base_url()}/projects/{src_project_name}/products?project={src_project_name}&type=version&id={src_version_id}" # noqa: E501 + query = "&".join([ + f"project={src_project_name}", + f"type=version", + f"id={src_version_id}, + ]) + version_url = ( + f"{ayon_api.get_base_url()}" + f"/projects/{src_project_name}/products?{query}" + ) description = ( f"\n\nVersion copied from from {version_url} " f"created by '{src_author}', " From 3d0cd51e65413c15c49895cbb27b9e2f7ece339f Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Fri, 19 Dec 2025 11:22:39 +0100 Subject: [PATCH 5/7] Updates to description format Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> --- client/ayon_core/tools/push_to_project/models/integrate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/ayon_core/tools/push_to_project/models/integrate.py b/client/ayon_core/tools/push_to_project/models/integrate.py index 829d58d244..edec1f55c9 100644 --- a/client/ayon_core/tools/push_to_project/models/integrate.py +++ b/client/ayon_core/tools/push_to_project/models/integrate.py @@ -1401,7 +1401,7 @@ class ProjectPushItemProcess: f"/projects/{src_project_name}/products?{query}" ) description = ( - f"\n\nVersion copied from from {version_url} " + f"Version copied from from {version_url} " f"created by '{src_author}', " ) From 07edce9c9c7682d5cdf3e8c1dcef852e1c387384 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Fri, 19 Dec 2025 11:25:08 +0100 Subject: [PATCH 6/7] Fix missing quote --- client/ayon_core/tools/push_to_project/models/integrate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/ayon_core/tools/push_to_project/models/integrate.py b/client/ayon_core/tools/push_to_project/models/integrate.py index edec1f55c9..928287751b 100644 --- a/client/ayon_core/tools/push_to_project/models/integrate.py +++ b/client/ayon_core/tools/push_to_project/models/integrate.py @@ -1394,7 +1394,7 @@ class ProjectPushItemProcess: query = "&".join([ f"project={src_project_name}", f"type=version", - f"id={src_version_id}, + f"id={src_version_id}" ]) version_url = ( f"{ayon_api.get_base_url()}" From a802285a6cc84648827fdab84595787dbca9c521 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Fri, 19 Dec 2025 11:25:30 +0100 Subject: [PATCH 7/7] Removed unnecessary f --- client/ayon_core/tools/push_to_project/models/integrate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/ayon_core/tools/push_to_project/models/integrate.py b/client/ayon_core/tools/push_to_project/models/integrate.py index 928287751b..d0e191a412 100644 --- a/client/ayon_core/tools/push_to_project/models/integrate.py +++ b/client/ayon_core/tools/push_to_project/models/integrate.py @@ -1393,7 +1393,7 @@ class ProjectPushItemProcess: src_author = src_version_entity["author"] query = "&".join([ f"project={src_project_name}", - f"type=version", + "type=version", f"id={src_version_id}" ]) version_url = (