mario-education 2.4.45-admin → 2.4.45-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/MarioFramework.Education/ClientApp/src/components/Loading/LoadLanguage.d.ts +3 -0
  2. package/dist/MarioFramework.Education/ClientApp/src/components/Questions/QuestionList.d.ts +1 -0
  3. package/dist/MarioFramework.Education/ClientApp/src/components/Questions/QuestionSelector.d.ts +1 -0
  4. package/dist/MarioFramework.Education/ClientApp/src/components/Select/SelectFilter.d.ts +1 -0
  5. package/dist/MarioFramework.Education/ClientApp/src/containers/AdminTraining/hooks/useAdminTraning.d.ts +4 -0
  6. package/dist/MarioFramework.Education/ClientApp/src/containers/AdminTraining/views/AdminTraining.d.ts +3 -0
  7. package/dist/MarioFramework.Education/ClientApp/src/containers/AssignAssistant/components/AssignAssistantModal.d.ts +4 -0
  8. package/dist/MarioFramework.Education/ClientApp/src/containers/AssignAssistant/hooks/useAssignAssistant.d.ts +18 -0
  9. package/dist/MarioFramework.Education/ClientApp/src/containers/AssignAssistant/utils/constants.d.ts +3 -0
  10. package/dist/MarioFramework.Education/ClientApp/src/containers/AssignAssistant/utils/type.interface.d.ts +45 -0
  11. package/dist/MarioFramework.Education/ClientApp/src/containers/AssignAssistant/views/AssignAssistantList.d.ts +3 -0
  12. package/dist/MarioFramework.Education/ClientApp/src/containers/Dashboard/components/HeaderChart/HeaderChart.d.ts +1 -0
  13. package/dist/MarioFramework.Education/ClientApp/src/containers/Dashboard/components/LearningStrategiesTable.d.ts +13 -0
  14. package/dist/MarioFramework.Education/ClientApp/src/containers/Dashboard/components/ReadinessToLearn.d.ts +7 -0
  15. package/dist/MarioFramework.Education/ClientApp/src/containers/Dashboard/configs/utils.d.ts +1 -1
  16. package/dist/MarioFramework.Education/ClientApp/src/containers/Dashboard/hooks/useChartDatas.d.ts +19 -2
  17. package/dist/MarioFramework.Education/ClientApp/src/containers/Dashboard/hooks/useDashboard.d.ts +6 -0
  18. package/dist/MarioFramework.Education/ClientApp/src/containers/QuestionBank/configs/questionDetailSchema.d.ts +4 -4
  19. package/dist/MarioFramework.Education/ClientApp/src/containers/QuestionBank/hooks/useQuestionDetail.d.ts +1 -0
  20. package/dist/MarioFramework.Education/ClientApp/src/containers/TemplateSurvey/components/TemplateCateModal.d.ts +3 -0
  21. package/dist/MarioFramework.Education/ClientApp/src/containers/TemplateSurvey/hooks/useTemplateCateDetail.d.ts +35 -0
  22. package/dist/MarioFramework.Education/ClientApp/src/containers/TemplateSurvey/hooks/useTemplateCateList.d.ts +9 -0
  23. package/dist/MarioFramework.Education/ClientApp/src/containers/TemplateSurvey/views/TemplateSurveyList.d.ts +3 -0
  24. package/dist/MarioFramework.Education/ClientApp/src/containers/Training/hooks/useTrainingLink.d.ts +1 -0
  25. package/dist/MarioFramework.Education/ClientApp/src/index.d.ts +3 -1
  26. package/dist/MarioFramework.Education/ClientApp/src/services/dashboardService.d.ts +1 -0
  27. package/dist/MarioFramework.Education/ClientApp/src/services/questionCategoryService.d.ts +5 -0
  28. package/dist/MarioFramework.Education/ClientApp/src/services/userService.d.ts +4 -0
  29. package/dist/MarioFramework.Education/ClientApp/src/utils/constants.d.ts +8 -8
  30. package/dist/MarioFramework.Education/ClientApp/src/utils/{serviceType.interface.d.ts → servicetype.interface.d.ts} +0 -0
  31. package/dist/index.css +893 -877
  32. package/dist/index.js +6781 -5363
  33. package/dist/index.js.map +1 -1
  34. package/dist/index.modern.js +6782 -5366
  35. package/dist/index.modern.js.map +1 -1
  36. package/package.json +94 -96
