From bf9491ec896c717ef7479f29503e3f267bc6b0ca Mon Sep 17 00:00:00 2001
From: Erin Mullaney <erin.mullaney@torchbox.com>
Date: Thu, 21 Feb 2019 11:19:45 -0500
Subject: [PATCH] #962 add review queryset method to get associated opinions

---
 opentech/apply/review/models.py | 3 +++
 opentech/apply/review/views.py  | 3 +--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/opentech/apply/review/models.py b/opentech/apply/review/models.py
index 5e4c2bd9b..1c3f4bac4 100644
--- a/opentech/apply/review/models.py
+++ b/opentech/apply/review/models.py
@@ -107,6 +107,9 @@ class ReviewQuerySet(models.QuerySet):
         else:
             return MAYBE
 
+    def opinions(self):
+        return ReviewOpinion.objects.filter(review__id__in=self.values_list('id'))
+
 
 class Review(ReviewFormFieldsMixin, BaseStreamForm, AccessFormData, models.Model):
     submission = models.ForeignKey('funds.ApplicationSubmission', on_delete=models.CASCADE, related_name='reviews')
diff --git a/opentech/apply/review/views.py b/opentech/apply/review/views.py
index 6ba083979..58a2ef3d3 100644
--- a/opentech/apply/review/views.py
+++ b/opentech/apply/review/views.py
@@ -33,8 +33,7 @@ class ReviewContextMixin:
             reviews_dict[review.author.pk] = review
 
         # Get all the authors of opinions, these authors should not show up in the 'xxx_not_reviewed' lists
-        opinion_authors = set(User.objects.filter(
-            pk__in=ReviewOpinion.objects.filter(review__submission=self.object).values('author__pk')))
+        opinion_authors = User.objects.filter(pk__in=self.object.reviews.opinions().values('author')).distinct()
 
         reviews_block = defaultdict(list)
         for assigned_reviewer in assigned:
-- 
GitLab