From db31bc93f7fc5f60faebb01aedd85a154b49f95e Mon Sep 17 00:00:00 2001 From: Tobias Zimmermann Date: Sun, 23 Aug 2026 14:06:40 +0200 Subject: [PATCH] Konfigurationsbereich auffindbar machen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Der Bereich war sichtbar, wurde aber übersehen: ein 12-Pixel-Knopf, der an der Überschrift klebte, während "Handel pausieren" und "Training starten" jeweils in einer eigenen Box mit normalgroßem Knopf sitzen. 71x26 px gegenüber 90x58 und 79x58 - das liest sich nicht als Bedienelement. Der Bereich sieht jetzt aus wie die beiden anderen: eigene Panel-Box, Knopf "Konfiguration bearbeiten" in gleicher Größe (114x58 px, 14px Schrift), daneben eine Zeile, die sagt, was dahintersteckt. Geöffnet heißt der Knopf "Konfiguration schließen". Zwei neue Tests halten die drei Haupt-Bedienelemente auf gleicher Linie: keine Inline-Styles, die Schrift oder Polsterung verkleinern, und jeder Knopf muss in einer Panel-Box stehen statt in einer Überschrift. 233 Tests (6 neue), ruff sauber. Im Browser durchgespielt: öffnen, 76 Felder, risk.cooldown_bars_after_exit geändert und sofort wirksam, schließen. --- src/trademind/server.py | 29 +++++++++++++++++++---------- tests/test_dashboard.py | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 10 deletions(-) diff --git a/src/trademind/server.py b/src/trademind/server.py index 33d788c..3a578f6 100644 --- a/src/trademind/server.py +++ b/src/trademind/server.py @@ -131,15 +131,23 @@ _DASHBOARD = r""" @@ -393,7 +401,8 @@ async function loadConfig() { $("cfg-toggle").addEventListener("click", async () => { cfgOpen = !cfgOpen; $("cfg-panel").hidden = !cfgOpen; - $("cfg-toggle").textContent = cfgOpen ? "ausblenden" : "anzeigen"; + $("cfg-toggle").textContent = cfgOpen ? "Konfiguration schließen" : "Konfiguration bearbeiten"; + $("cfg-toggle").className = cfgOpen ? "ghost" : ""; if (cfgOpen) await loadConfig(); }); diff --git a/tests/test_dashboard.py b/tests/test_dashboard.py index f49795b..5896527 100644 --- a/tests/test_dashboard.py +++ b/tests/test_dashboard.py @@ -145,6 +145,38 @@ def test_hidden_sections_are_unhidden_by_the_status_loop(section_id: str): ) +PRIMARY_BUTTONS = ["trade-btn", "train-btn", "cfg-toggle"] + + +@pytest.mark.parametrize("button_id", PRIMARY_BUTTONS) +def test_primary_buttons_are_not_shrunk_by_inline_styles(button_id: str): + """Die Haupt-Bedienelemente sollen gleich aussehen. + + Der Konfigurationsknopf war einmal ein 12-Pixel-Anhängsel an einer Überschrift und + wurde schlicht übersehen. Inline-Styles, die Schrift oder Polsterung verkleinern, + gehören hier nicht hin. + """ + match = re.search(rf'