@@ -0,0 +1,3 @@
1
+ import { FC } from "react";
2
+ declare const LoadLanguage: FC;
3
+ export default LoadLanguage;
@@ -5,6 +5,7 @@ interface Props {
5
5
  isTeacherQuestion?: boolean;
6
6
  onChangeMandatory: Function;
7
7
  extraQuestionMandatory?: object[];
8
+ isHiddenMandatory?: boolean;
8
9
  }
9
10
  declare const QuestionList: FC<Props>;
10
11
  export default QuestionList;
@@ -4,6 +4,7 @@ interface Props {
4
4
  onChange: Function;
5
5
  value: any | null;
6
6
  externalQuestionIds: number[];
7
+ isDefaultQuestionSurvey?: boolean;
7
8
  }
8
9
  declare const QuestionSelector: FC<Props>;
9
10
  export default QuestionSelector;
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import "react-datepicker/dist/react-datepicker.css";
2
3
  import { PROPS_FILTERS_COMPONENT } from "../../utils/type";
3
4
  declare const SelectFilter: ({ studentUserId, studentId, studentDefault, handleChangeFilters, name, icon, option, onChangeFilters, btnStyle, filter, teacherUserId, changeCurrentTeacherUserId }: PROPS_FILTERS_COMPONENT) => JSX.Element;
4
5
  export default SelectFilter;
@@ -0,0 +1,4 @@
1
+ declare const useAdminTraning: () => {
2
+ linkAdminTraining: string;
3
+ };
4
+ export default useAdminTraning;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const AdminTraining: () => JSX.Element;
3
+ export default AdminTraining;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { IAssignAssistantModal } from "../utils/type.interface";
3
+ declare const _default: React.ForwardRefExoticComponent<IAssignAssistantModal & React.RefAttributes<HTMLInputElement>>;
4
+ export default _default;
@@ -0,0 +1,18 @@
1
+ /// <reference types="react" />
2
+ import { IOptions, IStudentWithoutAssistantItem } from "../utils/type.interface";
3
+ declare const useAssignAssistant: () => {
4
+ userList: IStudentWithoutAssistantItem[];
5
+ totalItems: number;
6
+ filters: import("mario-core").Filter;
7
+ changeFilters: (updatedFilters: any) => void;
8
+ modal: import("react").MutableRefObject<any>;
9
+ userChoiced: IStudentWithoutAssistantItem;
10
+ options: IOptions[];
11
+ changeAssistantId: (id: number) => void;
12
+ assistantChangeId: number;
13
+ handleAssign: () => Promise<void>;
14
+ resetData: () => void;
15
+ choiceUser: (userChoiced: IStudentWithoutAssistantItem) => void;
16
+ isChecked: boolean;
17
+ };
18
+ export default useAssignAssistant;
@@ -0,0 +1,3 @@
1
+ import { IStudentWithoutAssistantItem } from "./type.interface";
2
+ export declare const INITIAL_USER_CHOICE: IStudentWithoutAssistantItem;
3
+ export declare const DEFAULT_DATE = "0001-01-01T00:00:00";
@@ -0,0 +1,45 @@
1
+ export interface IOptions {
2
+ label: string;
3
+ value: number;
4
+ }
5
+ export declare type USER_CHOICE = {
6
+ id: string;
7
+ studentName: string;
8
+ emailStudent: string;
9
+ assistantId: string;
10
+ emailAssistant: string;
11
+ assistantName: string;
12
+ };
13
+ export declare type Assistant = {
14
+ id: string;
15
+ assistantId: number;
16
+ firstName: string;
17
+ lastName: string;
18
+ fullName: string;
19
+ email: string;
20
+ };
21
+ export interface IAssignAssistantModal {
22
+ header: string;
23
+ onAssign: () => Promise<void>;
24
+ resetData: () => void;
25
+ userChoiced: IStudentWithoutAssistantItem;
26
+ options: IOptions[];
27
+ assistantChangeId: number;
28
+ setAssistantChangeId: (value: any) => void;
29
+ isChecked: boolean;
30
+ }
31
+ export interface IStudentWithoutAssistantItem {
32
+ id: number;
33
+ emailStudent: string;
34
+ studentName: string;
35
+ teacherId?: number;
36
+ dateOfBirth: string;
37
+ createdAt: string;
38
+ }
39
+ export declare type TypeStudentWithoutAssistantData = {
40
+ currentPage: number;
41
+ pageSize: number;
42
+ totalItems: number;
43
+ totalPages: number;
44
+ items: IStudentWithoutAssistantItem[];
45
+ };
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const AssignAssistantList: () => JSX.Element;
3
+ export default AssignAssistantList;
@@ -10,6 +10,7 @@ interface IProps {
10
10
  options?: IChartOptions[];
11
11
  contentTooltip?: string;
12
12
  index: number;
13
+ onClickOptions?: () => void;
13
14
  }
