From 0049ab272b7f30e7ac43a5fb3112181d4fefa762 Mon Sep 17 00:00:00 2001 From: Joao Ramos Date: Thu, 7 Dec 2023 23:07:35 +0000 Subject: [PATCH] Added dynamic generation of exams as an option --- src/dashboards/AssignmentCreator.tsx | 11 ++- src/pages/api/assignments/index.ts | 100 +++++++++++++++++++-------- src/utils/exams.be.ts | 2 +- 3 files changed, 82 insertions(+), 31 deletions(-) diff --git a/src/dashboards/AssignmentCreator.tsx b/src/dashboards/AssignmentCreator.tsx index e55faa60..fe1b9c68 100644 --- a/src/dashboards/AssignmentCreator.tsx +++ b/src/dashboards/AssignmentCreator.tsx @@ -18,6 +18,7 @@ import {getExam} from "@/utils/exams"; import {toast} from "react-toastify"; import {uuidv4} from "@firebase/util"; import {Assignment} from "@/interfaces/results"; +import Checkbox from "@/components/Low/Checkbox"; interface Props { isCreating: boolean; @@ -35,6 +36,8 @@ export default function AssignmentCreator({isCreating, assignment, assigner, gro const [isLoading, setIsLoading] = useState(false); const [startDate, setStartDate] = useState(assignment ? moment(assignment.startDate).toDate() : moment().add(1, "day").toDate()); const [endDate, setEndDate] = useState(assignment ? moment(assignment.endDate).toDate() : moment().add(8, "day").toDate()); + // creates a new exam for each assignee or just one exam for all assignees + const [generateMultiple, setGenerateMultiple] = useState(false); const toggleModule = (module: Module) => { const modules = selectedModules.filter((x) => x !== module); @@ -55,7 +58,8 @@ export default function AssignmentCreator({isCreating, assignment, assigner, gro name, startDate, endDate, - selectedModules + selectedModules, + generateMultiple, } ) .then(() => { @@ -280,6 +284,11 @@ export default function AssignmentCreator({isCreating, assignment, assigner, gro ))} +
+ setGenerateMultiple(d => !d)}> + Generate an unique exam for each student + +