fix: Remove automatically suggested document for document that is already has review request (fixes #3211) (#5425)
* Added check that if there is already review request for the document in question, ignore the automatic suggestion for that document. Fixes #3211. * fix: dont block on open requests for a previous version. Add tests --------- Co-authored-by: Nicolas Giard <github@ngpixel.com> Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
This commit is contained in:
parent
14b4f82239
commit
5a0ea56b38
ietf
|
@ -101,8 +101,20 @@ class ReviewTests(TestCase):
|
|||
|
||||
self.assertEqual(list(suggested_review_requests_for_team(team)), [])
|
||||
|
||||
# blocked by an already existing request (don't suggest it again)
|
||||
review_req.state_id = "requested"
|
||||
review_req.save()
|
||||
self.assertEqual(list(suggested_review_requests_for_team(team)), [])
|
||||
|
||||
# ... but not for a previous version
|
||||
review_req.requested_rev = prev_rev
|
||||
review_req.save()
|
||||
self.assertEqual(len(suggested_review_requests_for_team(team)), 1)
|
||||
|
||||
|
||||
# blocked by completion
|
||||
review_req.state = ReviewRequestStateName.objects.get(slug="assigned")
|
||||
review_req.requested_rev = ""
|
||||
review_req.save()
|
||||
assignment.state = ReviewAssignmentStateName.objects.get(slug="completed")
|
||||
assignment.reviewed_rev = review_req.doc.rev
|
||||
|
@ -116,6 +128,7 @@ class ReviewTests(TestCase):
|
|||
|
||||
self.assertEqual(len(suggested_review_requests_for_team(team)), 1)
|
||||
|
||||
|
||||
def test_suggested_review_requests_on_lc_and_telechat(self):
|
||||
review_req = ReviewRequestFactory(state_id='assigned')
|
||||
doc = review_req.doc
|
||||
|
|
|
@ -589,10 +589,12 @@ def suggested_review_requests_for_team(team):
|
|||
and existing.reviewassignment_set.filter(state_id__in=("assigned", "accepted")).exists()
|
||||
and (not existing.requested_rev or existing.requested_rev == request.doc.rev))
|
||||
request_closed = existing.state_id not in ('requested','assigned')
|
||||
# Is there a review request for this document already in system
|
||||
requested = existing.state_id in ('requested') and (not existing.requested_rev or existing.requested_rev == request.doc.rev)
|
||||
# at least one assignment was completed for the requested version or the current doc version if no specific version was requested:
|
||||
some_assignment_completed = existing.reviewassignment_set.filter(reviewed_rev=existing.requested_rev or existing.doc.rev, state_id='completed').exists()
|
||||
|
||||
return any([no_review_document, no_review_rev, pending, request_closed, some_assignment_completed])
|
||||
return any([no_review_document, no_review_rev, pending, request_closed, requested, some_assignment_completed])
|
||||
|
||||
res = [r for r in requests.values()
|
||||
if not any(blocks(e, r) for e in existing_requests[r.doc_id])]
|
||||
|
|
Loading…
Reference in a new issue