Skip to content

Commit 3e75d3e

Browse files
authored
Merge pull request #4042 from Northeastern-Electric-Racing/#3959-task-amount-fix
#3959 fix task amount
2 parents 60a5b7a + 533d4ed commit 3e75d3e

5 files changed

Lines changed: 14 additions & 9 deletions

File tree

src/backend/src/prisma-query-args/projects.query-args.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Prisma } from '@prisma/client';
1+
import { Prisma, Task_Status } from '@prisma/client';
22
import { getUserQueryArgs } from './user.query-args.js';
33
import { getDescriptionBulletQueryArgs } from './description-bullets.query-args.js';
44
import { getTeamPreviewQueryArgs } from './teams.query-args.js';
@@ -129,7 +129,13 @@ export const getProjectOverviewQueryArgs = (organizationId: string) =>
129129
manager: getUserQueryArgs(organizationId),
130130
status: true,
131131
links: getLinkQueryArgs(),
132-
tasks: getTaskQueryArgs(organizationId)
132+
_count: {
133+
select: {
134+
tasks: {
135+
where: { AND: [{ dateDeleted: null }, { NOT: { status: Task_Status.DONE } }] }
136+
}
137+
}
138+
}
133139
}
134140
},
135141
workPackages: getWorkPackagePreviewQueryArgs(),

src/backend/src/transformers/projects.transformer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ export const projectPreviewTransformer = (project: Prisma.ProjectGetPayload<Proj
154154
export const projectOverviewTransformer = (project: Prisma.ProjectGetPayload<ProjectOverviewQueryArgs>): ProjectOverview => {
155155
return {
156156
...projectPreviewTransformer(project),
157-
tasks: project.wbsElement.tasks.map(taskTransformer),
157+
tasksRemaining: project.wbsElement._count.tasks,
158158
links: project.wbsElement.links
159159
};
160160
};

src/frontend/src/apis/transformers/projects.transformers.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,7 @@ export const projectOverviewTransformer = (project: ProjectOverview): ProjectOve
9999
startDate: new Date(wp.startDate),
100100
endDate: new Date(wp.endDate)
101101
})),
102-
links: project.links,
103-
tasks: project.tasks.map(taskTransformer)
102+
links: project.links
104103
};
105104
};
106105

src/frontend/src/components/ProjectDetailCard.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import AttachMoneyIcon from '@mui/icons-material/AttachMoney';
88
import ScheduleIcon from '@mui/icons-material/Schedule';
99
import { Box, Card, CardContent, Link, Typography, Grid } from '@mui/material';
1010
import { Link as RouterLink } from 'react-router-dom';
11-
import { calculateDaysLeftInProject, daysBetween, ProjectOverview, TaskStatus, WbsElementStatus, wbsPipe } from 'shared';
11+
import { calculateDaysLeftInProject, daysBetween, ProjectOverview, WbsElementStatus, wbsPipe } from 'shared';
1212
import { daysOrWeeksLeftOrLate, emDashPipe, fullNamePipe } from '../utils/pipes';
1313
import WorkPackageStageChip from './WorkPackageStageChip';
1414
import FavoriteProjectButton from './FavoriteProjectButton';
@@ -23,7 +23,6 @@ interface ProjectDetailCardProps {
2323

2424
const ProjectDetailCard: React.FC<ProjectDetailCardProps> = ({ project, projectIsFavorited }) => {
2525
const containsActiveWorkPackages = project.workPackages.filter((wp) => wp.status === WbsElementStatus.Active).length;
26-
const tasksLeft: number = project.tasks.filter((task) => task.status !== TaskStatus.DONE).length;
2726

2827
const ProjectDetailCardTitle = () => (
2928
<Grid container alignItems="center">
@@ -63,7 +62,8 @@ const ProjectDetailCard: React.FC<ProjectDetailCardProps> = ({ project, projectI
6362
)}
6463
</Grid>
6564
<Grid item display="flex" justifyContent="left" sx={{ marginTop: 0.5 }} xs={4}>
66-
<TaskIcon sx={{ mr: 1 }} /> <Typography>{`${tasksLeft} task${tasksLeft === 1 ? '' : 's'} left`}</Typography>
65+
<TaskIcon sx={{ mr: 1 }} />{' '}
66+
<Typography>{`${project.tasksRemaining} task${project.tasksRemaining === 1 ? '' : 's'} left`}</Typography>
6767
</Grid>
6868
<Grid item display="flex" xs={4}>
6969
<Work sx={{ mr: 1 }} /> <Typography>{fullNamePipe(project.manager)}</Typography>

src/shared/src/types/project-types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ export interface ProjectPreview extends WbsElementPreview {
8787

8888
export interface ProjectOverview extends ProjectPreview {
8989
links: Link[];
90-
tasks: Task[];
90+
tasksRemaining: number;
9191
}
9292

9393
export interface RetrospectiveWorkPackage extends WorkPackage {

0 commit comments

Comments
 (0)