Spaces:
Running
Running
feat: leaderbaord
Browse files
app.py
CHANGED
|
@@ -124,18 +124,14 @@ def submit_shoutout(date, received_people, given_people, dataset):
|
|
| 124 |
return f"β Error submitting shoutout: {str(e)}", dataset
|
| 125 |
|
| 126 |
|
| 127 |
-
def
|
| 128 |
-
"""Refresh
|
| 129 |
-
|
| 130 |
-
received_df = create_received_leaderboard(
|
| 131 |
-
given_df = create_given_leaderboard(
|
|
|
|
| 132 |
|
| 133 |
-
|
| 134 |
-
now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
| 135 |
-
total_entries = len(fresh_dataset) if fresh_dataset else 0
|
| 136 |
-
timestamp_msg = f"π **Last updated:** {now} | **Total entries:** {total_entries}"
|
| 137 |
-
|
| 138 |
-
return received_df, given_df, fresh_dataset, timestamp_msg
|
| 139 |
|
| 140 |
|
| 141 |
# Initialize data
|
|
@@ -166,9 +162,6 @@ with gr.Blocks(css=custom_css, title="LamaLab Shoutouts Leaderboard") as demo:
|
|
| 166 |
gr.HTML("<h1>π LamaLab Shoutouts Leaderboard</h1>")
|
| 167 |
gr.Markdown("Track and celebrate team recognition in LamaLab!!! π π", elem_classes="markdown-text")
|
| 168 |
|
| 169 |
-
# Add timestamp display
|
| 170 |
-
last_updated = gr.Markdown("π **Last updated:** App startup")
|
| 171 |
-
|
| 172 |
with gr.Tabs() as tabs:
|
| 173 |
# Tab 1: Most Shoutouts Received
|
| 174 |
with gr.TabItem("π
Most Shoutouts Received", id=0):
|
|
@@ -217,34 +210,27 @@ with gr.Blocks(css=custom_css, title="LamaLab Shoutouts Leaderboard") as demo:
|
|
| 217 |
# Event handlers
|
| 218 |
def on_submit(date, received, given, dataset):
|
| 219 |
message, new_dataset = submit_shoutout(date, received, given, dataset)
|
| 220 |
-
# Also refresh the leaderboards
|
| 221 |
-
|
| 222 |
-
|
|
|
|
| 223 |
|
| 224 |
-
|
| 225 |
-
|
| 226 |
-
total_entries = len(new_dataset) if new_dataset else 0
|
| 227 |
-
timestamp_msg = f"π **Last updated:** {now} | **Total entries:** {total_entries}"
|
| 228 |
|
| 229 |
-
|
|
|
|
| 230 |
|
| 231 |
-
# Connect events
|
| 232 |
submit_btn.click(
|
| 233 |
on_submit,
|
| 234 |
inputs=[date_input, received_dropdown, given_dropdown, dataset_state],
|
| 235 |
-
outputs=[result_message, dataset_state, received_table, given_table
|
| 236 |
)
|
| 237 |
|
| 238 |
-
refresh_received_btn.click(
|
| 239 |
-
refresh_all_data, inputs=[], outputs=[received_table, given_table, dataset_state, last_updated]
|
| 240 |
-
)
|
| 241 |
-
|
| 242 |
-
refresh_given_btn.click(
|
| 243 |
-
refresh_all_data, inputs=[], outputs=[received_table, given_table, dataset_state, last_updated]
|
| 244 |
-
)
|
| 245 |
|
| 246 |
-
|
| 247 |
-
demo.load(refresh_all_data, outputs=[received_table, given_table, dataset_state, last_updated], every=3600)
|
| 248 |
|
| 249 |
if __name__ == "__main__":
|
| 250 |
demo.launch()
|
|
|
|
| 124 |
return f"β Error submitting shoutout: {str(e)}", dataset
|
| 125 |
|
| 126 |
|
| 127 |
+
def refresh_leaderboards():
|
| 128 |
+
"""Refresh the leaderboards with latest data"""
|
| 129 |
+
dataset = load_shoutouts_dataset()
|
| 130 |
+
received_df = create_received_leaderboard(dataset)
|
| 131 |
+
given_df = create_given_leaderboard(dataset)
|
| 132 |
+
people_list = get_all_people(dataset)
|
| 133 |
|
| 134 |
+
return received_df, given_df, gr.Dropdown(choices=people_list), gr.Dropdown(choices=people_list), dataset
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 135 |
|
| 136 |
|
| 137 |
# Initialize data
|
|
|
|
| 162 |
gr.HTML("<h1>π LamaLab Shoutouts Leaderboard</h1>")
|
| 163 |
gr.Markdown("Track and celebrate team recognition in LamaLab!!! π π", elem_classes="markdown-text")
|
| 164 |
|
|
|
|
|
|
|
|
|
|
| 165 |
with gr.Tabs() as tabs:
|
| 166 |
# Tab 1: Most Shoutouts Received
|
| 167 |
with gr.TabItem("π
Most Shoutouts Received", id=0):
|
|
|
|
| 210 |
# Event handlers
|
| 211 |
def on_submit(date, received, given, dataset):
|
| 212 |
message, new_dataset = submit_shoutout(date, received, given, dataset)
|
| 213 |
+
# Also refresh the leaderboards
|
| 214 |
+
new_received_df = create_received_leaderboard(new_dataset)
|
| 215 |
+
new_given_df = create_given_leaderboard(new_dataset)
|
| 216 |
+
return message, new_dataset, new_received_df, new_given_df
|
| 217 |
|
| 218 |
+
def on_refresh_received(dataset):
|
| 219 |
+
return create_received_leaderboard(dataset)
|
|
|
|
|
|
|
| 220 |
|
| 221 |
+
def on_refresh_given(dataset):
|
| 222 |
+
return create_given_leaderboard(dataset)
|
| 223 |
|
| 224 |
+
# Connect events
|
| 225 |
submit_btn.click(
|
| 226 |
on_submit,
|
| 227 |
inputs=[date_input, received_dropdown, given_dropdown, dataset_state],
|
| 228 |
+
outputs=[result_message, dataset_state, received_table, given_table],
|
| 229 |
)
|
| 230 |
|
| 231 |
+
refresh_received_btn.click(on_refresh_received, inputs=[dataset_state], outputs=[received_table])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 232 |
|
| 233 |
+
refresh_given_btn.click(on_refresh_given, inputs=[dataset_state], outputs=[given_table])
|
|
|
|
| 234 |
|
| 235 |
if __name__ == "__main__":
|
| 236 |
demo.launch()
|