Lock submitted simulation answers

This commit is contained in:
hz
2026-07-30 16:54:12 -05:00
parent 9709bab9a9
commit 5488dec2c7
8 changed files with 142 additions and 10 deletions
+10 -5
View File
@@ -1163,19 +1163,22 @@ func on_hide() -> void:
slot_machine_panel.close_panel()
func _save_simulation_current_response() -> void:
func _save_simulation_current_response(is_submitted := false) -> void:
if BlockSessionService.session_kind != "simulation":
return
if bool(current_answer.get("is_submitted", false)) and not is_submitted:
return
var question := BlockSessionService.get_current_question()
if question.is_empty():
return
current_answer = BlockSessionService.answer_current(selected_choice, eliminated, flagged)
current_answer = BlockSessionService.answer_current(selected_choice, eliminated, flagged, is_submitted)
ExamSimulationService.save_response(
str(question.get("id", "")),
selected_choice,
eliminated,
flagged,
int(BlockSessionService.get_current_elapsed_seconds()))
int(BlockSessionService.get_current_elapsed_seconds()),
is_submitted)
func _on_simulation_state_changed() -> void:
@@ -1577,7 +1580,7 @@ func _toggle_eliminate_selected() -> void:
func _submit_or_next() -> void:
if BlockSessionService.session_kind == "simulation":
_save_simulation_current_response()
_save_simulation_current_response(not selected_choice.is_empty())
if BlockSessionService.current_index + 1 < BlockSessionService.active_questions.size():
BlockSessionService.move_next()
_load_question()
@@ -3373,7 +3376,9 @@ func _apply_saved_choice_state() -> void:
func _is_correct_answer_locked() -> bool:
return bool(current_answer.get("is_correct", false))
return bool(current_answer.get("is_correct", false)) or (
BlockSessionService.session_kind == "simulation" and
bool(current_answer.get("is_submitted", false)))
func _refresh_submit_state() -> void: