- {milestones.map((milestone) => {
+ {milestones.map((milestone: { id: string; name: string; description: string | null; isRequired: boolean; myCompletions: { completedAt: Date }[] }) => {
const isCompleted = milestone.myCompletions.length > 0
const isPending = completeMutation.isPending || uncompleteMutation.isPending
@@ -752,7 +752,7 @@ function NotesSection({ mentorAssignmentId }: { mentorAssignmentId: string }) {
) : notes && notes.length > 0 ? (
- {notes.map((note) => (
+ {notes.map((note: { id: string; content: string; isVisibleToAdmin: boolean; createdAt: Date }) => (
{user.role === 'MENTOR' ? (
-
{user._count.mentorAssignments} mentored
+
{(user as unknown as { _count: { mentorAssignments: number; assignments: number } })._count.mentorAssignments} mentored
) : (
-
{user._count.assignments} assigned
+
{(user as unknown as { _count: { mentorAssignments: number; assignments: number } })._count.assignments} assigned
)}
@@ -276,8 +276,8 @@ export function MembersContent() {
Assignments
{user.role === 'MENTOR'
- ? `${user._count.mentorAssignments} mentored`
- : `${user._count.assignments} assigned`}
+ ? `${(user as unknown as { _count: { mentorAssignments: number; assignments: number } })._count.mentorAssignments} mentored`
+ : `${(user as unknown as { _count: { mentorAssignments: number; assignments: number } })._count.assignments} assigned`}
{user.expertiseTags && user.expertiseTags.length > 0 && (
diff --git a/src/server/routers/application.ts b/src/server/routers/application.ts
index 401d98d..3822329 100644
--- a/src/server/routers/application.ts
+++ b/src/server/routers/application.ts
@@ -676,6 +676,7 @@ export const applicationRouter = router({
// Create new draft project
const project = await ctx.prisma.project.create({
data: {
+ programId: round.programId,
roundId: round.id,
title: input.title || 'Untitled Draft',
isDraft: true,
@@ -795,8 +796,8 @@ export const applicationRouter = router({
title: data.projectName,
teamName: data.teamName,
description: data.description,
- competitionCategory: data.competitionCategory,
- oceanIssue: data.oceanIssue,
+ competitionCategory: data.competitionCategory as CompetitionCategory,
+ oceanIssue: data.oceanIssue as OceanIssue,
country: data.country,
geographicZone: data.city ? `${data.city}, ${data.country}` : data.country,
institution: data.institution,
@@ -838,7 +839,7 @@ export const applicationRouter = router({
return {
success: true,
projectId: updated.id,
- message: `Thank you for applying to ${project.round.program.name}!`,
+ message: `Thank you for applying to ${project.round?.program.name ?? 'the program'}!`,
}
}),
diff --git a/src/server/routers/evaluation.ts b/src/server/routers/evaluation.ts
index 5aee985..2c0ff1a 100644
--- a/src/server/routers/evaluation.ts
+++ b/src/server/routers/evaluation.ts
@@ -863,7 +863,7 @@ export const evaluationRouter = router({
const settings = (round.settingsJson as Record
) || {}
const anonymizationLevel = (settings.anonymization_level as string) || 'fully_anonymous'
- const anonymizedComments = discussion.comments.map((c, idx) => {
+ const anonymizedComments = discussion.comments.map((c: { id: string; userId: string; user: { name: string | null }; content: string; createdAt: Date }, idx: number) => {
let authorLabel: string
if (anonymizationLevel === 'named' || c.userId === ctx.user.id) {
authorLabel = c.user.name || 'Juror'
@@ -871,7 +871,7 @@ export const evaluationRouter = router({
const name = c.user.name || ''
authorLabel = name
.split(' ')
- .map((n) => n[0])
+ .map((n: string) => n[0])
.join('')
.toUpperCase() || 'J'
} else {
diff --git a/src/server/routers/live-voting.ts b/src/server/routers/live-voting.ts
index e8dca51..1d5e286 100644
--- a/src/server/routers/live-voting.ts
+++ b/src/server/routers/live-voting.ts
@@ -405,8 +405,8 @@ export const liveVotingRouter = router({
.map((jurySc) => {
const project = projects.find((p) => p.id === jurySc.projectId)
const audienceSc = audienceMap.get(jurySc.projectId)
- const juryAvg = jurySc._avg.score || 0
- const audienceAvg = audienceSc?._avg.score || 0
+ const juryAvg = jurySc._avg?.score || 0
+ const audienceAvg = audienceSc?._avg?.score || 0
const weightedTotal = audienceWeight > 0 && audienceSc
? juryAvg * juryWeight + audienceAvg * audienceWeight
: juryAvg
diff --git a/src/server/routers/mentor.ts b/src/server/routers/mentor.ts
index b61258c..dfb5d96 100644
--- a/src/server/routers/mentor.ts
+++ b/src/server/routers/mentor.ts
@@ -981,9 +981,9 @@ export const mentorRouter = router({
})
const myAssignmentIds = new Set(myAssignments.map((a) => a.id))
- return milestones.map((milestone) => ({
+ return milestones.map((milestone: typeof milestones[number]) => ({
...milestone,
- myCompletions: milestone.completions.filter((c) =>
+ myCompletions: milestone.completions.filter((c: { mentorAssignmentId: string }) =>
myAssignmentIds.has(c.mentorAssignmentId)
),
}))
@@ -1036,7 +1036,7 @@ export const mentorRouter = router({
const completedMilestones = await ctx.prisma.mentorMilestoneCompletion.findMany({
where: {
mentorAssignmentId: input.mentorAssignmentId,
- milestoneId: { in: requiredMilestones.map((m) => m.id) },
+ milestoneId: { in: requiredMilestones.map((m: { id: string }) => m.id) },
},
select: { milestoneId: true },
})
@@ -1057,7 +1057,7 @@ export const mentorRouter = router({
userId: ctx.user.id,
action: 'COMPLETE_MILESTONE',
entityType: 'MentorMilestoneCompletion',
- entityId: completion.id,
+ entityId: `${completion.milestoneId}_${completion.mentorAssignmentId}`,
detailsJson: {
milestoneId: input.milestoneId,
mentorAssignmentId: input.mentorAssignmentId,
@@ -1243,7 +1243,7 @@ export const mentorRouter = router({
mentor: { select: { id: true, name: true, email: true } },
project: { select: { id: true, title: true } },
notes: { select: { id: true } },
- milestoneCompletions: { select: { id: true } },
+ milestoneCompletions: { select: { milestoneId: true } },
},
})
diff --git a/src/server/routers/message.ts b/src/server/routers/message.ts
index 8bb516d..1034f55 100644
--- a/src/server/routers/message.ts
+++ b/src/server/routers/message.ts
@@ -247,7 +247,7 @@ export const messageRouter = router({
subject: input.subject,
body: input.body,
variables: input.variables ?? undefined,
- createdBy: ctx.user.id,
+ createdById: ctx.user.id,
},
})