n0w0f commited on
Commit
93c51cd
Β·
1 Parent(s): 3d982a0

feat: leaderbaord

Browse files
Files changed (1) hide show
  1. app.py +19 -33
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 refresh_all_data():
128
- """Refresh all data from HuggingFace Hub with timestamp"""
129
- fresh_dataset = load_shoutouts_dataset()
130
- received_df = create_received_leaderboard(fresh_dataset)
131
- given_df = create_given_leaderboard(fresh_dataset)
 
132
 
133
- # Add timestamp
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 with fresh data
221
- fresh_received_df = create_received_leaderboard(new_dataset)
222
- fresh_given_df = create_given_leaderboard(new_dataset)
 
223
 
224
- # Update timestamp
225
- now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
226
- total_entries = len(new_dataset) if new_dataset else 0
227
- timestamp_msg = f"πŸ”„ **Last updated:** {now} | **Total entries:** {total_entries}"
228
 
229
- return message, new_dataset, fresh_received_df, fresh_given_df, timestamp_msg
 
230
 
231
- # Connect events - both refresh buttons update everything
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, last_updated],
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
- # Auto-refresh every 3600 seconds
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()