Skip to content

Commit 265515c

Browse files
authored
Merge pull request #3 from InfinityTwo/revert-1-grading-briefing
Revert "Grading: Viewable Assessment Briefings"
2 parents f588e5e + 4425120 commit 265515c

File tree

8 files changed

+41
-63
lines changed

8 files changed

+41
-63
lines changed

src/commons/application/ApplicationTypes.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Chapter, Language, SourceError, Variant } from 'js-slang/dist/types';
33
import { AcademyState } from '../../features/academy/AcademyTypes';
44
import { AchievementState } from '../../features/achievement/AchievementTypes';
55
import { DashboardState } from '../../features/dashboard/DashboardTypes';
6-
import { GradingQuery } from '../../features/grading/GradingTypes';
6+
import { Grading } from '../../features/grading/GradingTypes';
77
import { PlaygroundState } from '../../features/playground/PlaygroundTypes';
88
import { PlaybackStatus, RecordingStatus } from '../../features/sourceRecorder/SourceRecorderTypes';
99
import { StoriesEnvState, StoriesState } from '../../features/stories/StoriesTypes';
@@ -491,7 +491,7 @@ export const defaultSession: SessionState = {
491491
sessionId: Date.now(),
492492
githubOctokitObject: { octokit: undefined },
493493
gradingOverviews: undefined,
494-
gradings: new Map<number, GradingQuery>(),
494+
gradings: new Map<number, Grading>(),
495495
notifications: []
496496
};
497497

src/commons/application/actions/SessionActions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { action } from 'typesafe-actions'; // EDITED
22

