From 8166e4b8236676307951cd754c49c25b1792e321 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 17 Jun 2024 15:15:28 +0200 Subject: [PATCH 1/2] pass in sender --- client/ayon_core/tools/utils/tasks_widget.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/client/ayon_core/tools/utils/tasks_widget.py b/client/ayon_core/tools/utils/tasks_widget.py index 314521b6b0..bba7b93925 100644 --- a/client/ayon_core/tools/utils/tasks_widget.py +++ b/client/ayon_core/tools/utils/tasks_widget.py @@ -191,12 +191,12 @@ def _refresh(self, project_name, folder_id): def _thread_getter(self, project_name, folder_id): task_items = self._controller.get_task_items( - project_name, folder_id + project_name, folder_id, sender=TASKS_MODEL_SENDER_NAME ) task_type_items = {} if hasattr(self._controller, "get_task_type_items"): task_type_items = self._controller.get_task_type_items( - project_name + project_name, sender=TASKS_MODEL_SENDER_NAME ) return task_items, task_type_items @@ -580,6 +580,7 @@ def _update_expected_selection(self, expected_data=None): return if expected_data is None: expected_data = self._controller.get_expected_selection_data() + folder_data = expected_data.get("folder") task_data = expected_data.get("task") if ( From 50b4779ad35ec7cc2f793b467c4d5f2eedd0bcf3 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 17 Jun 2024 15:15:41 +0200 Subject: [PATCH 2/2] wait for refresh to finish --- client/ayon_core/tools/common_models/hierarchy.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/client/ayon_core/tools/common_models/hierarchy.py b/client/ayon_core/tools/common_models/hierarchy.py index a90e06a63b..f92563db20 100644 --- a/client/ayon_core/tools/common_models/hierarchy.py +++ b/client/ayon_core/tools/common_models/hierarchy.py @@ -1,3 +1,4 @@ +import time import collections import contextlib from abc import ABCMeta, abstractmethod @@ -535,13 +536,15 @@ def _query_task_entities(self, project_name, task_ids): def _refresh_tasks_cache(self, project_name, folder_id, sender=None): if folder_id in self._tasks_refreshing: + while folder_id in self._tasks_refreshing: + time.sleep(0.01) return + cache = self._task_items[project_name][folder_id] with self._task_refresh_event_manager( project_name, folder_id, sender ): - task_items = self._query_tasks(project_name, folder_id) - self._task_items[project_name][folder_id] = task_items + cache.update_data(self._query_tasks(project_name, folder_id)) def _query_tasks(self, project_name, folder_id): tasks = list(ayon_api.get_tasks(