tabulated presentation
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user