from dash.html import Div, H4, Thead, Tbody, Tr, Td, Th
from match_up.model import Player, Game
from dash_bootstrap_components import (
Row,
Col,
Container,
Input,
Select,
Table,
NavbarSimple,
)
class GameLayout:
def __init__(self, game_list: list[Game]):
table_header = [Thead(Tr([Th("Court"), Th("Team 1"), Th("Team 2")]))]
table_body = [
Tbody(
[
Tr(
[
Td(children=game.court_number),
Td(children=game.team_1.__str__()),
Td(children=game.team_2.__str__()),
]
)
for game in game_list
]
)
]
self._layout = Div(
[
H4(children="Game List", style={"textAlign": "center"}),
Table(table_header + table_body, bordered=True),
]
)
def get(self):
return self._layout
class PlayerLayout:
def __init__(self, player_list: list[Player]):
table_header = [Thead(Tr([Th("Player Name")]))]
table_body = [
Tbody(
[
Tr(
[
Td(
children=player.first_name + " " + player.last_name,
style={"color": ("green" if player.status else "red")},
)
]
)
for player in player_list
]
)
]
self._layout = Div(
[
H4(children="Player List", style={"textAlign": "center"}),
Table(table_header + table_body, bordered=True),
]
)
def get(self):
return self._layout
class MainLayout:
def __init__(self, player_list: list[Player], game_list: list[Game]):
self._player_layout = PlayerLayout(player_list)
self._game_layout = GameLayout(game_list)
def refresh(): ...
def get(self):
full_layout = Div(
[
NavbarSimple(brand="Match Up!"),
Container(
[
Row(
[
Col([self._game_layout.get()], width=9),
Col([self._player_layout.get()], width=3),
],
style={"margin": "15px"},
)
]
),
]
)
# full_layout = Div([Div(children="Hello World")])
return full_layout