From e9c74be057201f1b04180f758237c462602d8423 Mon Sep 17 00:00:00 2001 From: amcmanu3 Date: Sun, 4 Sep 2022 16:21:33 -0400 Subject: [PATCH 1/2] Add ability to change metrics scale --- app/classes/controllers/servers_controller.py | 5 ++--- app/classes/models/server_stats.py | 4 ++-- app/classes/web/panel_handler.py | 15 ++++++++++++++- app/frontend/templates/panel/server_metrics.html | 15 +++++++++++++++ 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/app/classes/controllers/servers_controller.py b/app/classes/controllers/servers_controller.py index c9434b13..1bf81564 100644 --- a/app/classes/controllers/servers_controller.py +++ b/app/classes/controllers/servers_controller.py @@ -105,10 +105,9 @@ class ServersController(metaclass=Singleton): server_instance.update_server_instance() return ret - def get_history_stats(self, server_id): - now = datetime.datetime.now() + def get_history_stats(self, server_id, days): srv = ServersController().get_server_instance_by_id(server_id) - return srv.stats_helper.get_history_stats(server_id) + return srv.stats_helper.get_history_stats(server_id, days) @staticmethod def update_unloaded_server(server_obj): diff --git a/app/classes/models/server_stats.py b/app/classes/models/server_stats.py index d6c6efdc..29fdb856 100644 --- a/app/classes/models/server_stats.py +++ b/app/classes/models/server_stats.py @@ -138,8 +138,8 @@ class HelperServerStats: ) return server_data - def get_history_stats(self, server_id): - max_age = datetime.datetime.now() - timedelta(days=1) + def get_history_stats(self, server_id, num_days): + max_age = datetime.datetime.now() - timedelta(days=num_days) return ( ServerStats.select() .where(ServerStats.created > max_age) diff --git a/app/classes/web/panel_handler.py b/app/classes/web/panel_handler.py index a8bac6e2..a30f7d29 100644 --- a/app/classes/web/panel_handler.py +++ b/app/classes/web/panel_handler.py @@ -756,8 +756,21 @@ class PanelHandler(BaseHandler): page_data["backup_path"] = Helpers.wtol_path(server_info["backup_path"]) if subpage == "metrics": + try: + days = int(self.get_argument("days", "1")) + except ValueError as e: + self.redirect( + f"/panel/error?error=Type error: Argument must be an int {e}" + ) + page_data["options"] = [1, 2, 3] + if not days in page_data["options"]: + page_data["options"].insert(0, days) + else: + page_data["options"].insert( + 0, page_data["options"].pop(page_data["options"].index(days)) + ) page_data["history_stats"] = self.controller.servers.get_history_stats( - server_id + server_id, days ) def get_banned_players_html(): diff --git a/app/frontend/templates/panel/server_metrics.html b/app/frontend/templates/panel/server_metrics.html index 9bf46941..d10fec51 100644 --- a/app/frontend/templates/panel/server_metrics.html +++ b/app/frontend/templates/panel/server_metrics.html @@ -38,6 +38,16 @@ {% include "parts/m_server_controls_list.html %} +
+
+ + +
+
@@ -69,6 +79,7 @@ }