Refactor exam form handling to support mixed paper types and update related interfaces

This commit is contained in:
Nati
2026-08-24 12:37:06 +00:00
parent 895690de80
commit 294a8ded6c
3 changed files with 19 additions and 14 deletions

View File

@@ -117,13 +117,18 @@ export function ExamDetailPage() {
// Only approved bank items may go on a paper (US-EXAM-003), so the picker
// must not offer drafts or retired questions either.
//
// BOTH describes a mixed paper — a question itself is never "BOTH" (see
// QuestionForm), so an equality check against it would match nothing and
// silently offer zero questions. Same skip-condition as the backend's own
// random draw (ExamService.selectRandomQuestions).
const eligibleQuestions = useMemo(() => {
if (!exam) return [];
return allQuestions
.filter(
(q) =>
q.certificationId === exam.certificationId &&
q.form === exam.form &&
(exam.form === 'BOTH' || q.form === exam.form) &&
q.status === 'APPROVED',
)
.map((q) => ({ id: q.id, title: q.title, form: q.form, points: q.points }));