jesshewyz commited on
Commit
a5b2e19
·
verified ·
1 Parent(s): f3178b5
Files changed (1) hide show
  1. app.py +34 -6
app.py CHANGED
@@ -175,6 +175,19 @@ def reload_prompts():
175
  return new_dropdown
176
 
177
  # ---------------------- New Code for Loading Previous Submissions ---------------------- #
 
 
 
 
 
 
 
 
 
 
 
 
 
178
  def load_submissions_from_db():
179
  """Fetch all submissions ordered by their id in ascending order."""
180
  conn = get_db_connection()
@@ -212,12 +225,17 @@ def show_submission(index, submissions):
212
  return submission_details, input_code, ai_review_output, index
213
 
214
 
 
215
  def load_submissions():
216
- """Loads submissions from the database and resets the index."""
 
217
  submissions = load_submissions_from_db()
218
  index = 0
219
  details, code, review, index = show_submission(index, submissions)
220
- return submissions, index, details, code, review
 
 
 
221
 
222
  def next_submission(current_index, submissions):
223
  """Increment the index and display the next submission."""
@@ -271,30 +289,40 @@ with gr.Blocks() as demo:
271
  # Hidden states to store submissions and the current index
272
  submissions_state = gr.State([])
273
  submission_index_state = gr.State(0)
274
- # Create two columns: left column for details and code, right column for AI review output
 
275
  with gr.Row():
276
  back_btn = gr.Button("Back")
277
  next_btn = gr.Button("Next")
278
  with gr.Row():
279
  with gr.Column():
280
- with gr.Accordion("Prompt Details", open= False):
281
  submission_details_md = gr.Markdown(label="Submission Details")
282
  input_code_component = gr.Code(label="Input Code", language="python")
283
  with gr.Column():
284
  ai_review_md = gr.Markdown(label="AI Review Output", container=True, show_copy_button=True)
285
 
286
- # Load submissions from DB and initialize state
287
  load_submissions_btn.click(
288
  fn=load_submissions,
289
  inputs=[],
290
- outputs=[submissions_state, submission_index_state, submission_details_md, input_code_component, ai_review_md]
291
  )
 
 
 
 
 
 
 
 
292
  # Go to previous submission
293
  back_btn.click(
294
  fn=previous_submission,
295
  inputs=[submission_index_state, submissions_state],
296
  outputs=[submission_index_state, submission_details_md, input_code_component, ai_review_md]
297
  )
 
298
  # Go to next submission
299
  next_btn.click(
300
  fn=next_submission,
 
175
  return new_dropdown
176
 
177
  # ---------------------- New Code for Loading Previous Submissions ---------------------- #
178
+
179
+ def select_submission_by_id(selected_id, submissions):
180
+ """
181
+ Given a selected submission_id (as string) and the list of submissions,
182
+ finds the matching submission and returns its details.
183
+ """
184
+ index = next(
185
+ (i for i, s in enumerate(submissions) if str(s["code_review_submission_id"]) == selected_id),
186
+ 0
187
+ )
188
+ details, code, review, index = show_submission(index, submissions)
189
+ return index, details, code, review
190
+
191
  def load_submissions_from_db():
192
  """Fetch all submissions ordered by their id in ascending order."""
193
  conn = get_db_connection()
 
225
  return submission_details, input_code, ai_review_output, index
226
 
227
 
228
+ # --- Updated load_submissions function ---
229
  def load_submissions():
230
+ """Loads submissions from the database, resets the index,
231
+ and returns a Dropdown update for submission choices."""
232
  submissions = load_submissions_from_db()
233
  index = 0
234
  details, code, review, index = show_submission(index, submissions)
235
+ submission_choices = [str(s["code_review_submission_id"]) for s in submissions]
236
+ default_choice = submission_choices[0] if submission_choices else None
237
+ dropdown_update = gr.Dropdown(choices=submission_choices, value=default_choice)
238
+ return submissions, index, details, code, review, dropdown_update
239
 
240
  def next_submission(current_index, submissions):
241
  """Increment the index and display the next submission."""
 
289
  # Hidden states to store submissions and the current index
290
  submissions_state = gr.State([])
291
  submission_index_state = gr.State(0)
292
+ # Add a new dropdown to select submission by ID
293
+ submission_dropdown = gr.Dropdown(label="Select Submission by ID", choices=[], value=None)
294
  with gr.Row():
295
  back_btn = gr.Button("Back")
296
  next_btn = gr.Button("Next")
297
  with gr.Row():
298
  with gr.Column():
299
+ with gr.Accordion("Prompt Details", open=False):
300
  submission_details_md = gr.Markdown(label="Submission Details")
301
  input_code_component = gr.Code(label="Input Code", language="python")
302
  with gr.Column():
303
  ai_review_md = gr.Markdown(label="AI Review Output", container=True, show_copy_button=True)
304
 
305
+ # Load submissions from DB, initialize state, and update dropdown choices
306
  load_submissions_btn.click(
307
  fn=load_submissions,
308
  inputs=[],
309
+ outputs=[submissions_state, submission_index_state, submission_details_md, input_code_component, ai_review_md, submission_dropdown]
310
  )
311
+
312
+ # When a submission is selected from the dropdown, update the submission display
313
+ submission_dropdown.change(
314
+ fn=select_submission_by_id,
315
+ inputs=[submission_dropdown, submissions_state],
316
+ outputs=[submission_index_state, submission_details_md, input_code_component, ai_review_md]
317
+ )
318
+
319
  # Go to previous submission
320
  back_btn.click(
321
  fn=previous_submission,
322
  inputs=[submission_index_state, submissions_state],
323
  outputs=[submission_index_state, submission_details_md, input_code_component, ai_review_md]
324
  )
325
+
326
  # Go to next submission
327
  next_btn.click(
328
  fn=next_submission,