From 6f43543089d51f7ab8c8b06d99e84716c034f6c0 Mon Sep 17 00:00:00 2001 From: Matthias Jung Date: Thu, 6 Aug 2026 22:35:16 +0200 Subject: [PATCH] fix: stop exam when click on homework --- assets/exam-simulator.js | 6 +++++- src/build.py | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/assets/exam-simulator.js b/assets/exam-simulator.js index 4fdaec3..2efb9aa 100644 --- a/assets/exam-simulator.js +++ b/assets/exam-simulator.js @@ -703,9 +703,13 @@ } var homeworkMode = stored.session.mode === "homework"; var choice = EXAM_CHOICES.find(function (item) { return item.id === stored.session.choiceId; }); + var homeworkRequested = homeworkQuestionIds.length > 0; var homeworkMatches = homeworkMode && (allowHomeworkResult || (homeworkQuestionIds.length > 0 && JSON.stringify(stored.session.homeworkIds) === JSON.stringify(homeworkQuestionIds))); - var valid = (homeworkMatches || choice) && stored.session.parts.every(function (part) { + var requestedSessionMatches = allowHomeworkResult + ? (homeworkMatches || choice) + : (homeworkRequested ? homeworkMatches : (!homeworkMode && choice)); + var valid = requestedSessionMatches && stored.session.parts.every(function (part) { return Array.isArray(part.questions) && (homeworkMode || part.questions.length === QUESTION_COUNT) && part.questions.every(function (question) { return Boolean(catalog.value[question.id]); }); diff --git a/src/build.py b/src/build.py index ba5af98..41be79f 100644 --- a/src/build.py +++ b/src/build.py @@ -165,7 +165,7 @@ class Build: page_scripts=[ "assets/vue.global.prod.js", "assets/question-catalog.js?ts=20260806", - "assets/exam-simulator.js?ts=202608063", + "assets/exam-simulator.js?ts=202608064", ], ) with (self.config.p_build / "simulation.html").open("w", encoding="utf-8") as file: @@ -180,7 +180,7 @@ class Build: page_scripts=[ "assets/vue.global.prod.js", "assets/question-catalog.js?ts=20260806", - "assets/exam-simulator.js?ts=202608063", + "assets/exam-simulator.js?ts=202608064", ], social_image=f"assets/images/{social_image.name}", )