diff --git a/opentech/apply/funds/models/submissions.py b/opentech/apply/funds/models/submissions.py
index 661bb355b493215643e8dd2fd83a20f70c565a16..1305c8d03385812c5c8b756f1f23c3064596b2c2 100644
--- a/opentech/apply/funds/models/submissions.py
+++ b/opentech/apply/funds/models/submissions.py
@@ -609,7 +609,7 @@ class ApplicationSubmission(
         if creating:
             self.process_file_data(files)
             for reviewer in self.get_from_parent('reviewers').all():
-                AssignedReviewers.objects.create(
+                AssignedReviewers.objects.get_or_create_for_user(
                     reviewer=reviewer,
                     submission=self
                 )
@@ -830,6 +830,11 @@ class AssignedReviewersQuerySet(models.QuerySet):
             Q(Q(review__isnull=False) & Q(review__is_draft=False))
         ).distinct()
 
+    def draft_reviewed(self):
+        return self.filter(
+            Q(Q(review__isnull=False) & Q(review__is_draft=True))
+        ).distinct()
+
     def not_reviewed(self):
         return self.filter(
             Q(review__isnull=True) | Q(review__is_draft=True),
@@ -853,12 +858,12 @@ class AssignedReviewersQuerySet(models.QuerySet):
                 groups = {PARTNER_GROUP_NAME}
             elif COMMUNITY_REVIEWER_GROUP_NAME in groups:
                 groups = {COMMUNITY_REVIEWER_GROUP_NAME}
-            elif review.author.is_apply_staff:
+            elif reviewer.author.is_apply_staff:
                 groups = {STAFF_GROUP_NAME}
             else:
                 groups = {REVIEWER_GROUP_NAME}
         elif not groups:
-            if assigned.reviewer.is_staff or assigned.reviewer.is_superuser:
+            if reviewer.is_staff or reviewer.is_superuser:
                 groups = {STAFF_GROUP_NAME}
             else:
                 groups = {REVIEWER_GROUP_NAME}
diff --git a/opentech/apply/review/templatetags/review_tags.py b/opentech/apply/review/templatetags/review_tags.py
index e5ef985c5bb9a148cb20a60a4aaccf07593dba08..eb16d09fd466d7415596d17d255aaae035c643d6 100644
--- a/opentech/apply/review/templatetags/review_tags.py
+++ b/opentech/apply/review/templatetags/review_tags.py
@@ -39,4 +39,4 @@ def can_review(user, submission):
 
 @register.filter
 def has_draft(user, submission):
-    return submission.can_review(user) and submission.reviews.filter(author=user, is_draft=True).exists()
+    return submission.can_review(user) and submission.assigned.draft_reviewed().filter(reviewer=user).exists()