3-
import { GradingOverview, GradingQuery } from '../../../features/grading/GradingTypes';
3+
import { Grading, GradingOverview } from '../../../features/grading/GradingTypes';
44
import {
55
Assessment,
66
AssessmentConfiguration,
@@ -220,7 +220,7 @@ export const updateGradingOverviews = (overviews: GradingOverview[]) =>
220220
* An extra id parameter is included here because of
221221
* no id for Grading.
222222
*/
223-
export const updateGrading = (submissionId: number, grading: GradingQuery) =>
223+
export const updateGrading = (submissionId: number, grading: Grading) =>
224224
action(UPDATE_GRADING, {
225225
submissionId,
226226
grading

src/commons/application/types/SessionTypes.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Octokit } from '@octokit/rest';
22
import { Chapter, Variant } from 'js-slang/dist/types';
33

4-
import { GradingOverview, GradingQuery } from '../../../features/grading/GradingTypes';
4+
import { Grading, GradingOverview } from '../../../features/grading/GradingTypes';
55
import { Device, DeviceSession } from '../../../features/remoteExecution/RemoteExecutionTypes';
66
import {
77
Assessment,
@@ -122,7 +122,7 @@ export type SessionState = {
122122
readonly assessmentOverviews?: AssessmentOverview[];
123123
readonly assessments: Map<number, Assessment>;
124124
readonly gradingOverviews?: GradingOverview[];
125-
readonly gradings: Map<number, GradingQuery>;
125+
readonly gradings: Map<number, Grading>;
126126
readonly notifications: Notification[];
127127
readonly googleUser?: string;
128128
readonly githubAssessment?: MissionRepoData;

src/commons/mocks/BackendMocks.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { SagaIterator } from 'redux-saga';
22
import { call, put, select, takeEvery } from 'redux-saga/effects';
33

44
import { FETCH_GROUP_GRADING_SUMMARY } from '../../features/dashboard/DashboardTypes';
5-
import { GradingOverview, GradingQuery, GradingQuestion } from '../../features/grading/GradingTypes';
5+
import { Grading, GradingOverview, GradingQuestion } from '../../features/grading/GradingTypes';
66
import {
77
OverallState,
88
Role,
@@ -177,7 +177,7 @@ export function* mockBackendSaga(): SagaIterator {
177177
const accessToken = yield select((state: OverallState) => state.session.accessToken);
178178
const grading = yield call(() => mockFetchGrading(accessToken, submissionId));
179179
if (grading !== null) {
180-
yield put(actions.updateGrading(submissionId, grading));
180+
yield put(actions.updateGrading(submissionId, [...grading]));
181181
}
182182
});
183183

@@ -217,10 +217,10 @@ export function* mockBackendSaga(): SagaIterator {
217217

218218
const { submissionId, questionId, xpAdjustment, comments } = action.payload;
219219
// Now, update the grade for the question in the Grading in the store
220-
const grading: GradingQuery = yield select((state: OverallState) =>
220+
const grading: Grading = yield select((state: OverallState) =>
221221
state.session.gradings.get(submissionId)
222222
);
223-
const newGrading = grading.answers.slice().map((gradingQuestion: GradingQuestion) => {
223+
const newGrading = grading.slice().map((gradingQuestion: GradingQuestion) => {
224224
if (gradingQuestion.question.id === questionId) {
225225
gradingQuestion.grade = {
226226
xpAdjustment,
@@ -230,7 +230,7 @@ export function* mockBackendSaga(): SagaIterator {
230230
}
231231
return gradingQuestion;
232232
});
233-
yield put(actions.updateGrading(submissionId, {"answers": newGrading, "assessment": grading.assessment}));
233+
yield put(actions.updateGrading(submissionId, newGrading));
234234
yield call(showSuccessMessage, 'Submitted!', 1000);
235235
};
236236

src/commons/sagas/BackendSaga.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
FETCH_GROUP_GRADING_SUMMARY,
1010
GradingSummary
1111
} from '../../features/dashboard/DashboardTypes';
12-
import { GradingOverview, GradingQuery, GradingQuestion } from '../../features/grading/GradingTypes';
12+
import { Grading, GradingOverview, GradingQuestion } from '../../features/grading/GradingTypes';
1313
import {
1414
CHANGE_DATE_ASSESSMENT,
1515
DELETE_ASSESSMENT,
@@ -438,7 +438,7 @@ function* BackendSaga(): SagaIterator {
438438
const tokens: Tokens = yield selectTokens();
439439
const id = action.payload;
440440

441-
const grading: GradingQuery | null = yield call(getGrading, id, tokens);
441+
const grading: Grading | null = yield call(getGrading, id, tokens);
442442
if (grading) {
443443
yield put(actions.updateGrading(id, grading));
444444
}
@@ -500,10 +500,10 @@ function* BackendSaga(): SagaIterator {
500500
yield call(showSuccessMessage, 'Submitted!', 1000);
501501

502502
// Now, update the grade for the question in the Grading in the store
503-
const grading: GradingQuery = yield select((state: OverallState) =>
503+
const grading: Grading = yield select((state: OverallState) =>
504504
state.session.gradings.get(submissionId)
505505
);
506-
const newGrading = grading.answers.slice().map((gradingQuestion: GradingQuestion) => {
506+
const newGrading = grading.slice().map((gradingQuestion: GradingQuestion) => {
507507
if (gradingQuestion.question.id === questionId) {
508508
gradingQuestion.grade = {
509509
xpAdjustment,
@@ -514,7 +514,7 @@ function* BackendSaga(): SagaIterator {
514514
return gradingQuestion;
515515
});
516516

517-
yield put(actions.updateGrading(submissionId, {"answers": newGrading, "assessment": grading.assessment}));
517+
yield put(actions.updateGrading(submissionId, newGrading));
518518
};
519519

520520
const sendGradeAndContinue = function* (

src/commons/sagas/RequestsSaga.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
GoalProgress
99
} from '../../features/achievement/AchievementTypes';
1010
import { GradingSummary } from '../../features/dashboard/DashboardTypes';
11-
import { Grading, GradingOverview, GradingQuery, GradingQuestion } from '../../features/grading/GradingTypes';
11+
import { Grading, GradingOverview, GradingQuestion } from '../../features/grading/GradingTypes';
1212
import {
1313
Device,
1414
WebSocketEndpointInformation
@@ -665,7 +665,7 @@ export const getGradingOverviews = async (
665665
/**
666666
* GET /courses/{courseId}/admin/grading/{submissionId}
667667
*/
668-
export const getGrading = async (submissionId: number, tokens: Tokens): Promise<GradingQuery | null> => {
668+
export const getGrading = async (submissionId: number, tokens: Tokens): Promise<Grading | null> => {
669669
const resp = await request(`${courseId()}/admin/grading/${submissionId}`, 'GET', {
670670
...tokens
671671
});
@@ -675,7 +675,7 @@ export const getGrading = async (submissionId: number, tokens: Tokens): Promise<
675675
}
676676

677677
const gradingResult = await resp.json();
678-
const grading: Grading = gradingResult.answers.map((gradingQuestion: any) => {
678+
const grading: Grading = gradingResult.map((gradingQuestion: any) => {
679679
const { student, question, grade } = gradingQuestion;
680680
const result = {
681681
question: {
@@ -709,7 +709,7 @@ export const getGrading = async (submissionId: number, tokens: Tokens): Promise<
709709
return result;
710710
});
711711

712-
return {"answers": grading, "assessment": gradingResult.assessment};
712+
return grading;
713713
};
714714

715715
/**

src/features/grading/GradingTypes.ts

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -44,20 +44,6 @@ export type GradingOverviewWithNotifications = {
4444
*/
4545
export type Grading = GradingQuestion[];
4646

47-
export type GradingQuery = {
48-
answers: Grading,
49-
assessment: {
50-
coverPicture: string;
51-
id: number;
52-
number: string;
53-
reading: string;
54-
story: string;
55-
summaryLong: string;
56-
summaryShort: string;
57-
title: string;
58-
}
59-
}
60-
6147
/**
6248
* Encapsulates information regarding grading a
6349
* particular question in a submission.

src/pages/academy/grading/subcomponents/GradingWorkspace.tsx

Lines changed: 21 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -166,11 +166,11 @@ const GradingWorkspace: React.FC<GradingWorkspaceProps> = props => {
166166
}
167167

168168
let questionId = props.questionId;
169-
if (props.questionId >= grading.answers.length) {
170-
questionId = grading.answers.length - 1;
169+
if (props.questionId >= grading.length) {
170+
questionId = grading.length - 1;
171171
}
172172

173-
const question: AnsweredQuestion = grading.answers[questionId].question;
173+
const question: AnsweredQuestion = grading[questionId].question;
174174
let answer: string = '';
175175

176176
if (question.type === QuestionTypes.programming) {
@@ -212,7 +212,7 @@ const GradingWorkspace: React.FC<GradingWorkspaceProps> = props => {
212212
* as the function to move to the next question does not check
213213
* if that question exists
214214
*/
215-
if (grading.answers[questionId] === undefined) {
215+
if (grading[questionId] === undefined) {
216216
navigate(`/courses/${courseId}/grading`);
217217
} else {
218218
checkWorkspaceReset(props);
@@ -233,7 +233,7 @@ const GradingWorkspace: React.FC<GradingWorkspaceProps> = props => {
233233
if (storedSubmissionId === submissionId && storedQuestionId === questionId) {
234234
return;
235235
}
236-
const question = grading!.answers[questionId].question as Question;
236+
const question = grading![questionId].question as Question;
237237

238238
let autogradingResults: AutogradingResult[] = [];
239239
let editorValue: string = '';
@@ -298,22 +298,22 @@ const GradingWorkspace: React.FC<GradingWorkspaceProps> = props => {
298298
/* Render an editor with the xp given to the current question. */
299299
body: (
300300
<GradingEditor
301-
solution={grading!.answers[questionId].question.solution}
302-
questionId={grading!.answers[questionId].question.id}
301+
solution={grading![questionId].question.solution}
302+
questionId={grading![questionId].question.id}
303303
submissionId={props.submissionId}
304-
initialXp={grading!.answers[questionId].grade.xp}
305-
xpAdjustment={grading!.answers[questionId].grade.xpAdjustment}
306-
maxXp={grading!.answers[questionId].question.maxXp}
307-
studentName={grading!.answers[questionId].student.name}
308-
studentUsername={grading!.answers[questionId].student.username}
309-
comments={grading!.answers[questionId].grade.comments ?? ''}
304+
initialXp={grading![questionId].grade.xp}
305+
xpAdjustment={grading![questionId].grade.xpAdjustment}
306+
maxXp={grading![questionId].question.maxXp}
307+
studentName={grading![questionId].student.name}
308+
studentUsername={grading![questionId].student.username}
309+
comments={grading![questionId].grade.comments ?? ''}
310310
graderName={
311-
grading!.answers[questionId].grade.grader
312-
? grading!.answers[questionId].grade.grader!.name
311+
grading![questionId].grade.grader
312+
? grading![questionId].grade.grader!.name
313313
: undefined
314314
}
315315
gradedAt={
316-
grading!.answers[questionId].grade.grader ? grading!.answers[questionId].grade.gradedAt! : undefined
316+
grading![questionId].grade.grader ? grading![questionId].grade.gradedAt! : undefined
317317
}
318318
/>
319319
),
@@ -322,7 +322,7 @@ const GradingWorkspace: React.FC<GradingWorkspaceProps> = props => {
322322
{
323323
label: `Question ${questionId + 1}`,
324324
iconName: IconNames.NINJA,
325-
body: <Markdown content={grading!.answers[questionId].question.content} />,
325+
body: <Markdown content={grading![questionId].question.content} />,
326326
id: SideContentType.questionOverview
327327
},
328328
{
@@ -337,17 +337,9 @@ const GradingWorkspace: React.FC<GradingWorkspaceProps> = props => {
337337
/>
338338
),
339339
id: SideContentType.autograder
340-
},
341-
{
342-
label: `Briefing`,
343-
iconName: IconNames.BRIEFCASE,
344-
body: (
345-
grading ? <Markdown content={grading.assessment.summaryLong} /> : <Markdown content="Briefing Unavailable. Try refreshing the page." />
346-
),
347-
id: SideContentType.briefing
348340
}
349341
];
350-
const externalLibrary = grading!.answers[questionId].question.library.external;
342+
const externalLibrary = grading![questionId].question.library.external;
351343
const functionsAttached = externalLibrary.symbols;
352344
if (functionsAttached.includes('get_matrix')) {
353345
tabs.push({
@@ -383,7 +375,7 @@ const GradingWorkspace: React.FC<GradingWorkspaceProps> = props => {
383375
const controlBarProps: (q: number) => ControlBarProps = (questionId: number) => {
384376
const listingPath = `/courses/${courseId}/grading`;
385377
const gradingWorkspacePath = listingPath + `/${props.submissionId}`;
386-
const questionProgress: [number, number] = [questionId + 1, grading!.answers.length];
378+
const questionProgress: [number, number] = [questionId + 1, grading!.length];
387379

388380
const onClickPrevious = () =>
389381
navigate(gradingWorkspacePath + `/${(questionId - 1).toString()}`);
@@ -458,9 +450,9 @@ const GradingWorkspace: React.FC<GradingWorkspaceProps> = props => {
458450
}
459451

460452
/* If questionId is out of bounds, set it to the max. */
461-
const questionId = props.questionId >= grading.answers.length ? grading.answers.length - 1 : props.questionId;
453+
const questionId = props.questionId >= grading.length ? grading.length - 1 : props.questionId;
462454
/* Get the question to be graded */
463-
const question = grading.answers[questionId].question as Question;
455+
const question = grading[questionId].question as Question;
464456
const workspaceProps: WorkspaceProps = {
465457
controlBarProps: controlBarProps(questionId),
466458
editorContainerProps:

0 commit comments

Comments
 (0)