Skip to content

Commit 0c34c6b

Browse files
Robert MiddletonRobert Middleton
authored andcommitted
Merge with dev.
2 parents da87838 + ab567b1 commit 0c34c6b

34 files changed

+813
-279
lines changed

.eslintrc.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,6 @@ module.exports = {
2323
],
2424
'no-underscore-dangle': ['error', { allow: ['__typename'] }],
2525
'no-console': 'off',
26+
'no-plusplus': 'off',
2627
},
2728
};

graphql.schema.json

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5470,9 +5470,13 @@
54705470
}
54715471
],
54725472
"type": {
5473-
"kind": "OBJECT",
5474-
"name": "ClassMissionMastery",
5475-
"ofType": null
5473+
"kind": "NON_NULL",
5474+
"name": null,
5475+
"ofType": {
5476+
"kind": "OBJECT",
5477+
"name": "ClassMissionMastery",
5478+
"ofType": null
5479+
}
54765480
},
54775481
"isDeprecated": false,
54785482
"deprecationReason": null

src/Components/Content/Content.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export default function Content() {
3535
<Route path="/studentOverview">
3636
<StudentOverview />
3737
</Route>
38-
<Route path="/singleStudentOverview">
38+
<Route path="/singleStudentOverview/:username">
3939
<SingleStudentOverview />
4040
</Route>
4141
<Route path="/singleStudentMasteryOverview">
@@ -44,7 +44,7 @@ export default function Content() {
4444
<Route path="/singleTargetOverview/:name">
4545
<SingleTargetOverview />
4646
</Route>
47-
<Route path="/singleMissionOverview/:name">
47+
<Route path="/singleMissionOverview/:name/:username">
4848
<SingleMissionOverview />
4949
</Route>
5050
<Route path="/taskList">
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
query ClassMissionMastery {
2+
classMissionMastery(missionId: "4df2cfa5710") {
3+
mission {
4+
...CMMissionFields
5+
}
6+
studentMissionMasteryList {
7+
...CMStudentFields
8+
}
9+
}
10+
}
11+
12+
fragment CMMissionFields on Mission {
13+
name
14+
description
15+
}
16+
17+
fragment CMStudentFields on StudentMissionMastery {
18+
student {
19+
studentId
20+
lastName
21+
firstName
22+
email
23+
team
24+
}
25+
currentTaskId
26+
currentTaskName
27+
level
28+
progress
29+
}

src/Components/CourseHome/ListView.tsx

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,31 +11,43 @@
1111
import React from 'react';
1212
import { useHistory } from 'react-router-dom';
1313
import TableComponent from '../TableComponent/TableComponent';
14+
import { CmStudentFieldsFragment } from '../../__generated__/types';
15+
16+
interface MissionMasteryRow {
17+
row: {
18+
name: string;
19+
recent: string;
20+
masteryLevel: string;
21+
lastLogOn: string;
22+
studentId: string;
23+
};
24+
}
1425

1526
function ListView(classMissionMasterydata: any) {
1627
const history = useHistory();
17-
const rowClicked = (userName: string) => {
28+
const rowClicked = (row: MissionMasteryRow) => {
29+
console.log(row);
1830
history.push({
19-
pathname: '/singleStudentOverview',
20-
state: { id: '', firstName: userName, lastName: ' ' },
31+
pathname: `/singleStudentOverview/${row.row.studentId}`,
2132
});
2233
};
2334

24-
const data: any[] = [];
25-
classMissionMasterydata.classMissionMasterydata.studentMissionMasteryList.map(
26-
(studentMissionMastery: any) =>
27-
data.push({
35+
const data: MissionMasteryRow[] = classMissionMasterydata.classMissionMasterydata.studentMissionMasteryList.map(
36+
(studentMissionMastery: CmStudentFieldsFragment) => {
37+
return {
2838
row: {
2939
name: `${studentMissionMastery.student.lastName} ${studentMissionMastery.student.firstName}`,
3040
recent: studentMissionMastery.currentTaskName,
3141
masteryLevel: studentMissionMastery.level,
3242
lastLogOn: 'Jan. 7, 2021',
43+
studentId: studentMissionMastery.student.studentId,
3344
},
34-
})
45+
};
46+
}
3547
);
3648

3749
// TODO remove when names are populated
38-
data.forEach((dataEntry) => {
50+
data.forEach((dataEntry: MissionMasteryRow) => {
3951
if (dataEntry.row.name.indexOf('null') !== -1) {
4052
dataEntry.row.name = 'Mary Lee';
4153
}

src/Components/LinearProgressWithLabel/ObjectiveDropDown.tsx

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {
1414
Task,
1515
TaskObjectiveProgress,
1616
TaskObjectiveProgressFieldsFragment,
17+
useGetTaskObjectiveProgressQuery,
1718
} from '../../__generated__/types';
1819

1920
const useStyles = makeStyles((theme: Theme) =>
@@ -106,6 +107,21 @@ const DoublePaddedDiv = styled.div`
106107
export interface ObjectiveDropDownProps {
107108
name: string;
108109
tasks: TaskObjectiveProgress[];
110+
username: string;
111+
}
112+
113+
function getTaskObjectivePorgress(task: TaskObjectiveProgress) {
114+
const { data: taskObjectiveProgress } = useGetTaskObjectiveProgressQuery({
115+
variables: {
116+
taskId: task.task.id,
117+
username: 'Google_114813486146105420824',
118+
},
119+
});
120+
if (taskObjectiveProgress === undefined) {
121+
return <></>;
122+
}
123+
const objectiveProgresses = (taskObjectiveProgress.getTaskObjectiveProgress as unknown) as TaskObjectiveProgress[];
124+
return objectiveProgresses;
109125
}
110126

111127
function getProgressBar(status: number) {
@@ -156,7 +172,7 @@ function getTaskPercent(mastery: string) {
156172
return 1;
157173
}
158174

159-
export default function ObjectiveDropDown({ name, tasks }: ObjectiveDropDownProps) {
175+
export default function ObjectiveDropDown({ name, tasks, username }: ObjectiveDropDownProps) {
160176
const classes = useStyles();
161177
const [open, setOpen] = useState(false);
162178

@@ -174,7 +190,13 @@ export default function ObjectiveDropDown({ name, tasks }: ObjectiveDropDownProp
174190

175191
<Collapse in={open} timeout="auto" unmountOnExit>
176192
{tasks.map((task: TaskObjectiveProgress) => (
177-
<Link to={`/viewTask/${task.task.id}`}>
193+
<Link
194+
to={{
195+
pathname: `/viewTask/${task.task.id}/${username}`,
196+
state: getTaskObjectivePorgress(task),
197+
}}
198+
>
199+
{console.log(task)}
178200
<List component="div" disablePadding>
179201
<div style={{ display: 'flex', flexDirection: 'row' }}>
180202
<DoublePaddedDiv>

src/Components/SingleStudentMasteryOverview/SingleStudentMasteryOverview.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -509,12 +509,12 @@ function SingleStudentMasteryOverview() {
509509
firstName: test?.firstName,
510510
lastName: test?.lastName,
511511
};
512-
console.log(inputUser.id);
512+
console.log(inputUser.firstName);
513513

514514
const { data } = useGetTargetProgressQuery({
515515
variables: {
516516
courseId: 'Integrated Science',
517-
username: '74caa373-b13a-4a97-84d3-ba9e27236290',
517+
username: 'Google_113982570160032635204',
518518
},
519519
});
520520

src/Components/SingleStudentMasteryOverview/TargetMasteryCard.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ function getStatusTitle(status: number) {
105105
return 'Not Mastered';
106106
}
107107
if (status > 0.75) {
108-
return 'Almost Mastered';
108+
return 'Nearly Mastered';
109109
}
110110
return 'Mastered';
111111
}

src/Components/SingleStudentOverview/MasteryCard.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ type Props = {
8383
progress: TaskStats[];
8484
status: number;
8585
user: User;
86+
username: string;
8687
};
8788

8889
function getProgressBar(status: number) {
@@ -106,16 +107,15 @@ function getStatusTitle(status: number) {
106107
return 'Not Mastered';
107108
}
108109
if (status >= 0.75) {
109-
return 'Almost Mastered';
110+
return 'Nearly Mastered';
110111
}
111112
return 'Mastered';
112113
}
113114

114-
export default function MasteryCard({ name, progress, status, user }: Props) {
115-
console.log(status);
115+
export default function MasteryCard({ name, progress, status, user, username }: Props) {
116116
const history = useHistory();
117117
return (
118-
<Link to={{ pathname: `/singleMissionOverview/${name}`, state: user }}>
118+
<Link to={{ pathname: `/singleMissionOverview/${name}/${username}`, state: user }}>
119119
<div className="mission-card">
120120
<div className="mission-card-header" />
121121
<div className="mission-card-body">

src/Components/SingleStudentOverview/SingleMissionOverview.tsx

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,13 @@ import { Divider } from '@material-ui/core';
1111
import StudentPicture from '../../assets/images/images-1.png';
1212
import { User } from '../../interfaces/User';
1313
import LinearProgressWithLabel from '../LinearProgressWithLabel/LinearProgressWithLabel';
14-
import { MissionProgress, TaskStats, useGetMissionProgressQuery } from '../../__generated__/types';
14+
import {
15+
MissionProgress,
16+
TaskObjectiveProgress,
17+
TaskStats,
18+
useGetMissionProgressQuery,
19+
useGetTaskObjectiveProgressQuery,
20+
} from '../../__generated__/types';
1521

1622
const StudentDiv = styled.div`
1723
height: 200px;
@@ -109,6 +115,20 @@ const useStyles = makeStyles((theme: Theme) =>
109115
})
110116
);
111117

118+
function getTaskObjectiveProgress(task: TaskStats) {
119+
const { data: taskObjectiveProgress } = useGetTaskObjectiveProgressQuery({
120+
variables: {
121+
taskId: task.taskId,
122+
username: 'Google_114813486146105420824',
123+
},
124+
});
125+
if (taskObjectiveProgress === undefined) {
126+
return <></>;
127+
}
128+
const objectiveProgresses = (taskObjectiveProgress.getTaskObjectiveProgress as unknown) as TaskObjectiveProgress[];
129+
return objectiveProgresses;
130+
}
131+
112132
function getMissionProgress(missionData: MissionProgress[], name: string) {
113133
for (const mission of missionData) {
114134
if (mission.mission.name === name) {
@@ -120,6 +140,8 @@ function getMissionProgress(missionData: MissionProgress[], name: string) {
120140
function SingleMissionOverview() {
121141
// const { data: users } = useQuery<User>(GET_USERS);
122142
const { name } = useParams<Record<string, string | undefined>>();
143+
// const { username } = useParams<Record<string, string | undefined>>();
144+
const username = 'Google_114813486146105420824';
123145
const classes = useStyles();
124146
const history = useHistory();
125147
console.log(history);
@@ -176,7 +198,15 @@ function SingleMissionOverview() {
176198
<TaskRowDiv className="row">
177199
<LeftColumnDiv className="col-12" style={{ justifyContent: 'right' }}>
178200
{missionProgressData?.map((task: TaskStats) => (
179-
<Link to={`/viewTask/${task.taskId}`} data-testid="task-btn">
201+
// <Link to={`/viewTask/${task.taskId}`} data-testid="task-btn">
202+
<Link
203+
to={{
204+
pathname: `/viewTask/${task.taskId}/${username}`,
205+
state: getTaskObjectiveProgress(task),
206+
}}
207+
data-testid="task-btn"
208+
>
209+
{console.log(task)}
180210
<List
181211
component="div"
182212
disablePadding

0 commit comments

Comments
 (0)