taesiri commited on
Commit
4eec41d
·
1 Parent(s): fea4982
Files changed (1) hide show
  1. app.py +18 -13
app.py CHANGED
@@ -94,7 +94,7 @@ def load_question_data(question_id):
94
  Returns a tuple of all form fields
95
  """
96
  if not question_id:
97
- return [None] * 26 # Return None for all fields
98
 
99
  # Extract the ID part before the colon from the dropdown selection
100
  question_id = (
@@ -104,7 +104,7 @@ def load_question_data(question_id):
104
  json_path = os.path.join("./data", question_id, "question.json")
105
  if not os.path.exists(json_path):
106
  print(f"Question file not found: {json_path}")
107
- return [None] * 26
108
 
109
  try:
110
  with open(json_path, "r", encoding="utf-8") as f:
@@ -158,10 +158,11 @@ def load_question_data(question_id):
158
  load_image(question_images[3] if len(question_images) > 3 else None),
159
  load_image(rationale_images[0] if rationale_images else None),
160
  load_image(rationale_images[1] if len(rationale_images) > 1 else None),
 
161
  ]
162
  except Exception as e:
163
  print(f"Error loading question {question_id}: {str(e)}")
164
- return [None] * 26
165
 
166
 
167
  def generate_json_files(
@@ -443,6 +444,8 @@ def generate_json_files(
443
  # Build the Gradio app
444
  with gr.Blocks() as demo:
445
  gr.Markdown("# Dataset Builder")
 
 
446
 
447
  with gr.Accordion("Instructions", open=True):
448
  gr.HTML(
@@ -699,6 +702,7 @@ with gr.Blocks() as demo:
699
  image4,
700
  rationale_image1,
701
  rationale_image2,
 
702
  ],
703
  )
704
 
@@ -730,7 +734,7 @@ with gr.Blocks() as demo:
730
  i4,
731
  ri1,
732
  ri2,
733
- selected_question_id,
734
  ):
735
  # Validation code remains the same
736
  missing_fields = []
@@ -766,10 +770,8 @@ with gr.Blocks() as demo:
766
  choices=load_existing_questions()
767
  )
768
 
769
- # Extract question ID if updating existing question
770
- existing_id = (
771
- selected_question_id.split(":")[0].strip() if selected_question_id else None
772
- )
773
 
774
  results = generate_json_files(
775
  nm,
@@ -810,7 +812,7 @@ with gr.Blocks() as demo:
810
  choices=load_existing_questions()
811
  )
812
 
813
- # Update submit button click handler to include selected question
814
  submit_button.click(
815
  fn=validate_and_generate,
816
  inputs=[
@@ -840,12 +842,12 @@ with gr.Blocks() as demo:
840
  image4,
841
  rationale_image1,
842
  rationale_image2,
843
- existing_questions, # Add selected question to inputs
844
  ],
845
- outputs=[submit_button, existing_questions], # Update dropdown after submit
846
  )
847
 
848
- # Update clear button to also clear selected question
849
  def clear_form_fields(name, email, inst, openreview, authorship, *args):
850
  outputs = [
851
  name, # Preserve name
@@ -876,11 +878,13 @@ with gr.Blocks() as demo:
876
  None, # Clear rationale image2
877
  None, # Clear output file urls
878
  gr.Button(interactive=True), # Re-enable submit button
879
- gr.update(value=None), # Clear selected question
 
880
  ]
881
  gr.Info("Form cleared! Ready for new submission 🔄")
882
  return outputs
883
 
 
884
  clear_button.click(
885
  fn=clear_form_fields,
886
  inputs=[
@@ -920,6 +924,7 @@ with gr.Blocks() as demo:
920
  output_file_urls,
921
  submit_button,
922
  existing_questions,
 
923
  ],
924
  )
925
 
 
94
  Returns a tuple of all form fields
95
  """
96
  if not question_id:
97
+ return [None] * 26 + [None] # Changed from gr.State(value=None) to just None
98
 
99
  # Extract the ID part before the colon from the dropdown selection
100
  question_id = (
 
104
  json_path = os.path.join("./data", question_id, "question.json")
105
  if not os.path.exists(json_path):
106
  print(f"Question file not found: {json_path}")
107
+ return [None] * 26 + [None]
108
 
109
  try:
110
  with open(json_path, "r", encoding="utf-8") as f:
 
158
  load_image(question_images[3] if len(question_images) > 3 else None),
159
  load_image(rationale_images[0] if rationale_images else None),
160
  load_image(rationale_images[1] if len(rationale_images) > 1 else None),
161
+ question_id, # Changed from gr.State(value=question_id) to just question_id
162
  ]
163
  except Exception as e:
164
  print(f"Error loading question {question_id}: {str(e)}")
165
+ return [None] * 26 + [None]
166
 
167
 
168
  def generate_json_files(
 
444
  # Build the Gradio app
445
  with gr.Blocks() as demo:
446
  gr.Markdown("# Dataset Builder")
447
+ # Add a global state variable at the top level
448
+ loaded_question_id = gr.State()
449
 
450
  with gr.Accordion("Instructions", open=True):
451
  gr.HTML(
 
702
  image4,
703
  rationale_image1,
704
  rationale_image2,
705
+ loaded_question_id,
706
  ],
707
  )
708
 
 
734
  i4,
735
  ri1,
736
  ri2,
737
+ stored_question_id, # Add this parameter
738
  ):
739
  # Validation code remains the same
740
  missing_fields = []
 
770
  choices=load_existing_questions()
771
  )
772
 
773
+ # Use the stored ID instead of extracting from dropdown
774
+ existing_id = stored_question_id if stored_question_id else None
 
 
775
 
776
  results = generate_json_files(
777
  nm,
 
812
  choices=load_existing_questions()
813
  )
814
 
815
+ # Update submit button click handler to match inputs/outputs correctly
816
  submit_button.click(
817
  fn=validate_and_generate,
818
  inputs=[
 
842
  image4,
843
  rationale_image1,
844
  rationale_image2,
845
+ loaded_question_id,
846
  ],
847
+ outputs=[submit_button, existing_questions],
848
  )
849
 
850
+ # Fix the clear_form_fields function
851
  def clear_form_fields(name, email, inst, openreview, authorship, *args):
852
  outputs = [
853
  name, # Preserve name
 
878
  None, # Clear rationale image2
879
  None, # Clear output file urls
880
  gr.Button(interactive=True), # Re-enable submit button
881
+ gr.update(choices=load_existing_questions()), # Update dropdown
882
+ None, # Changed from gr.State(value=None) to just None
883
  ]
884
  gr.Info("Form cleared! Ready for new submission 🔄")
885
  return outputs
886
 
887
+ # Update the clear button click handler
888
  clear_button.click(
889
  fn=clear_form_fields,
890
  inputs=[
 
924
  output_file_urls,
925
  submit_button,
926
  existing_questions,
927
+ loaded_question_id,
928
  ],
929
  )
930