tabulated presentation

This commit is contained in:
2022-06-27 15:17:58 -05:00
parent 244bed2c51
commit ff54e2b053

View File

@@ -312,119 +312,96 @@ app.layout = dash.html.Div(
id="round-selector", id="round-selector",
style={"maxWidth": "300px"}, style={"maxWidth": "300px"},
), ),
dash.html.Div( dash.dcc.Tabs(
[ id="main-tabs",
dash.html.H2( value="leaderboard",
f"Leaderboard - Top {LEADERBOARD_COUNT}", children=[
style={"textAlign": "center"}, dash.dcc.Tab(label="Leaderboard", value="leaderboard"),
), dash.dcc.Tab(label="Statistics", value="statistics"),
dash.dcc.Loading( dash.dcc.Tab(label="User Scores", value="user-scores"),
id="leaderboard-loading", ],
children=dash.html.Div("Loading...", id="leaderboard"),
),
]
),
dash.html.Div(
[
dash.html.H2(
f"Leaderboard - Top {LEADERBOARD_COUNT}",
style={"textAlign": "center"},
),
dash.dcc.Loading(
id="leaderboard-race-loading",
children=dash.html.Div("Loading...", id="leaderboard-race"),
),
]
),
dash.html.Div(
[
dash.html.H2("User Scores", style={"textAlign": "center"}),
dash.dcc.Loading(
id="user-scores-loading",
children=dash.html.Div("Loading...", id="user-scores"),
),
]
),
dash.html.Div(
[
dash.html.H2("Score Graph", style={"textAlign": "center"}),
dash.dcc.Loading(
id="stats-graph-loading",
children=dash.html.Div("Loading...", id="stats-graph"),
),
]
),
dash.html.Div(
[
dash.html.H2("Daily Stats", style={"textAlign": "center"}),
dash.dcc.Loading(
id="daily-stats-loading",
children=dash.html.Div("Loading...", id="daily-stats"),
),
]
), ),
dash.dcc.Loading(dash.html.Div(id="tab-content"), id="tab-content-loading"),
] ]
) )
@app.long_callback( @app.callback(
output=dash.dependencies.Output("leaderboard", "children"), dash.dependencies.Output("tab-content", "children"),
inputs=[ [
dash.dependencies.Input("title", "children"), dash.dependencies.Input("main-tabs", "value"),
dash.dependencies.Input("round-selector-dropdown", "value"), dash.dependencies.Input("round-selector-dropdown", "value"),
], ],
manager=long_callback_manager,
) )
def get_leaderboard_table(_, round_id): def render_tab(tab, round_id):
return get_leaderboard(round_id) if tab == "leaderboard":
return [
dash.html.Div(
@app.long_callback( [
output=dash.dependencies.Output("leaderboard-race", "children"), dash.html.H2(
inputs=[ f"Leaderboard - Top {LEADERBOARD_COUNT}",
dash.dependencies.Input("title", "children"), style={"textAlign": "center"},
dash.dependencies.Input("round-selector-dropdown", "value"), ),
], dash.dcc.Loading(
manager=long_callback_manager, id="leaderboard-race-loading",
) children=dash.html.Div(
def get_leaderboard_race(_, round_id): line_race_graph(round_id), id="leaderboard-race"
return line_race_graph(round_id) ),
),
]
@app.long_callback( ),
output=dash.dependencies.Output("user-scores", "children"), dash.html.Div(
inputs=[ [
dash.dependencies.Input("title", "children"), dash.html.H2(
dash.dependencies.Input("round-selector-dropdown", "value"), f"Leaderboard - Top {LEADERBOARD_COUNT}",
], style={"textAlign": "center"},
manager=long_callback_manager, ),
) dash.dcc.Loading(
def get_scores_chart(_, round_id): id="leaderboard-loading",
return get_scores(round_id) children=dash.html.Div(
get_leaderboard(round_id), id="leaderboard"
),
@app.long_callback( ),
output=dash.dependencies.Output("daily-stats", "children"), ]
inputs=[ ),
dash.dependencies.Input("title", "children"), ]
dash.dependencies.Input("round-selector-dropdown", "value"), elif tab == "user-scores":
], return [
manager=long_callback_manager, dash.html.Div(
) [
def get_stats_chart(_, round_id): dash.html.H2("User Scores", style={"textAlign": "center"}),
return get_daily_stats(round_id) dash.dcc.Loading(
id="user-scores-loading",
children=dash.html.Div(get_scores(round_id), id="user-scores"),
@app.long_callback( ),
output=dash.dependencies.Output("stats-graph", "children"), ]
inputs=[ ),
dash.dependencies.Input("title", "children"), ]
dash.dependencies.Input("round-selector-dropdown", "value"), elif tab == "statistics":
], return [
manager=long_callback_manager, dash.html.Div(
) [
def get_stats_graph(_, round_id): dash.html.H2("Score Graph", style={"textAlign": "center"}),
return get_line_graph(round_id) dash.dcc.Loading(
id="stats-graph-loading",
children=dash.html.Div(
get_line_graph(round_id), id="stats-graph"
),
),
]
),
dash.html.Div(
[
dash.html.H2("Daily Stats", style={"textAlign": "center"}),
dash.dcc.Loading(
id="daily-stats-loading",
children=dash.html.Div(
get_daily_stats(round_id), id="daily-stats"
),
),
]
),
]
server = app.server server = app.server