feat: semi-finalist tracker dashboard, account reminders, search + UX fixes
- Add getSemiFinalistStats query with per-category/per-award breakdown - Add sendAccountReminders mutation with invite token generation and dedup - Add SemiFinalistTracker dashboard widget with progress bars and remind buttons - Add ACCOUNT_REMINDER email template - Extend project search to match team member name/email (7 locations) - Fix Passed count deduplication: count distinct projects, not round-state rows - Fix role switcher: visible pills above user section, auto-refresh session on mount Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1008,6 +1008,8 @@ export const fileRouter = router({
|
||||
projectWhere.OR = [
|
||||
{ title: { contains: input.search, mode: 'insensitive' } },
|
||||
{ teamName: { contains: input.search, mode: 'insensitive' } },
|
||||
{ teamMembers: { some: { user: { name: { contains: input.search, mode: 'insensitive' } } } } },
|
||||
{ teamMembers: { some: { user: { email: { contains: input.search, mode: 'insensitive' } } } } },
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1317,6 +1319,8 @@ export const fileRouter = router({
|
||||
projectWhere.OR = [
|
||||
{ title: { contains: input.search, mode: 'insensitive' } },
|
||||
{ teamName: { contains: input.search, mode: 'insensitive' } },
|
||||
{ teamMembers: { some: { user: { name: { contains: input.search, mode: 'insensitive' } } } } },
|
||||
{ teamMembers: { some: { user: { email: { contains: input.search, mode: 'insensitive' } } } } },
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user