From a262088e00b9c882f9e6e0d829f7c0e6145724d2 Mon Sep 17 00:00:00 2001 From: Daniel Nagel Date: Wed, 18 Mar 2026 21:48:06 +0100 Subject: [PATCH] Match Formular angepasst. --- gui/info_text/info_texts.json | 17 +++++------------ gui/match_gui.py | 30 +++++++++--------------------- 2 files changed, 14 insertions(+), 33 deletions(-) diff --git a/gui/info_text/info_texts.json b/gui/info_text/info_texts.json index 83c107b..034cce9 100644 --- a/gui/info_text/info_texts.json +++ b/gui/info_text/info_texts.json @@ -3,22 +3,15 @@ "Um einer Liga beizutreten einfach auf **BEITRETEN** drücken und bestätigen.", "Um deine Statistik in einer Liga zu sehen, klick auf eine Liga." ], - "mmr_info": [ "**MMR Punkte** sind die Liga Punkte um die gespielt wird.", "Verliert man ein Spiel, verliert man Punkte. Und umgekehrt." ], - "match_form_info": [ "Um ein Spiel einzutragen gibt einfach deine Punkte ein. Wähle deinen Gegner aus. Und gibt seine Punkte ein.", - "**ACHTUNG:** Ein Spieler ist nur als Gegner auswählbar wenn er sich in der Liga angemeldet hat!" + "**ACHTUNG:** Ein Spieler ist nur als Gegner auswählbar wenn er sich in der Liga angemeldet hat!", + "Solltest du einen Fehler machen kannst du das 'falsche' Match auf der Hauptseite noch löschen bevor es bestätigt wurde." ], - - "tyrann_info":[ - - ], - - "prügelknabe_info":[ - - ] -} + "tyrann_info": [], + "prügelknabe_info": [] +} \ No newline at end of file diff --git a/gui/match_gui.py b/gui/match_gui.py index 072a361..d4a91eb 100644 --- a/gui/match_gui.py +++ b/gui/match_gui.py @@ -2,6 +2,7 @@ from nicegui import ui, app from gui import gui_style from data import data_api from match_calculations import calc_match +from gui.info_text import info_system def setup_routes(): @@ -21,37 +22,31 @@ def setup_routes(): # Text-Center hinzugefügt, falls der Systemname sehr lang ist und auf dem Handy umbricht ui.label(f'Neues Spiel für {systemname} eintragen').classes('text-2xl font-bold text-center mb-6') - ui.label("Meine Punkte:").classes('text-xl font-bold w-full text-left') - # ÄNDERUNG: h-60 entfernt, stattdessen gap-6 (Abstand zwischen den Elementen) with ui.column().classes("w-full items-center gap-6"): - # 1. Daten aus der DB holen raw_players = data_api.get_all_players_from_system(systemname) my_id = app.storage.user.get('db_id') - # 3. Eine saubere Optionen-Liste für NiceGUI bauen dropdown_options = {} - for p in raw_players: if p['player_id'] == my_id: continue dropdown_options[p['player_id']] = f"{p['display_name']} 'aka' {p['discord_name']}" - # ÄNDERUNG: .classes('w-full') hinzugefügt, damit der Slider sich anpasst - p1_points = ui.slider(min=0, max=100, value=10).props("label-always").classes('w-full') + with ui.row().classes("w-full items-center justify-between"): + p1_points = ui.slider(min=0, max=100, value=10).classes("w-70") + ui.label().bind_text_from(p1_points, 'value').classes("text-lg text-normaltext") ui.separator().classes('w-full mt-4') # Ein schöner Trennstrich für die Optik - # 5. Dropdown und Gegner Punkte + ui.label("Gegner:").classes('text-xl font-bold w-full text-left') - - # ÄNDERUNG: w-64 durch w-full ersetzt opponent_select = ui.select(options=dropdown_options, label='Gegner auswählen').classes('w-full') - - # ÄNDERUNG: .classes('w-full') hinzugefügt - p2_points = ui.slider(min=0, max=100, value=10).props("label-always").classes('w-full') + with ui.row().classes("w-full items-center justify-between"): + p2_points = ui.slider(min=0, max=100, value=10).classes("w-70") + ui.label().bind_text_from(p2_points, 'value').classes("text-lg text-normaltext") ui.space() @@ -71,15 +66,8 @@ def setup_routes(): ui.notify("Match erfolgreich eingetragen!", color="green") ui.navigate.to(f'/statistic/{systemname}') - - with ui.dialog().classes("w-full items-center") as form_info, ui.card(): - ui.label('Um ein Spiel einzutragen einfach deine erspielten Punkte, deinen Gegner und die Punkte von deinem Gegner eintragen').classes("font-bold text-white text-l") - ui.label('ACHTUNG: Damit ein Spieler als Gegner ausgewählt werden kann, muss er der Liga beigetreten sein!').classes("font-bold text-white text-l") - ui.label('Nach dem Absenden muss dein Gegner in seiner Liga App das Spiel noch kurz bestätigen. Solltest du einen Fehler gemacht haben, kannst du das Spiel (bevor es bestätigt wurde) auf der Hauptseite selber löschen.').classes("font-bold text-white text-l") - ui.button(icon="close", on_click=form_info.close).classes("w-10 h-8 rounded-full") - # Buttons ganz unten in einer Reihe with ui.row().classes("w-full items-center justify-between mt-8"): ui.button(icon="close", on_click=lambda: ui.navigate.to(f'/statistic/{systemname}')).classes("w-10 h-8 rounded-full") - ui.button(icon="help", color="information" ,on_click=form_info.open).classes("w-10 h-8 rounded-full") + info_system.create_info_button("match_form_info") ui.button(text="Absenden", color="positive", on_click=lambda: input_match_to_database())