Skip to content

Commit 11590b6

Browse files
feat: mock data updates
1 parent 14b02e2 commit 11590b6

File tree

7 files changed

+446
-197
lines changed

7 files changed

+446
-197
lines changed

src/data/services/lms/constants.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ export const stepNames = StrictDict({
3737
peer: 'peer',
3838
self: 'self',
3939
studentTraining: 'studentTraining',
40+
staff: 'staff',
4041
myGrades: 'myGrades',
4142
});
4243

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
import { StrictDict } from '@edx/react-unit-test-utils';
2+
import { stepNames } from 'data/services/lms/constants';
3+
4+
export const viewKeys = StrictDict({
5+
xblock: 'xblock',
6+
submission: 'submission',
7+
studentTraining: 'student_training',
8+
self: 'self_assessment',
9+
peer: 'peer_assessment',
10+
myGrades: 'my_grades',
11+
});
12+
13+
export const progressKeys = StrictDict({
14+
cancelledDuringSubmission: 'cancelled_during_submission',
15+
cancelledDuringStudentTraining: 'cancelled_during_student_training',
16+
cancelledDuringSelf: 'cancelled_during_self',
17+
cancelledDuringPeer: 'cancelled_during_peer',
18+
cancelledDuringStaff: 'cancelled_during_staff',
19+
submissionEarly: 'submission_early',
20+
submissionClosed: 'submission_closed',
21+
submissionTeamAlreadySubmitted: 'submission_team_already_submitted',
22+
submissionNeedTeam: 'submission_need_team',
23+
submissionUnsaved: 'submission_unsaved',
24+
submissionSaved: 'submission_saved',
25+
submissionFinished: 'submission_finished',
26+
studentTraining: 'student_training',
27+
studentTrainingValidation: 'student_training_validation',
28+
studentTrainingPartial: 'student_training_partial',
29+
studentTrainingFinished: 'student_training_finished',
30+
selfAssessment: 'self_assessment',
31+
selfAssessmentLate: 'self_assessment_late',
32+
selfAssessmentFinished: 'self_assessment_finished',
33+
peerAssessment: 'peer_assessment',
34+
peerAssessmentEarly: 'peer_assessment_early',
35+
peerAssessmentLate: 'peer_assessment_late',
36+
peerAssessmentWaiting: 'peer_assessment_waiting',
37+
peerAssessmentFinished: 'peer_assessment_finished',
38+
staffAfterSubmission: 'staff_after_submission',
39+
staffAfterSelf: 'staff_after_self',
40+
staffAfterPeer: 'staff_after_peer',
41+
graded: 'graded',
42+
gradedSubmittedOnPreviousTeam: 'graded_submitted_on_previous_team',
43+
});
44+
45+
export const teamStates = [
46+
progressKeys.gradedSubmittedOnPreviousTeam,
47+
progressKeys.submissionTeamAlreadySubmitted,
48+
progressKeys.submissionNeedTeam,
49+
];
50+
51+
export const closedStates = {
52+
open: { isClosed: false },
53+
notAvailable: { isClosed: true, closedReason: 'notAvailable' },
54+
closed: { isClosed: true, closedReason: 'pastDue' },
55+
};
56+
57+
export const stepConfigs = StrictDict({
58+
all: [stepNames.studentTraining, stepNames.self, stepNames.peer, stepNames.staff],
59+
self: [stepNames.self],
60+
peer: [stepNames.peer],
61+
staff: [stepNames.staff],
62+
trainingAndSelf: [stepNames.studentTraining, stepNames.self],
63+
trainingAndPeer: [stepNames.studentTraining, stepNames.peer],
64+
selfAndStaff: [stepNames.self, stepNames.staff],
65+
});
66+
67+
export const stateStepConfigs = {
68+
[progressKeys.staffAfterSubmission]: stepConfigs.staff,
69+
[progressKeys.staffAfterSelf]: stepConfigs.selfAndStaff,
70+
};
Lines changed: 26 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,36 @@
11
import { StrictDict } from '@edx/react-unit-test-utils';
2-
import { routeSteps } from 'data/services/lms/constants';
3-
import pageData from './pageData';
4-
5-
export const viewKeys = StrictDict({
6-
xblock: 'xblock',
7-
submission: 'submission',
8-
studentTraining: 'student_training',
9-
self: 'self_assessment',
10-
peer: 'peer_assessment',
11-
myGrades: 'my_grades',
12-
});
132

