From a7c9a5f0e617a0e7ad4ddf285d91954dbd62c244 Mon Sep 17 00:00:00 2001 From: avollkopf <43980694+avollkopf@users.noreply.github.com> Date: Wed, 18 Aug 2021 21:55:56 +0200 Subject: [PATCH] current dashboard information added Added functions to store current dashboard info in settings Info can be also retrieved from ui to start with the dashboard that was used last time --- cbpi/controller/dashboard_controller.py | 8 ++++++ cbpi/extension/ConfigUpdate/__init__.py | 9 ++++++- cbpi/http_endpoints/http_dashboard.py | 35 +++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 1 deletion(-) diff --git a/cbpi/controller/dashboard_controller.py b/cbpi/controller/dashboard_controller.py index 1020365..167a762 100644 --- a/cbpi/controller/dashboard_controller.py +++ b/cbpi/controller/dashboard_controller.py @@ -56,3 +56,11 @@ class DashboardController: async def get_dashboard_numbers(self): max_dashboard_number = self.cbpi.config.get("max_dashboard_number", 4) return max_dashboard_number + + async def get_current_dashboard(self): + current_dashboard_number = self.cbpi.config.get("current_dashboard_number", 1) + return current_dashboard_number + + async def set_current_dashboard(self, dashboard_id=1): + await self.cbpi.config.set("current_dashboard_number", dashboard_id) + return {"status": "OK"} diff --git a/cbpi/extension/ConfigUpdate/__init__.py b/cbpi/extension/ConfigUpdate/__init__.py index 7e83256..649726a 100644 --- a/cbpi/extension/ConfigUpdate/__init__.py +++ b/cbpi/extension/ConfigUpdate/__init__.py @@ -34,7 +34,7 @@ class ConfigUpdate(CBPiExtension): boil_step = self.cbpi.config.get("steps_boil", None) cooldown_step = self.cbpi.config.get("steps_cooldown", None) max_dashboard_number = self.cbpi.config.get("max_dashboard_number", None) - + current_dashboard_number = self.cbpi.config.get("current_dashboard_number", None) if boil_temp is None: logger.info("INIT Boil Temp Setting") @@ -109,6 +109,13 @@ class ConfigUpdate(CBPiExtension): except: logger.warning('Unable to update database') + if current_dashboard_number is None: + logger.info("INIT Current Dashboard Number") + try: + await self.cbpi.config.add("current_dashboard_number", 1, ConfigType.NUMBER, "Number of current Dashboard") + except: + logger.warning('Unable to update database') + ## Check if AtuoMode for Steps is in config AutoMode = self.cbpi.config.get("AutoMode", None) if AutoMode is None: diff --git a/cbpi/http_endpoints/http_dashboard.py b/cbpi/http_endpoints/http_dashboard.py index 3007252..2865191 100644 --- a/cbpi/http_endpoints/http_dashboard.py +++ b/cbpi/http_endpoints/http_dashboard.py @@ -122,3 +122,38 @@ class DashBoardHttpEndpoints: description: successful operation """ return web.json_response(await self.cbpi.dashboard.get_dashboard_numbers(), dumps=json_dumps) + + @request_mapping(path="/current", method="GET", auth_required=False) + async def get_current_dashboard(self, request): + """ + --- + description: Get Dashboard Numbers + tags: + - Dashboard + responses: + "200": + description: successful operation + """ + return web.json_response(await self.cbpi.dashboard.get_current_dashboard(), dumps=json_dumps) + + @request_mapping(path="/{id}/current", method="POST", auth_required=False) + async def set_current_dashboard(self, request): + """ + --- + description: Set Current Dashboard Number + tags: + - Dashboard + parameters: + - name: "id" + in: "path" + description: "Dashboard ID" + required: true + type: "integer" + format: "int64" + responses: + "200": + description: successful operation + """ + dashboard_id = int(request.match_info['id']) + return web.json_response(await self.cbpi.dashboard.set_current_dashboard(dashboard_id)) +