Skip to content

Commit 74a2ef0

Browse files
feat: data shape update and mock data paths
1 parent 9d0f6bf commit 74a2ef0

File tree

6 files changed

+167
-83
lines changed

6 files changed

+167
-83
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
import { StrictDict } from '@edx/react-unit-test-utils';
2+
import oraConfig from './oraConfig';
3+
import pageData from './pageData';
4+
5+
export const viewKeys = StrictDict({
6+
xblock: 'xblock',
7+
submission: 'submission',
8+
training: 'student_training',
9+
self: 'self_assessment',
10+
peer: 'peer_assessment',
11+
myGrades: 'my_grades',
12+
});
13+
14+
export const progressKeys = StrictDict({
15+
unsaved: 'unsaved',
16+
saved: 'saved',
17+
training: 'training',
18+
self: 'self',
19+
peer: 'peer',
20+
peerWaiting: 'peerWaiting',
21+
staff: 'staff',
22+
graded: 'graded',
23+
});
24+
25+
export const progressStates = {
26+
unsaved: pageData.progressStates.submission,
27+
saved: pageData.progressStates.submission,
28+
training: pageData.progressStates.training(0),
29+
self: pageData.progressStates.self,
30+
peer: pageData.progressStates.peer(),
31+
peerWaiting: pageData.progressStates.peer({ numCompleted: 1, isWaiting: true }),
32+
staff: pageData.progressStates.staff,
33+
graded: pageData.progressStates.graded,
34+
};
35+
36+
export const submissionStatesByView = {
37+
[viewKeys.xblock]: null,
38+
[viewKeys.submission]: pageData.submissionStates.individualSubmission,
39+
[viewKeys.self]: pageData.submissionStates.individualSubmission,
40+
[viewKeys.training]: pageData.submissionStates.individualSubmission,
41+
[viewKeys.peer]: pageData.submissionStates.individualSubmission,
42+
[viewKeys.myGrades]: pageData.submissionStates.individualSubmission,
43+
};
44+
45+
export const assessmentStatesByView = {
46+
[viewKeys.xblock]: null,
47+
[viewKeys.submission]: null,
48+
[viewKeys.self]: null,
49+
[viewKeys.training]: null,
50+
[viewKeys.peer]: null,
51+
[viewKeys.myGrades]: {
52+
effectiveAssessmentType: 'staff',
53+
...pageData.assessmentStates.graded,
54+
},
55+
};
56+
57+
export const loadState = ({ view, progressKey }) => {
58+
const state = {
59+
progress: progressStates[progressKey],
60+
submission: submissionStatesByView[view],
61+
assessment: assessmentStatesByView[view],
62+
};
63+
if (view === viewKeys.submission && progressKey === progressKeys.unsaved) {
64+
state.submission = pageData.submissionStates.emptySubmission;
65+
}
66+
return state;
67+
};
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
/* eslint-disable camelcase */
2+
3+
export const createAssessmentState = ({
4+
options_selected = [],
5+
criterion_feedback,
6+
overall_feedback = '',
7+
}) => ({
8+
options_selected,
9+
criterion_feedback,
10+
overall_feedback,
11+
});
12+
13+
export const emptySelections = {
14+
'Criterion 1 name': null,
15+
'Criterion 2 name': null,
16+
'Criterion 3 name': null,
17+
'Criterion 4 name': null,
18+
};
19+
export const filledSelections = {
20+
'Criterion 1 name': 'Option 4 name',
21+
'Criterion 2 name': 'Option 3 name',
22+
'Criterion 3 name': 'Option 2 name',
23+
'Criterion 4 name': 'Option 1 name',
24+
};
25+
26+
const gradedState = createAssessmentState({
27+
options_selected: filledSelections,
28+
criterion_feedback: {
29+
'Criterion 1 name': 'feedback 1',
30+
'Criterion 2 name': 'feedback 2',
31+
'Criterion 3 name': 'feedback 3',
32+
'Criterion 4 name': 'feedback 4',
33+
},
34+
overall_feedback: 'nice job',
35+
});
36+
37+
export default {
38+
graded: {
39+
staff: {
40+
stepScore: { earned: 10, possible: 10 },
41+
assessment: gradedState,
42+
},
43+
peer: {
44+
stepScore: { earned: 10, possible: 10 },
45+
assessment: [
46+
gradedState,
47+
gradedState,
48+
gradedState,
49+
gradedState,
50+
gradedState,
51+
],
52+
},
53+
peerUnweighted: {
54+
stepScore: null,
55+
assessment: [
56+
gradedState,
57+
gradedState,
58+
gradedState,
59+
],
60+
},
61+
self: {
62+
stepScore: { earned: 10, possible: 10 },
63+
assessment: gradedState,
64+
},
65+
},
66+
};
Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,9 @@
11
import progressStates from './progress';
2-
import rubricStates from './rubric';
2+
import assessmentStates from './assessments';
33
import submissionStates from './submission';
44

