From f686985c6eb5a4c54be9c4227e9fa3ed40adf8a0 Mon Sep 17 00:00:00 2001 From: Tiago Ribeiro Date: Tue, 5 Nov 2024 11:43:49 +0000 Subject: [PATCH] ENCOA-220: Assignment exams were being merged --- src/pages/dashboard/student.tsx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/pages/dashboard/student.tsx b/src/pages/dashboard/student.tsx index 6a4634b9..6da06d98 100644 --- a/src/pages/dashboard/student.tsx +++ b/src/pages/dashboard/student.tsx @@ -14,7 +14,7 @@ import {Assignment} from "@/interfaces/results"; import {Stat, User} from "@/interfaces/user"; import {sessionOptions} from "@/lib/session"; import useExamStore from "@/stores/examStore"; -import {mapBy, redirect, serialize} from "@/utils"; +import {findBy, mapBy, redirect, serialize} from "@/utils"; import { requestUser } from "@/utils/api"; import {activeAssignmentFilter} from "@/utils/assignments"; import {getAssignmentsByAssignee} from "@/utils/assignments.be"; @@ -88,16 +88,16 @@ export default function Dashboard({user, entities, assignments, stats, invites, const setAssignment = useExamStore((state) => state.setAssignment); const startAssignment = (assignment: Assignment) => { - if (exams.every((x) => !!x)) { + const assignmentExams = exams.filter(e => { + const exam = findBy(assignment.exams, 'id', e.id) + return !!exam && exam.module === e.module + }) + + if (assignmentExams.every((x) => !!x)) { setUserSolutions([]); setShowSolutions(false); - setExams(exams.map((x) => x!).sort(sortByModule)); - setSelectedModules( - exams - .map((x) => x!) - .sort(sortByModule) - .map((x) => x!.module), - ); + setExams(assignmentExams.sort(sortByModule)); + setSelectedModules(mapBy(assignmentExams.sort(sortByModule), 'module')); setAssignment(assignment); router.push("/exam");