From b64b1dff44d917641d9ee31bf52e5d383012ef28 Mon Sep 17 00:00:00 2001 From: Fredrik Jonsson <frjo@xdeb.org> Date: Mon, 3 Jun 2019 21:25:39 +0200 Subject: [PATCH] Set AssigneReviewers correctly on new submissions. Show review button. --- opentech/apply/funds/models/submissions.py | 11 ++++++++--- opentech/apply/review/templatetags/review_tags.py | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/opentech/apply/funds/models/submissions.py b/opentech/apply/funds/models/submissions.py index 661bb355b..1305c8d03 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 e5ef985c5..eb16d09fd 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() -- GitLab