make access confidential when user submits exam with approval process. make access private upon approval workflow completed.
This commit is contained in:
@@ -159,7 +159,7 @@ const SettingsEditor: React.FC<SettingsEditorProps> = ({
|
||||
disabled={!canSubmit}
|
||||
>
|
||||
<FaFileUpload className="mr-2" size={18} />
|
||||
Submit Module as Exam
|
||||
Submit module as exam for approval
|
||||
</button>
|
||||
<button
|
||||
className={clsx(
|
||||
@@ -167,11 +167,14 @@ const SettingsEditor: React.FC<SettingsEditorProps> = ({
|
||||
`bg-ielts-${module}/70 border border-ielts-${module} hover:bg-ielts-${module} disabled:bg-ielts-${module}/30`,
|
||||
"disabled:cursor-not-allowed disabled:text-gray-200"
|
||||
)}
|
||||
onClick={() => submitModule(false)}
|
||||
onClick={() => {
|
||||
if (!confirm(`Are you sure you want to skip the approval process for this exam?`)) return;
|
||||
submitModule(false);
|
||||
}}
|
||||
disabled={!canSubmit}
|
||||
>
|
||||
<FaFileUpload className="mr-2" size={18} />
|
||||
Submit Module as Exam Without Approval Process
|
||||
Submit module as exam and skip approval process
|
||||
</button>
|
||||
<button
|
||||
className={clsx(
|
||||
@@ -183,7 +186,7 @@ const SettingsEditor: React.FC<SettingsEditorProps> = ({
|
||||
disabled={!canPreview}
|
||||
>
|
||||
<FaEye className="mr-2" size={18} />
|
||||
Preview Module
|
||||
Preview module
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -196,7 +196,7 @@ const LevelSettings: React.FC = () => {
|
||||
};
|
||||
}).filter(part => part.exercises.length > 0),
|
||||
requiresApproval: requiresApproval,
|
||||
isDiagnostic: requiresApproval ? true : false, // using isDiagnostic to keep exam hidden until the respective approval workflow is completed.
|
||||
isDiagnostic: false,
|
||||
minTimer,
|
||||
module: "level",
|
||||
id: title,
|
||||
|
||||
@@ -139,7 +139,7 @@ const ListeningSettings: React.FC = () => {
|
||||
};
|
||||
}),
|
||||
requiresApproval: requiresApproval,
|
||||
isDiagnostic: requiresApproval ? true : false, // using isDiagnostic to keep exam hidden until the respective approval workflow is completed.
|
||||
isDiagnostic: false,
|
||||
minTimer,
|
||||
module: "listening",
|
||||
id: title,
|
||||
|
||||
@@ -75,7 +75,7 @@ const ReadingSettings: React.FC = () => {
|
||||
};
|
||||
}),
|
||||
requiresApproval: requiresApproval,
|
||||
isDiagnostic: requiresApproval ? true : false, // using isDiagnostic to keep exam hidden until the respective approval workflow is completed.
|
||||
isDiagnostic: false,
|
||||
minTimer,
|
||||
module: "reading",
|
||||
id: title,
|
||||
|
||||
@@ -182,7 +182,7 @@ const SpeakingSettings: React.FC = () => {
|
||||
module: "speaking",
|
||||
id: title,
|
||||
requiresApproval: requiresApproval,
|
||||
isDiagnostic: requiresApproval ? true : false, // using isDiagnostic to keep exam hidden until the respective approval workflow is completed.
|
||||
isDiagnostic: false,
|
||||
variant: undefined,
|
||||
difficulty,
|
||||
instructorGender: "varied",
|
||||
|
||||
@@ -132,7 +132,7 @@ const WritingSettings: React.FC = () => {
|
||||
module: "writing",
|
||||
id: title,
|
||||
requiresApproval: requiresApproval,
|
||||
isDiagnostic: requiresApproval ? true : false, // using isDiagnostic to keep exam hidden until the respective approval workflow is completed.
|
||||
isDiagnostic: false,
|
||||
variant: undefined,
|
||||
difficulty,
|
||||
access,
|
||||
|
||||
@@ -78,8 +78,8 @@ async function POST(req: NextApiRequest, res: NextApiResponse) {
|
||||
throw new Error("Name already exists");
|
||||
}
|
||||
|
||||
if (isAdmin(user)) {
|
||||
exam.isDiagnostic = false;
|
||||
if (exam.requiresApproval === true) {
|
||||
exam.access = "confidential";
|
||||
}
|
||||
|
||||
await db.collection(module).updateOne(
|
||||
|
||||
@@ -150,7 +150,7 @@ export default function Home({ user, initialWorkflow, id, workflowAssignees, wor
|
||||
const handleApproveStep = () => {
|
||||
const isLastStep = (selectedStepIndex + 1 === currentWorkflow.steps.length);
|
||||
if (isLastStep) {
|
||||
if (!confirm(`Are you sure you want to approve the last step? Doing so will approve the exam.`)) return;
|
||||
if (!confirm(`Are you sure you want to approve the last step? Doing so will change the access type of the exam from confidential to private.`)) return;
|
||||
}
|
||||
|
||||
const updatedWorkflow: ApprovalWorkflow = {
|
||||
@@ -192,7 +192,7 @@ export default function Home({ user, initialWorkflow, id, workflowAssignees, wor
|
||||
const examId = currentWorkflow.examId;
|
||||
|
||||
axios
|
||||
.patch(`/api/exam/${examModule}/${examId}`, { isDiagnostic: false })
|
||||
.patch(`/api/exam/${examModule}/${examId}`, { access: "private" })
|
||||
.then(() => toast.success(`The exam was successfuly approved and this workflow has been completed.`))
|
||||
.catch((reason) => {
|
||||
if (reason.response.status === 404) {
|
||||
|
||||
Reference in New Issue
Block a user