5-
export const emptySubmission = {
6-
progress: progressStates.submission,
7-
rubric: rubricStates.criteriaFeedbackEnabled.empty,
8-
submission: submissionStates.individialSubmission,
9-
};
10-
11-
export const peerAssessment = {
12-
progress: progressStates.peer(),
13-
rubric: rubricStates.criteriaFeedbackEnabled.filled,
14-
submission: submissionStates.individialSubmission,
15-
};
16-
175
export default {
186
progressStates,
19-
rubricStates,
7+
assessmentStates,
208
submissionStates,
21-
shapes: {
22-
emptySubmission,
23-
peerAssessment,
24-
},
259
};

src/data/services/lms/fakeData/pageData/rubric.js

Lines changed: 0 additions & 59 deletions
This file was deleted.

src/data/services/lms/fakeData/pageData/submission.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
/* eslint-disable camelcase */
2+
import { StrictDict } from '@edx/react-unit-test-utils';
23

34
/// Submission
45
export const createFiles = (numFiles) => Array.from(Array(numFiles)).map((_, i) => ({
@@ -53,7 +54,7 @@ export const createSubmission = ({
5354

5455
// Rubric
5556

56-
export default {
57+
export default StrictDict({
5758
emptySubmission: createSubmission({
5859
teamInfo: {},
5960
submissionStatus: createSubmissionStatus({
@@ -62,14 +63,14 @@ export default {
6263
has_received_grade: false,
6364
}),
6465
response: createSubmissionResponse({
65-
text_responses: ['response 1', 'response 2'],
66+
text_responses: ['', ''],
6667
uploaded_files: [],
6768
}),
6869
}),
69-
individialSubmission: createSubmission({
70+
individualSubmission: createSubmission({
7071
team_info: {},
7172
submission_status: createSubmissionStatus(),
7273
response: createSubmissionResponse(),
7374
}),
7475
teamSubmission: createSubmission(),
75-
};
76+
});

src/data/services/lms/types/pageData.ts

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
// Progress data
12
export interface ReceivedGradeData {
23
earned: number,
34
possible: number,
@@ -33,6 +34,7 @@ export interface ProgressData {
3334
activeStepInfo: ActiveStepInfo,
3435
}
3536

37+
// Submission Data
3638
export interface SubmissionStatusData {
3739
hasSubmitted: boolean,
3840
hasCancelled: boolean,
@@ -66,14 +68,37 @@ export interface SubmissionData extends SubmissionStatusData {
6668
response: SubmissionResponseData,
6769
}
6870

69-
export interface RubricData {
71+
// Assessments Data
72+
export interface AssessmentData {
7073
optionsSelected: { [key: string]: string | null },
7174
criterionFeedback: { [key: string]: string },
7275
overallFeedback: string | null,
7376
}
7477

78+
export interface AssessmentsData {
79+
effectiveAssessmentType: 'staff' | 'peer' | 'self',
80+
assessments: {
81+
staff?: {
82+
stepScore: { earned: number, possible: number },
83+
assessment: AssessmentData,
84+
},
85+
peer?: {
86+
stepScore: { earned: number, possible: number },
87+
assessments: AssessmentData[],
88+
},
89+
peerUnweighted?: {
90+
stepScore: null,
91+
assessmenst: AssessmentData[],
92+
},
93+
self?: {
94+
stepScore: { earned: number, possible: number },
95+
assessment: AssessmentData,
96+
},
97+
},
98+
}
99+
75100
export interface PageData {
76101
progress: ProgressData,
77102
submission: SubmissionData,
78-
rubric: RubricData,
103+
assessments: AssessmentsData
79104
}

0 commit comments

Comments
 (0)