14-
export const progressKeys = StrictDict({
15-
unsaved: 'unsaved',
16-
saved: 'saved',
17-
studentTraining: 'studentTraining',
18-
self: 'self',
19-
peer: 'peer',
20-
peerWaiting: 'peerWaiting',
21-
staff: 'staff',
22-
graded: 'graded',
3+
import pageData from './pageData';
4+
import {
5+
progressKeys,
6+
stepConfigs,
7+
teamStates,
8+
viewKeys,
9+
stateStepConfigs,
10+
} from './constants';
11+
12+
export const defaultViewProgressKeys = StrictDict({
13+
[viewKeys.xblock]: progressKeys.submissionUnsaved,
14+
[viewKeys.submission]: progressKeys.submissionSaved,
15+
[viewKeys.studentTraining]: progressKeys.studentTraining,
16+
[viewKeys.self]: progressKeys.selfAssessment,
17+
[viewKeys.peer]: progressKeys.peerAssessment,
18+
[viewKeys.myGrades]: progressKeys.graded,
2319
});
2420

25-
export const progressStates = {
26-
unsaved: pageData.progressStates.submission,
27-
saved: pageData.progressStates.submission,
28-
studentTraining: pageData.progressStates.training({ numCompleted: 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.studentTraining]: pageData.submissionStates.individualSubmission,
41-
[viewKeys.peer]: pageData.submissionStates.individualSubmission,
42-
[viewKeys.myGrades]: pageData.submissionStates.individualSubmission,
43-
};
44-
45-
export const staffAssessmentGroup = {
46-
effectiveAssessmentType: 'staff',
47-
...pageData.assessmentStates.graded,
48-
};
49-
50-
export const assessmentStatesByView = {
51-
[viewKeys.xblock]: null,
52-
[viewKeys.submission]: null,
53-
[viewKeys.self]: null,
54-
[viewKeys.studentTraining]: null,
55-
[viewKeys.peer]: null,
56-
[viewKeys.myGrades]: {
57-
effectiveAssessmentType: 'staff',
58-
...pageData.assessmentStates.graded,
59-
},
60-
};
61-
6221
export const loadState = (opts) => {
63-
const { view } = opts;
64-
let progressKey = opts.progressKey || routeSteps[view];
65-
if (progressKey === routeSteps.submission) {
66-
progressKey = progressKeys.unsaved;
67-
}
22+
const {
23+
view,
24+
} = opts;
25+
const progressKey = opts.progressKey || defaultViewProgressKeys[view];
26+
const isTeam = teamStates.includes(progressKey) || (opts.isTeam === true);
27+
const stepConfig = stateStepConfigs[progressKey] || stepConfigs.all;
6828

6929
const state = {
70-
progress: progressStates[progressKey],
71-
submission: submissionStatesByView[view],
72-
assessments: progressKey === progressKeys.graded ? staffAssessmentGroup : null,
30+
progress: pageData.getProgressState({ progressKey, stepConfig }),
31+
submission: pageData.getSubmissionState({ progressKey, isTeam }),
32+
assessments: pageData.getAssessmentState({ progressKey, stepConfig }),
7333
};
74-
if (view === viewKeys.submission && progressKey === progressKeys.unsaved) {
75-
state.submission = pageData.submissionStates.emptySubmission;
76-
}
77-
console.log({
78-
progressKey,
79-
view,
80-
state,
81-
});
34+
console.log({ opts, progressKey, state, isTeam });
8235
return state;
8336
};

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

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
/* eslint-disable camelcase */
1+
import { stepNames } from 'data/services/lms/constants';
2+
import { progressKeys } from '../constants';
23

34
export const createAssessmentState = ({
45
options_selected = [],
@@ -34,13 +35,19 @@ const gradedState = createAssessmentState({
3435
overall_feedback: 'nice job',
3536
});
3637

37-
export default {
38-
graded: {
39-
staff: {
38+
export const getAssessmentState = ({ progressKey, stepConfig }) => {
39+
if (![progressKeys.graded, progressKeys.gradedSubmittedOnPreviousTeam].includes(progressKey)) {
40+
return null;
41+
}
42+
const out = {};
43+
if (stepConfig.includes(stepNames.staff)) {
44+
out.staff = {
4045
stepScore: { earned: 10, possible: 10 },
4146
assessment: gradedState,
42-
},
43-
peer: {
47+
};
48+
}
49+
if (stepConfig.includes(stepNames.peer)) {
50+
out.peer = {
4451
stepScore: { earned: 10, possible: 10 },
4552
assessment: [
4653
gradedState,
@@ -49,18 +56,17 @@ export default {
4956
gradedState,
5057
gradedState,
5158
],
52-
},
53-
peerUnweighted: {
59+
};
60+
out.peerUnweighted = {
5461
stepScore: null,
5562
assessment: [
5663
gradedState,
5764
gradedState,
5865
gradedState,
5966
],
60-
},
61-
self: {
62-
stepScore: { earned: 10, possible: 10 },
63-
assessment: gradedState,
64-
},
65-
},
67+
};
68+
}
69+
return out;
6670
};
71+
72+
export default { getAssessmentState };
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import progressStates from './progress';
2-
import assessmentStates from './assessments';
3-
import submissionStates from './submission';
1+
import { getAssessmentState } from './assessments';
2+
import { getProgressState } from './progress';
3+
import { getSubmissionState } from './submission';
44

55
export default {
6-
progressStates,
7-
assessmentStates,
8-
submissionStates,
6+
getAssessmentState,
7+
getProgressState,
8+
getSubmissionState,
99
};

0 commit comments

Comments
 (0)