From 14fcb919d362a860bd77aa1f635cc4d0773a905b Mon Sep 17 00:00:00 2001
From: David Hammer <dhammer@mailbox.org>
Date: Thu, 28 Oct 2021 20:32:09 +0200
Subject: [PATCH] Add links from manager overview to device overviews

---
 src/calng/CalibrationManager.py | 2 +-
 src/calng/scenes.py             | 9 +++++++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/calng/CalibrationManager.py b/src/calng/CalibrationManager.py
index 69570eae..3e468a62 100644
--- a/src/calng/CalibrationManager.py
+++ b/src/calng/CalibrationManager.py
@@ -319,7 +319,7 @@ class CalibrationManager(DeviceClientBase, Device):
             scene_data = scenes.manager_device_overview_scene(
                 self.deviceId,
                 self._correction_device_schema,
-                self._correction_device_ids)
+                sorted(self._correction_device_ids))
             payload = Hash('success', True, 'name', name, 'data', scene_data)
             return Hash('type', 'deviceScene',
                         'origin', self.deviceId,
diff --git a/src/calng/scenes.py b/src/calng/scenes.py
index a3ec9ce3..8f6f3aab 100644
--- a/src/calng/scenes.py
+++ b/src/calng/scenes.py
@@ -4,6 +4,7 @@ import karathon
 from karabo.common.scenemodel.api import (
     CheckBoxModel,
     ColorBoolModel,
+    DeviceSceneLinkModel,
     DisplayCommandModel,
     DisplayLabelModel,
     DisplayStateColorModel,
@@ -433,8 +434,12 @@ class CorrectionDeviceStatus:
 
 class CompactCorrectionDeviceOverview:
     def __init__(self, device_id, schema_hash):
-        self.name = LabelModel(
-            text=device_id.split("/")[-1], width=5 * BASE_INC, height=BASE_INC
+        self.name = DeviceSceneLinkModel(
+            text=device_id.split("/")[-1],
+            keys=[f"{device_id}.availableScenes"],
+            target="overview",
+            width=5 * BASE_INC,
+            height=BASE_INC
         )
         self.status = DisplayStateColorModel(
             show_string=True,
-- 
GitLab