14
15
  declare const HeaderChart: FC<IProps>;
15
16
  export default HeaderChart;
@@ -0,0 +1,13 @@
1
+ /// <reference types="react" />
2
+ import { DashboardFilter } from "../configs/types";
3
+ interface PropsType {
4
+ isOpen: boolean;
5
+ onClosed: () => void;
6
+ filter: any;
7
+ data: any;
8
+ getData: () => void;
9
+ changeFilter: (updatedFilter: any) => void;
10
+ filterDashboard: DashboardFilter;
11
+ }
12
+ declare const LearningStrategiesTable: ({ isOpen, onClosed, filter, data, getData, changeFilter, filterDashboard }: PropsType) => JSX.Element;
13
+ export default LearningStrategiesTable;
@@ -0,0 +1,7 @@
1
+ import { FC } from "react";
2
+ import { IReadinessToLearning } from "../configs/types";
3
+ interface Props {
4
+ data: IReadinessToLearning[];
5
+ }
6
+ declare const ReadinessToLearn: FC<Props>;
7
+ export default ReadinessToLearn;
@@ -97,7 +97,7 @@ export declare const studentByGradeConvert: (newData: IStudentByGrade[]) => {
97
97
  }[];
98
98
  export declare const findTotalStudentByGrade: (data: IStudentByGrade[]) => number;
99
99
  export declare const getConvertMinuteToHour: (timeSecond: any) => string;
