diff --git a/src/pages/assignments/creator/index.tsx b/src/pages/assignments/creator/index.tsx index 6b3af36d..ae4a0297 100644 --- a/src/pages/assignments/creator/index.tsx +++ b/src/pages/assignments/creator/index.tsx @@ -63,26 +63,26 @@ export const getServerSideProps = withIronSessionSsr(async ({ req, res }) => { const [users, groups] = await Promise.all([ isAdmin(user) ? getUsers( - {}, - 0, - {}, - { - _id: 0, - id: 1, - type: 1, - name: 1, - email: 1, - levels: 1, - } - ) - : getEntitiesUsers(mapBy(allowedEntities, "id"), {}, 0, { + {}, + 0, + {}, + { _id: 0, id: 1, type: 1, name: 1, email: 1, levels: 1, - }), + } + ) + : getEntitiesUsers(mapBy(allowedEntities, "id"), {}, 0, { + _id: 0, + id: 1, + type: 1, + name: 1, + email: 1, + levels: 1, + }), isAdmin(user) ? getGroups() : getGroupsByEntities(mapBy(allowedEntities, "id")), @@ -101,6 +101,14 @@ interface Props { const SIZE = 9; +type ExamApprovalFilterMap = { + writing: boolean; + reading: boolean; + listening: boolean; + speaking: boolean; + level: boolean; +}; + export default function AssignmentsPage({ user, users, @@ -143,6 +151,21 @@ export default function AssignmentsPage({ const [useRandomExams, setUseRandomExams] = useState(true); const [examIDs, setExamIDs] = useState<{ id: string; module: Module }[]>([]); + const [showExamsThatRequiredApproval, setShowExamsThatRequiredApproval] = useState({ + writing: true, + reading: true, + listening: true, + speaking: true, + level: true, + }); + const [showExamsThatDidntRequireApproval, setShowExamsThatDidntRequireApproval] = useState({ + writing: true, + reading: true, + listening: true, + speaking: true, + level: true, + }); + const { exams } = useExams(); const router = useRouter(); @@ -326,7 +349,7 @@ export default function AssignmentsPage({ onClick={ (!selectedModules.includes("level") && selectedModules.length === 0) || - selectedModules.includes("level") + selectedModules.includes("level") ? () => toggleModule("level") : undefined } @@ -504,10 +527,35 @@ export default function AssignmentsPage({
{selectedModules.map((module) => (
- +
+ + { + setShowExamsThatRequiredApproval(prev => ({ + ...prev, + [module]: !prev[module], + })) + }} + > + Show exams that required approval + + { + setShowExamsThatDidntRequireApproval(prev => ({ + ...prev, + [module]: !prev[module], + })) + }} + > + Show exams that did not require approval + +