Enable Team Tournaments, add Tournament Trees, implement temporary tree persistance #66

Merged
Typhus merged 7 commits from feature/enable-starting-tournaments-and-displaying-tournament-tree into main 2026-04-18 14:42:28 +00:00
2 changed files with 104 additions and 91 deletions
Showing only changes of commit fb5a5b0608 - Show all commits

View File

@ -13,7 +13,7 @@ from src.ezgg_lan_manager.components.TournamentDetailsInfoRow import TournamentD
from src.ezgg_lan_manager.types.DateUtil import weekday_to_display_text from src.ezgg_lan_manager.types.DateUtil import weekday_to_display_text
from src.ezgg_lan_manager.types.Team import Team, TeamStatus from src.ezgg_lan_manager.types.Team import Team, TeamStatus
from src.ezgg_lan_manager.types.Tournament import Tournament from src.ezgg_lan_manager.types.Tournament import Tournament
from src.ezgg_lan_manager.types.TournamentBase import TournamentStatus, tournament_status_to_display_text, tournament_format_to_display_texts, ParticipantType from src.ezgg_lan_manager.types.TournamentBase import TournamentStatus, tournament_status_to_display_text, tournament_format_to_display_texts, ParticipantType, TournamentFormat
from src.ezgg_lan_manager.types.User import User from src.ezgg_lan_manager.types.User import User
from src.ezgg_lan_manager.types.UserSession import UserSession from src.ezgg_lan_manager.types.UserSession import UserSession
@ -215,6 +215,7 @@ class TournamentDetailsPage(Component):
tournament_status_color = self.session.theme.danger_color tournament_status_color = self.session.theme.danger_color
elif self.tournament.status == TournamentStatus.ONGOING or self.tournament.status == TournamentStatus.COMPLETED: elif self.tournament.status == TournamentStatus.ONGOING or self.tournament.status == TournamentStatus.COMPLETED:
tournament_status_color = self.session.theme.warning_color tournament_status_color = self.session.theme.warning_color
if self.tournament.format != TournamentFormat.FFA:
tree_button = Button( tree_button = Button(
content="Turnierbaum anzeigen", content="Turnierbaum anzeigen",
shape="rectangle", shape="rectangle",

View File

@ -163,11 +163,23 @@ class TournamentTreePage(Component):
align_x=0.5 align_x=0.5
) )
) )
else:
if self.tournament.format == TournamentFormat.FFA:
content = Column(
Text(
text=f"Dieses Turnier hat keinen Turnierbaum.",
style=TextStyle(fill=self.session.theme.background_color),
margin_top=1,
margin_bottom=1,
align_x=0.5,
overflow="wrap",
min_width=30,
justify="center"
)
)
else: else:
try: try:
file_name = self.tournament.name.replace(" ", "_") + ".json" file_name = self.tournament.name.replace(" ", "_") + ".json"
games_per_matchup = 1
if self.tournament.format != TournamentFormat.FFA:
games_per_matchup = int(self.tournament.format.name[-1]) games_per_matchup = int(self.tournament.format.name[-1])
logger.info(f"Trying to read tournament data from {file_name}") logger.info(f"Trying to read tournament data from {file_name}")
with open(from_root("tournament_data", file_name), "r") as f: with open(from_root("tournament_data", file_name), "r") as f: