Skip to content

Commit 533d4ed

Browse files
committed
only return task count instead of whole task list
1 parent 98150fe commit 533d4ed

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';
@@ -123,7 +123,13 @@ export const getProjectOverviewQueryArgs = (organizationId: string) =>
123123
manager: getUserQueryArgs(organizationId),
124124
status: true,
125125
links: getLinkQueryArgs(),
126-
tasks: { where: { dateDeleted: null }, ...getTaskQueryArgs(organizationId) }
126+
_count: {
127+
select: {
128+
tasks: {
129+
where: { AND: [{ dateDeleted: null }, { NOT: { status: Task_Status.DONE } }] }
130+
}
131+
}
132+
}
127133
}
128134
},
129135
workPackages: getWorkPackagePreviewQueryArgs(),

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ export const projectPreviewTransformer = (project: Prisma.ProjectGetPayload<Proj
141141
export const projectOverviewTransformer = (project: Prisma.ProjectGetPayload<ProjectOverviewQueryArgs>): ProjectOverview => {
142142
return {
143143
...projectPreviewTransformer(project),
144-
tasks: project.wbsElement.tasks.map(taskTransformer),
144+
tasksRemaining: project.wbsElement._count.tasks,
145145
links: project.wbsElement.links
146146
};
147147
};

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.dateDeleted && 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
@@ -86,7 +86,7 @@ export interface ProjectPreview extends WbsElementPreview {
8686

8787
export interface ProjectOverview extends ProjectPreview {
8888
links: Link[];
89-
tasks: Task[];
89+
tasksRemaining: number;
9090
}
9191

9292
export interface RetrospectiveWorkPackage extends WorkPackage {

0 commit comments

Comments
 (0)