From 84759d58908f0790ef1cb2b72c797df30deb244e Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sun, 5 Dec 2021 16:39:35 +0000 Subject: [PATCH] system: Add scaffolding to more testing Signed-off-by: Michael Tremer --- Makefile.am | 3 +- src/westferry/handlers/__init__.py | 1 + src/westferry/handlers/base.py | 4 ++ src/westferry/handlers/system.py | 65 ++++++++++++++++++++++++++++++ 4 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 src/westferry/handlers/system.py diff --git a/Makefile.am b/Makefile.am index c86e056..249b878 100644 --- a/Makefile.am +++ b/Makefile.am @@ -112,7 +112,8 @@ westferry_handlers_PYTHON = \ src/westferry/handlers/analytics.py \ src/westferry/handlers/base.py \ src/westferry/handlers/demo.py \ - src/westferry/handlers/index.py + src/westferry/handlers/index.py \ + src/westferry/handlers/system.py westferry_handlersdir = $(pythondir)/westferry/handlers diff --git a/src/westferry/handlers/__init__.py b/src/westferry/handlers/__init__.py index 60e04f7..5a84838 100644 --- a/src/westferry/handlers/__init__.py +++ b/src/westferry/handlers/__init__.py @@ -23,6 +23,7 @@ from . import base from . import analytics from . import demo from . import index +from . import system def get_handlers(): """ diff --git a/src/westferry/handlers/base.py b/src/westferry/handlers/base.py index c2c49e5..9f134df 100644 --- a/src/westferry/handlers/base.py +++ b/src/westferry/handlers/base.py @@ -72,12 +72,16 @@ class BaseHandler(tornado.web.RequestHandler, metaclass=HandlerRegistration): # recursive imports fail from . import analytics from . import demo + from . import system menu = ui.menus.Menu(self) # Analytics menu.add_handler(analytics.OverviewHandler, title=_("Analytics")) + # System + menu.add_handler(system.SummaryHandler, title=_("System")) + # Demo (only in debug mode) if self.backend.debug: submenu = menu.add_menu(_("Demo")) diff --git a/src/westferry/handlers/system.py b/src/westferry/handlers/system.py new file mode 100644 index 0000000..07fef12 --- /dev/null +++ b/src/westferry/handlers/system.py @@ -0,0 +1,65 @@ +#!/usr/bin/python3 +############################################################################### +# # +# Westferry - The IPFire web user interface # +# Copyright (C) 2021 IPFire development team # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### + +from . import base +from .. import ui +from ..i18n import N_ + +class BaseHandler(base.BaseHandler): + @property + def menu(self): + _ = self.locale.translate + + menu = ui.menus.Menu(self, _("System")) + + # Summary + menu.add_handler(SummaryHandler) + + # Settings + menu.add_handler(SettingsHandler) + + return menu + + +class SummaryHandler(BaseHandler): + title = N_("Summary") + url = r"/system" + + + + +class SettingsHandler(BaseHandler): + title = N_("Settings") + url = r"/system/settings" + + def initialize(self): + # Create a tab with general settings + self._make_general() + + def _make_general(self): + _ = self.locale.translate + + tab = self.tabs.add_tab("general", _("General")) + + # Add a form + form = tab.add_form() + + form.add_text_input("hostname", _("Hostname")) -- 2.39.2