added access variable to exams soo we can distinguish private, public and confidential exams and also bugfixes and improvements
This commit is contained in:
@@ -158,7 +158,7 @@ const defaultModuleSettings = (module: Module, minTimer: number, reset: boolean
|
||||
examLabel: defaultExamLabel(module),
|
||||
minTimer,
|
||||
difficulty: [sample(["A1", "A2", "B1", "B2", "C1", "C2"] as Difficulty[])!],
|
||||
isPrivate: true,
|
||||
access: "private",
|
||||
sectionLabels: sectionLabels(module),
|
||||
expandedSections: [(reset && (module === "writing" || module === "speaking")) ? 0 : 1],
|
||||
focusedSection: 1,
|
||||
|
||||
@@ -6,6 +6,7 @@ import { SECTION_ACTIONS, SectionActions, sectionReducer } from "./sectionReduce
|
||||
import { Module } from "@/interfaces";
|
||||
import { updateExamWithUserSolutions } from "@/stores/exam/utils";
|
||||
import { defaultExamUserSolutions } from "@/utils/exams";
|
||||
import { access } from "fs";
|
||||
|
||||
type RootActions = { type: 'FULL_RESET' } |
|
||||
{ type: 'INIT_EXAM_EDIT', payload: { exam: Exam; examModule: Module; id: string } } |
|
||||
@@ -121,7 +122,7 @@ export const rootReducer = (
|
||||
...defaultModuleSettings(examModule, exam.minTimer),
|
||||
examLabel: exam.label,
|
||||
difficulty: exam.difficulty,
|
||||
isPrivate: exam.private,
|
||||
access: exam.access,
|
||||
sections: examState,
|
||||
importModule: false,
|
||||
sectionLabels:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Difficulty, InteractiveSpeakingExercise, LevelPart, ListeningPart, ReadingPart, Script, SpeakingExercise, WritingExercise } from "@/interfaces/exam";
|
||||
import { AccessType, Difficulty, InteractiveSpeakingExercise, LevelPart, ListeningPart, ReadingPart, Script, SpeakingExercise, WritingExercise } from "@/interfaces/exam";
|
||||
import { Module } from "@/interfaces";
|
||||
import Option from "@/interfaces/option";
|
||||
|
||||
@@ -71,7 +71,7 @@ export interface LevelSectionSettings extends SectionSettings {
|
||||
isAudioGenerationOpen: boolean;
|
||||
listeningTopic: string;
|
||||
isListeningTopicOpen: boolean;
|
||||
|
||||
|
||||
// speaking
|
||||
speakingTopic?: string;
|
||||
speakingSecondTopic?: string;
|
||||
@@ -87,7 +87,7 @@ export interface LevelSectionSettings extends SectionSettings {
|
||||
|
||||
export type Context = "passage" | "video" | "audio" | "listeningScript" | "speakingScript" | "writing";
|
||||
export type Generating = Context | "exercises" | string | undefined;
|
||||
export type LevelGenResults = {generating: string, result: Record<string, any>[], module: Module};
|
||||
export type LevelGenResults = { generating: string, result: Record<string, any>[], module: Module };
|
||||
export type Section = LevelPart | ReadingPart | ListeningPart | WritingExercise | SpeakingExercise | InteractiveSpeakingExercise;
|
||||
export type ExamPart = ListeningPart | ReadingPart | LevelPart;
|
||||
|
||||
@@ -97,10 +97,10 @@ export interface SectionState {
|
||||
state: Section;
|
||||
expandedSubSections: number[];
|
||||
generating: Generating;
|
||||
genResult: {generating: string, result: Record<string, any>[], module: Module} | undefined;
|
||||
genResult: { generating: string, result: Record<string, any>[], module: Module } | undefined;
|
||||
levelGenerating: Generating[];
|
||||
levelGenResults: LevelGenResults[];
|
||||
focusedExercise?: {questionId: number; id: string} | undefined;
|
||||
focusedExercise?: { questionId: number; id: string } | undefined;
|
||||
writingSection?: number;
|
||||
speakingSection?: number;
|
||||
readingSection?: number;
|
||||
@@ -111,7 +111,7 @@ export interface SectionState {
|
||||
export interface ListeningInstructionsState {
|
||||
isInstructionsOpen: boolean;
|
||||
chosenOption: Option;
|
||||
|
||||
|
||||
currentInstructions: string;
|
||||
presetInstructions: string;
|
||||
customInstructions: string;
|
||||
@@ -126,8 +126,8 @@ export interface ModuleState {
|
||||
sections: SectionState[];
|
||||
minTimer: number;
|
||||
difficulty: Difficulty[];
|
||||
isPrivate: boolean;
|
||||
sectionLabels: {id: number; label: string;}[];
|
||||
access: AccessType;
|
||||
sectionLabels: { id: number; label: string; }[];
|
||||
expandedSections: number[];
|
||||
focusedSection: number;
|
||||
importModule: boolean;
|
||||
|
||||
Reference in New Issue
Block a user