Sina Media Lab commited on
Commit
a56f89a
·
1 Parent(s): 5d85198
Files changed (1) hide show
  1. app.py +18 -17
app.py CHANGED
@@ -23,8 +23,10 @@ if 'pdf_data' not in st.session_state:
23
  st.session_state.pdf_data = None
24
  if 'selected_answer' not in st.session_state:
25
  st.session_state.selected_answer = None
26
- if 'button_label' not in st.session_state:
27
- st.session_state.button_label = "Submit/New"
 
 
28
 
29
  def reset_pdf_cache():
30
  st.session_state.pdf_data = None
@@ -128,7 +130,8 @@ if selected_module != st.session_state.current_module:
128
  st.session_state.module_question_count[selected_module] = 0
129
  st.session_state.module_correct_count[selected_module] = 0
130
  st.session_state.selected_answer = None
131
- st.session_state.button_label = "Submit/New"
 
132
 
133
  # Load the current module's question
134
  current_question = st.session_state.questions[st.session_state.current_index]
@@ -167,10 +170,11 @@ with st.form(key=f'question_form_{st.session_state.current_index}'):
167
  index=None # Ensure no option is pre-selected
168
  )
169
 
170
- submit_button = st.form_submit_button(label=st.session_state.button_label)
 
171
 
172
  # Handle button state and answer submission
173
- if submit_button and st.session_state.button_label == "Submit/New":
174
  if selected_answer is not None:
175
  # Process the answer
176
  current_question['selected'] = selected_answer
@@ -181,7 +185,8 @@ if submit_button and st.session_state.button_label == "Submit/New":
181
  st.session_state.correct_count += 1
182
  st.session_state.module_correct_count[selected_module] += 1
183
 
184
- st.session_state.button_label = "Next Question"
 
185
  else:
186
  st.warning("Please select an option before submitting.", icon="⚠️")
187
  st.stop()
@@ -201,14 +206,10 @@ if current_question.get('answered', False):
201
  for step in current_question['step_by_step_solution']:
202
  st.write(step)
203
 
204
- # Disable options and button when navigating through previous questions
205
- if st.session_state.current_index < len(st.session_state.questions) - 1:
206
- st.session_state.button_label = "Next Question"
207
- else:
208
- st.session_state.button_label = "Submit/New"
209
-
210
- if st.session_state.current_index > 0:
211
- st.session_state.button_label = "Next Question"
212
- st.session_state.selected_answer = None
213
- st.form_submit_button(label=st.session_state.button_label, disabled=True)
214
- st.radio("Choose an answer:", options=current_question['options'], index=None, disabled=True)
 
23
  st.session_state.pdf_data = None
24
  if 'selected_answer' not in st.session_state:
25
  st.session_state.selected_answer = None
26
+ if 'submit_enabled' not in st.session_state:
27
+ st.session_state.submit_enabled = True
28
+ if 'new_enabled' not in st.session_state:
29
+ st.session_state.new_enabled = False
30
 
31
  def reset_pdf_cache():
32
  st.session_state.pdf_data = None
 
130
  st.session_state.module_question_count[selected_module] = 0
131
  st.session_state.module_correct_count[selected_module] = 0
132
  st.session_state.selected_answer = None
133
+ st.session_state.submit_enabled = True
134
+ st.session_state.new_enabled = False
135
 
136
  # Load the current module's question
137
  current_question = st.session_state.questions[st.session_state.current_index]
 
170
  index=None # Ensure no option is pre-selected
171
  )
172
 
173
+ submit_button = st.form_submit_button(label="Submit", disabled=not st.session_state.submit_enabled)
174
+ new_button = st.form_submit_button(label="New", disabled=not st.session_state.new_enabled)
175
 
176
  # Handle button state and answer submission
177
+ if submit_button:
178
  if selected_answer is not None:
179
  # Process the answer
180
  current_question['selected'] = selected_answer
 
185
  st.session_state.correct_count += 1
186
  st.session_state.module_correct_count[selected_module] += 1
187
 
188
+ st.session_state.submit_enabled = False
189
+ st.session_state.new_enabled = True
190
  else:
191
  st.warning("Please select an option before submitting.", icon="⚠️")
192
  st.stop()
 
206
  for step in current_question['step_by_step_solution']:
207
  st.write(step)
208
 
209
+ # Handle new question generation
210
+ if new_button:
211
+ new_question = generate_new_question(selected_module, modules[selected_module])
212
+ st.session_state.questions.append(new_question)
213
+ st.session_state.current_index = len(st.session_state.questions) - 1
214
+ st.session_state.submit_enabled = True
215
+ st.session_state.new_enabled = False