Skip to content
Snippets Groups Projects
Commit 4be83efc authored by Todd Dembrey's avatar Todd Dembrey
Browse files

Gh-1016: Make sure we dont duplicate assignment when adding in a role

parent 17b3c48b
No related branches found
No related tags found
No related merge requests found
...@@ -181,11 +181,8 @@ class UpdateReviewersForm(forms.ModelForm): ...@@ -181,11 +181,8 @@ class UpdateReviewersForm(forms.ModelForm):
} }
for role, reviewer in assigned_roles.items(): for role, reviewer in assigned_roles.items():
if reviewer: if reviewer:
AssignedReviewers.objects.update_or_create( AssignedReviewers.objects.filter(submission=instance, role=role).delete()
submission=instance, AssignedReviewers.objects.update_or_create(submission=instance, reviewer=reviewer, defaults={'role': role})
role=role,
defaults={'reviewer': reviewer},
)
# 2. Update non-role reviewers # 2. Update non-role reviewers
# 2a. Remove those not on form # 2a. Remove those not on form
......
...@@ -297,6 +297,14 @@ class TestReviewersUpdateView(BaseSubmissionViewTestCase): ...@@ -297,6 +297,14 @@ class TestReviewersUpdateView(BaseSubmissionViewTestCase):
# Make sure that the ex-role-reviewer is still assigned record # Make sure that the ex-role-reviewer is still assigned record
self.assertCountEqual(submission.reviewers.all(), self.staff[0:2]) self.assertCountEqual(submission.reviewers.all(), self.staff[0:2])
def test_can_be_made_role_and_not_duplciated(self):
submission = ApplicationSubmissionFactory()
ReviewFactory(submission=submission, author=self.staff[0])
self.post_form(submission, reviewer_roles=[self.staff[0]])
self.assertCountEqual(submission.reviewers.all(), [self.staff[0]])
def test_can_remove_external_reviewer_and_review_remains(self): def test_can_remove_external_reviewer_and_review_remains(self):
submission = ApplicationSubmissionFactory(lead=self.user) submission = ApplicationSubmissionFactory(lead=self.user)
reviewer = self.reviewers[0] reviewer = self.reviewers[0]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment