Skip to content

Commit 70d24af

Browse files
authored
Update grading tables to include student username (#2641)
* Update grading tables to include student username * Fix lint * Add assessment number to CSV export
1 parent add5079 commit 70d24af

File tree

9 files changed

+35
-2
lines changed

9 files changed

+35
-2
lines changed

src/commons/application/actions/__tests__/SessionActions.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -509,6 +509,7 @@ test('updateGradingOverviews generates correct action object', () => {
509509
const overviews: GradingOverview[] = [
510510
{
511511
assessmentId: 1,
512+
assessmentNumber: 'M1A',
512513
assessmentName: 'test assessment',
513514
assessmentType: 'Contests',
514515
initialXp: 0,
@@ -518,6 +519,7 @@ test('updateGradingOverviews generates correct action object', () => {
518519
maxXp: 500,
519520
studentId: 100,
520521
studentName: 'test student',
522+
studentUsername: 'E0123456',
521523
submissionId: 1,
522524
submissionStatus: 'attempting',
523525
groupName: 'group',
@@ -541,6 +543,7 @@ test('updateGrading generates correct action object', () => {
541543
question: jest.genMockFromModule('../../../../features/grading/GradingTypes'),
542544
student: {
543545
name: 'test student',
546+
username: 'E0123456',
544547
id: 234
545548
},
546549
grade: {

src/commons/application/reducers/__tests__/SessionReducer.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,7 @@ const gradingTest1: Grading = [
385385
question: jest.genMockFromModule('../../../../features/grading/GradingTypes'),
386386
student: {
387387
name: 'test student',
388+
username: 'E0123456',
388389
id: 234
389390
},
390391
grade: {
@@ -400,6 +401,7 @@ const gradingTest2: Grading = [
400401
question: jest.genMockFromModule('../../../../features/grading/GradingTypes'),
401402
student: {
402403
name: 'another test student',
404+
username: 'E0000000',
403405
id: 345
404406
},
405407
grade: {
@@ -473,6 +475,7 @@ test('UPDATE_GRADING works correctly in updating gradings', () => {
473475
const gradingOverviewTest1: GradingOverview[] = [
474476
{
475477
assessmentId: 1,
478+
assessmentNumber: 'M1A',
476479
assessmentName: 'test assessment',
477480
assessmentType: 'Contests',
478481
initialXp: 0,
@@ -482,6 +485,7 @@ const gradingOverviewTest1: GradingOverview[] = [
482485
maxXp: 500,
483486
studentId: 100,
484487
studentName: 'test student',
488+
studentUsername: 'E0123456',
485489
submissionId: 1,
486490
submissionStatus: 'attempting',
487491
groupName: 'group',
@@ -494,6 +498,7 @@ const gradingOverviewTest1: GradingOverview[] = [
494498
const gradingOverviewTest2: GradingOverview[] = [
495499
{
496500
assessmentId: 2,
501+
assessmentNumber: 'P2',
497502
assessmentName: 'another assessment',
498503
assessmentType: 'Quests',
499504
initialXp: 20,
@@ -503,6 +508,7 @@ const gradingOverviewTest2: GradingOverview[] = [
503508
maxXp: 1000,
504509
studentId: 20,
505510
studentName: 'another student',
511+
studentUsername: 'E0000000',
506512
submissionId: 2,
507513
submissionStatus: 'attempted',
508514
groupName: 'another group',

src/commons/mocks/GradingMocks.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export const mockGradingOverviews: GradingOverview[] = [
99
{
1010
xpAdjustment: 0,
1111
assessmentType: 'Missions',
12+
assessmentNumber: 'M1A',
1213
assessmentId: 0,
1314
assessmentName: 'Mission 0 ',
1415
currentXp: 69,
@@ -17,6 +18,7 @@ export const mockGradingOverviews: GradingOverview[] = [
1718
maxXp: 100,
1819
studentId: 0,
1920
studentName: 'Al Gorithm',
21+
studentUsername: 'E0123456',
2022
submissionId: 1,
2123
submissionStatus: 'submitted',
2224
groupName: '1D',
@@ -27,6 +29,7 @@ export const mockGradingOverviews: GradingOverview[] = [
2729
{
2830
xpAdjustment: -2,
2931
assessmentType: 'Missions',
32+
assessmentNumber: 'M2',
3033
assessmentId: 1,
3134
assessmentName: 'Mission 1',
3235
currentXp: -2,
@@ -35,6 +38,7 @@ export const mockGradingOverviews: GradingOverview[] = [
3538
maxXp: 400,
3639
studentId: 0,
3740
studentName: 'Dee Sign',
41+
studentUsername: 'E0000000',
3842
submissionId: 2,
3943
submissionStatus: 'submitted',
4044
groupName: '1F',
@@ -45,6 +49,7 @@ export const mockGradingOverviews: GradingOverview[] = [
4549
{
4650
xpAdjustment: 4,
4751
assessmentType: 'Missions',
52+
assessmentNumber: 'M3',
4853
assessmentId: 0,
4954
assessmentName: 'Mission 0',
5055
currentXp: 1000,
@@ -53,6 +58,7 @@ export const mockGradingOverviews: GradingOverview[] = [
5358
maxXp: 1000,
5459
studentId: 1,
5560
studentName: 'May Trix',
61+
studentUsername: 'E0000001',
5662
submissionId: 3,
5763
submissionStatus: 'submitted',
5864
groupName: '1F',
@@ -208,6 +214,7 @@ _italics_
208214
},
209215
student: {
210216
name: 'Al Gorithm',
217+
username: 'E0123456',
211218
id: 0
212219
}
213220
},
@@ -298,6 +305,7 @@ New message from **Avenger**!
298305
},
299306
student: {
300307
name: 'Al Gorithm',
308+
username: 'E0000000',
301309
id: 0
302310
}
303311
},
@@ -372,6 +380,7 @@ New message from **Avenger**!
372380
},
373381
student: {
374382
name: 'Al Gorithm',
383+
username: 'E0000000',
375384
id: 0
376385
}
377386
}

src/commons/sagas/RequestsSaga.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -619,9 +619,11 @@ export const getGradingOverviews = async (
619619
.map((overview: any) => {
620620
const gradingOverview: GradingOverview = {
621621
assessmentId: overview.assessment.id,
622+
assessmentNumber: overview.assessment.assessmentNumber,
622623
assessmentName: overview.assessment.title,
623624
assessmentType: overview.assessment.type,
624625
studentId: overview.student.id,
626+
studentUsername: overview.student.username,
625627
studentName: overview.student.name,
626628
submissionId: overview.id,
627629
submissionStatus: overview.status,

src/features/grading/GradingTypes.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { Notification } from '../../commons/notificationBadge/NotificationBadgeT
1414
*/
1515
export type GradingOverview = {
1616
assessmentId: number;
17+
assessmentNumber: string;
1718
assessmentName: string;
1819
assessmentType: AssessmentType;
1920
initialXp: number;
@@ -23,6 +24,7 @@ export type GradingOverview = {
2324
maxXp: number;
2425
studentId: number;
2526
studentName: string;
27+
studentUsername: string;
2628
submissionId: number;
2729
submissionStatus: string;
2830
groupName: string;
@@ -50,6 +52,7 @@ export type GradingQuestion = {
5052
question: AnsweredQuestion;
5153
student: {
5254
name: string;
55+
username: string;
5356
id: number;
5457
};
5558
grade: {

src/pages/academy/grading/Grading.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,14 @@ const Grading: React.FC = () => {
6565

6666
const content = new Blob(
6767
[
68-
'"Assessment Name","Student Name","Group","Status","Grading","Question Count","Questions Graded","Initial XP","XP Adjustment","Current XP (excl. bonus)","Max XP","Bonus XP"\n',
68+
'"Assessment Number","Assessment Name","Student Name","Student Username","Group","Status","Grading","Question Count","Questions Graded","Initial XP","XP Adjustment","Current XP (excl. bonus)","Max XP","Bonus XP"\n',
6969
...gradingOverviews.map(
7070
e =>
7171
[
72+
e.assessmentNumber,
7273
e.assessmentName,
7374
e.studentName,
75+
e.studentUsername,
7476
e.groupName,
7577
e.submissionStatus,
7678
e.gradingStatus,

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ type OwnProps = {
4747
xpAdjustment: number;
4848
maxXp: number;
4949
studentName: string;
50+
studentUsername: string;
5051
comments: string;
5152
graderName?: string;
5253
gradedAt?: string;
@@ -234,7 +235,9 @@ const GradingEditor: React.FC<GradingEditorProps> = props => {
234235
/>
235236

236237
<div className="grading-editor-header">
237-
<H3>Currently Grading: {props.studentName}</H3>
238+
<H3>
239+
Currently Grading: {props.studentName} ({props.studentUsername})
240+
</H3>
238241
</div>
239242
{props.solution !== null ? (
240243
<div className="grading-editor-marking-scheme">

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@ const columns = [
5656
header: 'Student',
5757
cell: info => <Filterable column={info.column} value={info.getValue()} />
5858
}),
59+
columnHelper.accessor('studentUsername', {
60+
header: 'Username',
61+
cell: info => <Filterable column={info.column} value={info.getValue()} />
62+
}),
5963
columnHelper.accessor('groupName', {
6064
header: 'Group',
6165
cell: info => <Filterable column={info.column} value={info.getValue()} />

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,7 @@ const GradingWorkspace: React.FC<GradingWorkspaceProps> = props => {
305305
xpAdjustment={grading![questionId].grade.xpAdjustment}
306306
maxXp={grading![questionId].question.maxXp}
307307
studentName={grading![questionId].student.name}
308+
studentUsername={grading![questionId].student.username}
308309
comments={grading![questionId].grade.comments ?? ''}
309310
graderName={
310311
grading![questionId].grade.grader

0 commit comments

Comments
 (0)