From a9e906cc4241a6b99648fb1281947deb4eea875b Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Tue, 9 Feb 2021 20:42:27 +0100
Subject: [PATCH] SensorLineChartTile: Refactoring: calculate min/max and add
 spacing only at once

---
 src/logic/tile/tiles/SensorLineChartTile.py | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/logic/tile/tiles/SensorLineChartTile.py b/src/logic/tile/tiles/SensorLineChartTile.py
index ad7255a..be013c6 100644
--- a/src/logic/tile/tiles/SensorLineChartTile.py
+++ b/src/logic/tile/tiles/SensorLineChartTile.py
@@ -112,12 +112,12 @@ class SensorLineChartTile(Tile):
         # prevent fetching min/max from StorageLeaf as this would consume a lot of time due to huge timespans
         if self._settings['showAxes']:
             yValues = [float(item) for item in y]
-            if yValues:
-                return min(0.0, min(yValues)), max(yValues) + self.MAX_Y_AXIS_SPACING
-            else:
-                return 0, 0 + self.MAX_Y_AXIS_SPACING
-
-        return self.__get_min_max_from_service(pageName, startDateTime, endDateTime, storageLeafService)
+            minValue = min(yValues, default=0)
+            maxValue = max(yValues, default=0)
+        else:
+            minValue, maxValue = self.__get_min_max_from_service(pageName, startDateTime, endDateTime,
+                                                                 storageLeafService)
+        return min(0, minValue), maxValue + self.MAX_Y_AXIS_SPACING
 
     def __get_min_max_from_service(self, pageName: str, startDateTime: str, endDateTime: str,
                                    storageLeafService: MultiCacheKeyService):
@@ -132,7 +132,7 @@ class SensorLineChartTile(Tile):
         cacheKey = f'{pageName}_{self._uniqueName}_minMax'
         minMaxData = storageLeafService.get_data(cacheKey, self._intervalInSeconds, minMaxSettings)
         LOGGER.debug(f'Received min/max: {minMaxData} for sensorIDs: {self._settings["sensorIDsForMinMax"]}')
-        return min(0, minMaxData['min'] or 0), (minMaxData['max'] or 0) + self.MAX_Y_AXIS_SPACING
+        return minMaxData.get('min', 0) or 0, minMaxData.get('max', 0) or 0
 
     def __prepare_measurement_data(self, measurements: List[Dict]) -> Tuple[List[str], List[str]]:
         x = []
-- 
GitLab