100
- export declare const readinesToLearnoptions: (seriesName: string[]) => ApexOptions;
100
+ export declare const readinesToLearnoptions: (seriesName: string[], data: any) => ApexOptions;
101
101
  export declare const convertDataToSeriesBullderChart: (data: IReadinessToLearning[]) => {
102
102
  name: string;
103
103
  data: import("react").ReactText[][];
@@ -2,7 +2,17 @@ import React from "react";
2
2
  import { PROPS_FILTERS_COMPONENT } from "../../../utils/type";
3
3
  import { TYPECHART } from "../configs/types";
4
4
  declare const useChartDatas: () => {
5
- chartDashBoards: {
5
+ chartDashBoards: ({
6
+ chartIndex: number;
7
+ id: string;
8
+ label: string;
9
+ children: (_: TYPECHART) => JSX.Element;
10
+ isShowChangeChart: boolean;
11
+ options: never[];
12
+ contentTooltip: string;
13
+ handleClickOpenTable: () => void;
14
+ } | {
15
+ chartIndex: number;
6
16
  id: string;
7
17
  label: string;
8
18
  children: (typeChart: TYPECHART, isPDF?: boolean | undefined) => JSX.Element;
@@ -12,7 +22,8 @@ declare const useChartDatas: () => {
12
22
  value: TYPECHART;
13
23
  }[];
14
24
  contentTooltip: string;
15
- }[];
25
+ handleClickOpenTable?: undefined;
26
+ })[];
16
27
  user: any;
17
28
  filter: import("../configs/types").DashboardFilter;
18
29
  LIST_FILTERS_LEFT: PROPS_FILTERS_COMPONENT[];
@@ -55,5 +66,11 @@ declare const useChartDatas: () => {
55
66
  dataConvertedSafety: string[];
56
67
  activeColumnSafety: boolean[];
57
68
  avgSafety: number[];
69
+ learningStrategiesData: any;
70
+ openLearningStrategiesTable: boolean;
71
+ handleOpenCloseLearningStrategiesTable: () => void;
72
+ filterLearningStrategiesTable: any;
73
+ changeFiltersLearningStrategiesTable: (updatedFilter: any) => void;
74
+ getLearningStrategiesTableData: () => Promise<void>;
58
75
  };
59
76
  export default useChartDatas;
@@ -53,5 +53,11 @@ declare const useDashboard: () => {
53
53
  dataConvertedSafety: string[];
54
54
  monthsSafety: string[];
55
55
  activeColumnSafety: boolean[];
56
+ learningStrategiesData: any;
57
+ openLearningStrategiesTable: boolean;
58
+ handleOpenCloseLearningStrategiesTable: () => void;
59
+ filterLearningStrategiesTable: any;
60
+ changeFiltersLearningStrategiesTable: (updatedFilter: any) => void;
61
+ getLearningStrategiesTableData: () => Promise<void>;
56
62
  };
57
63
  export default useDashboard;
@@ -4,8 +4,8 @@ declare const schema: import("yup/lib/object").OptionalObjectSchema<{
4
4
  type: import("yup/lib/string").RequiredStringSchema<string | undefined, Record<string, any>>;
5
5
  categoryId: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
6
6
  explainAnswer: yup.StringSchema<string | undefined, Record<string, any>, string | undefined>;
7
- fromLabel: yup.StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
8
- toLabel: yup.StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
7
+ fromLabel: yup.StringSchema<import("yup/lib/types").Maybe<string>, Record<string, any>, import("yup/lib/types").Maybe<string>>;
8
+ toLabel: yup.StringSchema<import("yup/lib/types").Maybe<string>, Record<string, any>, import("yup/lib/types").Maybe<string>>;
9
9
  numberOfStars: yup.NumberSchema<number | null | undefined, Record<string, any>, number | null | undefined>;
10
10
  answers: import("yup/lib/array").OptionalArraySchema<yup.AnySchema<any, any, any>, any, any[] | undefined>;
11
11
  isDefaultQuestion: yup.BooleanSchema<boolean | undefined, Record<string, any>, boolean | undefined>;
@@ -17,8 +17,8 @@ declare const schema: import("yup/lib/object").OptionalObjectSchema<{
17
17
  type: import("yup/lib/string").RequiredStringSchema<string | undefined, Record<string, any>>;
18
18
  categoryId: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
19
19
  explainAnswer: yup.StringSchema<string | undefined, Record<string, any>, string | undefined>;
20
- fromLabel: yup.StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
21
- toLabel: yup.StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
20
+ fromLabel: yup.StringSchema<import("yup/lib/types").Maybe<string>, Record<string, any>, import("yup/lib/types").Maybe<string>>;
21
+ toLabel: yup.StringSchema<import("yup/lib/types").Maybe<string>, Record<string, any>, import("yup/lib/types").Maybe<string>>;
22
22
  numberOfStars: yup.NumberSchema<number | null | undefined, Record<string, any>, number | null | undefined>;
23
23
  answers: import("yup/lib/array").OptionalArraySchema<yup.AnySchema<any, any, any>, any, any[] | undefined>;
24
24
  isDefaultQuestion: yup.BooleanSchema<boolean | undefined, Record<string, any>, boolean | undefined>;
@@ -23,6 +23,7 @@ declare type QuestionDetail = {
23
23
  isSurvey: boolean;
24
24
  subQuestions: string[];
25
25
  isBeforeSession: boolean;
26
+ isDefaultQuestionSurvey: boolean;
26
27
  };
27
28
  declare const useQuestionDetail: (id?: number | undefined) => {
28
29
  questionDetail: QuestionDetail;
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ declare const _default: React.ForwardRefExoticComponent<Pick<any, string | number | symbol> & React.RefAttributes<unknown>>;
3
+ export default _default;
@@ -0,0 +1,35 @@
1
+ /// <reference types="react" />
2
+ declare type questionCateDetail = {
3
+ name: string;
4
+ questionIds?: number[];
5
+ };
6
+ declare type TemplateQuestion = {
7
+ id: number;
8
+ text: string;
9
+ };
10
+ declare const useTemplateCateDetail: () => {
11
+ id: number;
12
+ setId: import("react").Dispatch<import("react").SetStateAction<number>>;
13
+ questionCateDetail: questionCateDetail;
14
+ confirmData: (values: any, cb: any) => Promise<void>;
15
+ initValue: questionCateDetail;
16
+ reset: () => void;
17
+ edited: boolean;
18
+ setEdited: import("react").Dispatch<import("react").SetStateAction<boolean>>;
19
+ setEditedTrue: () => Promise<void>;
20
+ setEditedFalse: () => Promise<void>;
21
+ categoryId: number;
22
+ setCategoryId: import("react").Dispatch<import("react").SetStateAction<number>>;
23
+ questionSelectorValue: {
24
+ id: number;
25
+ value: number;
26
+ label: string;
27
+ text: string;
28
+ } | null;
29
+ setTemporaryQuestion: import("react").Dispatch<import("react").SetStateAction<TemplateQuestion | null>>;
30
+ addQuestion: () => void;
31
+ listQuestions: TemplateQuestion[];
32
+ setListQuestions: import("react").Dispatch<import("react").SetStateAction<TemplateQuestion[]>>;
33
+ removeQuestion: (questionId: number) => void;
34
+ };
35
+ export default useTemplateCateDetail;
@@ -0,0 +1,9 @@
1
+ declare const useTemplateCateList: () => {
2
+ questionCateList: any;
3
+ totalItems: any;
4
+ filters: import("mario-core").Filter;
5
+ changeFilters: (updatedFilters: any) => void;
6
+ getData: () => Promise<void>;
7
+ removeData: (id: number) => void;
8
+ };
9
+ export default useTemplateCateList;
@@ -0,0 +1,3 @@
1
+ import { FC } from "react";
2
+ declare const TemplateSurveyList: FC;
3
+ export default TemplateSurveyList;
@@ -1,6 +1,7 @@
1
1
  declare type LINK_TRAINING = {
2
2
  teacherTraining: string;
3
3
  studentTraining: string;
4
+ adminTraining: string;
4
5
  };
5
6
  declare const useTrainingLink: () => {
6
7
  linkTraining: LINK_TRAINING;
@@ -29,4 +29,6 @@ import CompareTeacher from "./containers/CompareTeacher/views/CompareTeacher";
29
29
  import Dashboard from "./containers/Dashboard/views/Dashboard";
30
30
  import SessionTemplateList from "./containers/SessionTemplate/views/SessionTemplateList";
31
31
  import SessionTemplateGeneralClassList from "./containers/SessionTemplateGeneralClass/views/SessionTemplateGeneralClassList";
32
- export { ClassList, ConferenceRubricList, ConferenceRubricDetail, SuggestionList, LearningStrategyList, SetupContainer, QuestionBankList, ReflectionFormList, ReflectionContainer, QuestionDetail, SubjectList, LearningSupportCategoryList, BadgeList, GoalExampleList, TutorialScreenContainer, FeedbackList, AssessmentList, QuestionBankContainer, QuestionCategoryList, AssignmentList, AssessmentAssignmentContainer, SessionTemplateContainer, SessionTemplateDetail, SessionTemplateGeneralClassDetail, CustomAlertList, CertificateContainer, CompareTeacher, AssetLog, SessionTemplateList, SessionTemplateGeneralClassList, Dashboard };
32
+ import LoadLanguage from "./components/Loading/LoadLanguage";
33
+ import AdminTraining from "./containers/AdminTraining/views/AdminTraining";
34
+ export { ClassList, ConferenceRubricList, ConferenceRubricDetail, SuggestionList, LearningStrategyList, SetupContainer, QuestionBankList, ReflectionFormList, ReflectionContainer, QuestionDetail, SubjectList, LearningSupportCategoryList, BadgeList, GoalExampleList, TutorialScreenContainer, FeedbackList, AssessmentList, QuestionBankContainer, QuestionCategoryList, AssignmentList, AssessmentAssignmentContainer, SessionTemplateContainer, SessionTemplateDetail, SessionTemplateGeneralClassDetail, CustomAlertList, CertificateContainer, CompareTeacher, AssetLog, SessionTemplateList, SessionTemplateGeneralClassList, Dashboard, LoadLanguage, AdminTraining };
@@ -18,3 +18,4 @@ export declare const getStudentByAge: (filter: any) => Promise<import("axios").A
18
18
  export declare const getStudentByGender: (filter: any) => Promise<import("axios").AxiosResponse<any>>;
19
19
  export declare const getGrades: (studentUserId: string) => Promise<import("axios").AxiosResponse<any>>;
20
20
  export declare const getBandScore: () => Promise<import("axios").AxiosResponse<any>>;
21
+ export declare const getLearningStrategiesTableApi: (filter: any) => Promise<import("axios").AxiosResponse<any>>;
@@ -4,3 +4,8 @@ export declare const getById: (id: number) => Promise<import("axios").AxiosRespo
4
4
  export declare const create: (data: any) => Promise<import("axios").AxiosResponse<any>>;
5
5
  export declare const update: (data: any) => Promise<import("axios").AxiosResponse<any>>;
6
6
  export declare const remove: (id: number) => Promise<import("axios").AxiosResponse<any>>;
7
+ export declare const getSurvey: (filter: Filter) => Promise<import("axios").AxiosResponse<any>>;
8
+ export declare const getSurveyById: (id: number) => Promise<import("axios").AxiosResponse<any>>;
9
+ export declare const createSurvey: (data: any) => Promise<import("axios").AxiosResponse<any>>;
10
+ export declare const updateSurvey: (data: any) => Promise<import("axios").AxiosResponse<any>>;
11
+ export declare const removeSurvey: (id: number) => Promise<import("axios").AxiosResponse<any>>;
@@ -1,7 +1,11 @@
1
+ import { TypeStudentWithoutAssistantData } from "../containers/AssignAssistant/utils/type.interface";
1
2
  import { TypeStudentAssistantData } from "../containers/SwitchAssistant/utils/type.interface";
2
3
  import { IStudentWidthAssistant } from "../utils/serviceType.interface";
3
4
  export declare const getStudentAssistant: (data: IStudentWidthAssistant) => Promise<import("axios").AxiosResponse<TypeStudentAssistantData>>;
5
+ export declare const getStudentWithoutAssistant: (data: IStudentWidthAssistant) => Promise<import("axios").AxiosResponse<TypeStudentWithoutAssistantData>>;
4
6
  export declare const getAssistant: () => Promise<import("axios").AxiosResponse<any>>;
5
7
  export declare const getAssistantByStudentId: (studentId: number) => Promise<import("axios").AxiosResponse<any>>;
8
+ export declare const getAssistants: () => Promise<import("axios").AxiosResponse<any>>;
6
9
  export declare const changeAssistantOfStudent: (id: number, assistantUserId: string) => Promise<import("axios").AxiosResponse<any>>;
10
+ export declare const assignAssistantOfStudent: (studentId: number, teacherId: number, assistantId: number) => Promise<import("axios").AxiosResponse<any>>;
7
11
  export declare const removeAssistantForStudent: (studentId: number) => Promise<import("axios").AxiosResponse<any>>;
@@ -7,12 +7,12 @@ export declare const CONFERENCE_RUBRIC_TYPES: {
7
7
  };
8
8
  export declare const GENDER_FILTER: string[];
9
9
  export declare enum FILTER_NAME {
10
- Calendar = "Calendar",
11
- Gender = "Gender",
12
- Grade = "Grade",
13
- BandScore = "Current Grade",
14
- StudentName = "Student name",
15
- TeacherName = "Teacher name",
16
- StartDate = "Start Date",
17
- EndDate = "End Date"
10
+ Calendar = "calendar",
11
+ Gender = "gender",
12
+ Grade = "grade",
13
+ BandScore = "current_grade",
14
+ StudentName = "student_name",
15
+ TeacherName = "teacher_name",
16
+ StartDate = "start_date",
17
+ EndDate = "end_date"
18
18
  }