Skip to content
This repository was archived by the owner on Nov 17, 2025. It is now read-only.

Commit d9575b7

Browse files
Fix assignment relationship and add reviewer route
Implement database migration to add foreign key constraint and index for product reviews. Update the admin assignment page query to correctly reference the foreign key. Add the missing route for the reviewer due reviews page.
1 parent b9dfe44 commit d9575b7

3 files changed

Lines changed: 28 additions & 1 deletion

File tree

src/App.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ import CompanyProductsManager from "./pages/company/ProductsManager";
5252
import ReviewerDashboard from "./pages/reviewer/Dashboard";
5353
import ReviewerGuide from "./pages/reviewer/ReviewerGuide";
5454
import ReviewerPreferences from "./pages/reviewer/Preferences";
55+
import DueReviews from "./pages/reviewer/DueReviews";
5556

5657
// Admin Review Pages
5758
import ReviewRounds from "./pages/admin/ReviewRounds";
@@ -191,6 +192,11 @@ const App = () => (
191192
<ReviewerDashboard />
192193
</ProtectedRoute>
193194
} />
195+
<Route path="/reviewer/due-reviews" element={
196+
<ProtectedRoute allowedRoles={['reviewer', 'admin']}>
197+
<DueReviews />
198+
</ProtectedRoute>
199+
} />
194200
<Route path="/reviewer/guide" element={
195201
<ProtectedRoute allowedRoles={['reviewer', 'admin']}>
196202
<ReviewerGuide />

src/pages/admin/ReviewAssignment.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ export default function ReviewAssignment() {
101101
.from('product_reviews')
102102
.select(`
103103
*,
104-
reviewer:profiles!assigned_to(first_name, last_name)
104+
reviewer:profiles!product_reviews_assigned_to_fkey(first_name, last_name, email)
105105
`)
106106
.order('deadline', { ascending: true, nullsFirst: false });
107107

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
-- Clean up any invalid assigned_to references
2+
UPDATE product_reviews pr
3+
SET assigned_to = NULL
4+
WHERE assigned_to IS NOT NULL
5+
AND NOT EXISTS (SELECT 1 FROM profiles p WHERE p.id = pr.assigned_to);
6+
7+
-- Add foreign key constraint from product_reviews.assigned_to to profiles.id
8+
DO $$ BEGIN
9+
IF NOT EXISTS (
10+
SELECT 1 FROM pg_constraint WHERE conname = 'product_reviews_assigned_to_fkey'
11+
) THEN
12+
ALTER TABLE public.product_reviews
13+
ADD CONSTRAINT product_reviews_assigned_to_fkey
14+
FOREIGN KEY (assigned_to) REFERENCES public.profiles(id)
15+
ON DELETE SET NULL;
16+
END IF;
17+
END $$;
18+
19+
-- Add index for better join performance
20+
CREATE INDEX IF NOT EXISTS idx_product_reviews_assigned_to
21+
ON public.product_reviews(assigned_to);

0 commit comments

Comments
 (0)