Improved a bit of the evaluation system

This commit is contained in:
Tiago Ribeiro
2023-10-22 09:13:25 +01:00
parent 9f9e36f0cd
commit e10aebf4c0
3 changed files with 30 additions and 24 deletions

View File

@@ -5,7 +5,7 @@ import {Module} from "@/interfaces";
import Selection from "@/exams/Selection";
import Reading from "@/exams/Reading";
import {Exam, UserSolution} from "@/interfaces/exam";
import {Exam, InteractiveSpeakingExercise, SpeakingExercise, UserSolution, WritingExercise} from "@/interfaces/exam";
import Listening from "@/exams/Listening";
import Writing from "@/exams/Writing";
import {ToastContainer, toast} from "react-toastify";
@@ -134,16 +134,19 @@ export default function ExamPage({page}: Props) {
Promise.all(
exam.exercises.map(async (exercise) => {
return (exam.module === "writing" ? evaluateWritingAnswer : evaluateSpeakingAnswer)(
exams,
exam.id,
exercise.id,
solutions.find((x) => x.exercise === exercise.id)!,
).then((response) => {
if (response) {
setUserSolutions([...userSolutions.filter((x) => x.exercise !== exercise.id), response]);
}
});
if (exercise.type === "writing")
return evaluateWritingAnswer(exercise, solutions.find((x) => x.exercise === exercise.id)!).then((response) => {
if (response) {
setUserSolutions([...userSolutions.filter((x) => x.exercise !== exercise.id), response]);
}
});
if (exercise.type === "interactiveSpeaking" || exercise.type === "speaking")
return evaluateSpeakingAnswer(exercise, solutions.find((x) => x.exercise === exercise.id)!).then((response) => {
if (response) {
setUserSolutions([...userSolutions.filter((x) => x.exercise !== exercise.id), response]);
}
});
}),
).finally(() => {
setIsEvaluationLoading(false);