Просмотр исходного кода

cycle datanode in viewer (#2474)

* show cycle datanode in datanode selector
resolves #2470

* typing

---------

Co-authored-by: Fred Lefévère-Laoide <Fred.Lefevere-Laoide@Taipy.io>
Fred Lefévère-Laoide 2 месяцев назад
Родитель
Сommit
f5a5963e67
1 измененных файлов с 12 добавлено и 4 удалено
  1. 12 4
      taipy/gui_core/_context.py

+ 12 - 4
taipy/gui_core/_context.py

@@ -711,9 +711,17 @@ class _GuiCoreContext(CoreEventConsumerBase):
             self.__do_datanodes_tree()
         if datanodes is None:
             if scenarios is None:
-                base_list = (self.data_nodes_by_owner or {}).get(None, []) + (
-                    self.get_scenarios(None, None, None) or []
-                )
+                tree: t.List[t.Union[Cycle, Scenario]] = []
+                with self.lock:
+                    # always needed to get scenarios for a cycle in cycle_adapter
+                    if self.scenario_by_cycle is None:
+                        self.scenario_by_cycle = get_cycles_scenarios()
+                    for cycle, c_scenarios in self.scenario_by_cycle.items():
+                        if cycle is None:
+                            tree.extend(c_scenarios)
+                        else:
+                            tree.append(cycle)
+                base_list = (self.data_nodes_by_owner or {}).get(None, []) + tree
             else:
                 if isinstance(scenarios, (list, tuple)) and len(scenarios) > 1:
                     base_list = list(scenarios)
@@ -724,7 +732,7 @@ class _GuiCoreContext(CoreEventConsumerBase):
                     else:
                         base_list = []
         else:
-            base_list = datanodes
+            base_list = t.cast(list, datanodes)
         adapted_list = self.get_sorted_datanode_list(t.cast(list, base_list), sorts)
         return self.get_filtered_datanode_list(t.cast(list, adapted_list), filters)