Sina Media Lab commited on
Commit
b24def3
·
1 Parent(s): 8c9ee4c
Files changed (1) hide show
  1. app.py +16 -31
app.py CHANGED
@@ -23,10 +23,6 @@ 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 '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
@@ -113,8 +109,6 @@ def navigate_question(direction):
113
  new_question = generate_new_question(st.session_state.current_module, modules[st.session_state.current_module])
114
  st.session_state.questions.append(new_question)
115
  st.session_state.current_index = len(st.session_state.questions) - 1
116
- st.session_state.submit_enabled = True
117
- st.session_state.new_enabled = False
118
 
119
  # Load all modules dynamically
120
  modules = load_modules()
@@ -136,8 +130,6 @@ if selected_module != st.session_state.current_module:
136
  st.session_state.module_question_count[selected_module] = 0
137
  st.session_state.module_correct_count[selected_module] = 0
138
  st.session_state.selected_answer = None
139
- st.session_state.submit_enabled = True
140
- st.session_state.new_enabled = False
141
 
142
  # Load the current module's question
143
  current_question = st.session_state.questions[st.session_state.current_index]
@@ -167,23 +159,24 @@ with col3:
167
 
168
  st.write(current_question["question"])
169
 
170
- # Create the form for the question
171
- selected_answer = st.radio(
172
- "Choose an answer:",
173
- options=current_question['options'],
174
- key=f"question_{st.session_state.current_index}_options",
175
- index=None # Ensure no option is pre-selected
 
176
  )
177
 
178
- col1, col2 = st.columns(2)
179
- with col1:
180
- submit_button = st.button(label="Submit", disabled=not st.session_state.submit_enabled)
181
- with col2:
182
- new_button = st.button(label="New", disabled=not st.session_state.new_enabled)
 
 
183
 
184
- # Handle button state and answer submission
185
- if submit_button:
186
- if selected_answer is not None:
187
  # Process the answer
188
  current_question['selected'] = selected_answer
189
  current_question['answered'] = True
@@ -193,10 +186,6 @@ if submit_button:
193
  st.session_state.correct_count += 1
194
  st.session_state.module_correct_count[selected_module] += 1
195
 
196
- # Immediately disable Submit and enable New
197
- st.session_state.submit_enabled = False
198
- st.session_state.new_enabled = True
199
-
200
  # Display correct/incorrect feedback
201
  for option in current_question['options']:
202
  if option == current_question['correct_answer']:
@@ -211,9 +200,5 @@ if submit_button:
211
  for step in current_question['step_by_step_solution']:
212
  st.write(step)
213
 
214
- else:
215
- st.warning("Please select an option before submitting.", icon="⚠️")
216
-
217
- # Handle new question generation
218
- if new_button:
219
  navigate_question("new")
 
23
  st.session_state.pdf_data = None
24
  if 'selected_answer' not in st.session_state:
25
  st.session_state.selected_answer = None
 
 
 
 
26
 
27
  def reset_pdf_cache():
28
  st.session_state.pdf_data = None
 
109
  new_question = generate_new_question(st.session_state.current_module, modules[st.session_state.current_module])
110
  st.session_state.questions.append(new_question)
111
  st.session_state.current_index = len(st.session_state.questions) - 1
 
 
112
 
113
  # Load all modules dynamically
114
  modules = load_modules()
 
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
 
134
  # Load the current module's question
135
  current_question = st.session_state.questions[st.session_state.current_index]
 
159
 
160
  st.write(current_question["question"])
161
 
162
+ # Submit/New actions as radio buttons
163
+ action = st.radio(
164
+ "Choose an action:",
165
+ ("Submit", "New"),
166
+ index=0 if not current_question['answered'] else 1,
167
+ key="action_radio",
168
+ horizontal=True
169
  )
170
 
171
+ if action == "Submit":
172
+ selected_answer = st.radio(
173
+ "Choose an answer:",
174
+ options=current_question['options'],
175
+ key=f"question_{st.session_state.current_index}_options",
176
+ index=None # Ensure no option is pre-selected
177
+ )
178
 
179
+ if selected_answer:
 
 
180
  # Process the answer
181
  current_question['selected'] = selected_answer
182
  current_question['answered'] = True
 
186
  st.session_state.correct_count += 1
187
  st.session_state.module_correct_count[selected_module] += 1
188
 
 
 
 
 
189
  # Display correct/incorrect feedback
190
  for option in current_question['options']:
191
  if option == current_question['correct_answer']:
 
200
  for step in current_question['step_by_step_solution']:
201
  st.write(step)
202
 
203
+ elif action == "New":
 
 
 
 
204
  navigate_question("new")