diff --git a/src/utils/db.ts b/src/utils/db.ts index c3ba252e6..bb979c266 100644 --- a/src/utils/db.ts +++ b/src/utils/db.ts @@ -335,7 +335,7 @@ export const updateGoalWithCalculatedWeight = async (goalId: string) => { await ctx.$executeRaw` UPDATE "Project" SET "averageScore" = (SELECT AVG("completedCriteriaWeight") FROM "Goal" - WHERE "projectId" = ${updatedGoal.projectId}) + WHERE "projectId" = ${updatedGoal.projectId} AND "archived" IS NOT true) WHERE "id" = ${updatedGoal.projectId}; `; } diff --git a/trpc/router/goal.ts b/trpc/router/goal.ts index 9ca68dddb..dbea35b3b 100644 --- a/trpc/router/goal.ts +++ b/trpc/router/goal.ts @@ -708,7 +708,7 @@ export const goal = router({ } try { - const updatedGoal = prisma.goal.update({ + const updatedGoal = await prisma.goal.update({ where: { id }, data: { archived, @@ -723,6 +723,10 @@ export const goal = router({ }, }); + if (updatedGoal) { + await updateGoalWithCalculatedWeight(updatedGoal.id); + } + const recipients = Array.from( new Set( [...actualGoal.participants, ...actualGoal.watchers, actualGoal.activity, actualGoal.owner]