Merged in [16981] from rjsparks@nostrum.com:
Look at the tree of replaces-relationships when determining if some reviewer has reviewed this (or perhaps an ancestor) of this document. Fixes #2821.
- Legacy-Id: 16992
Note: SVN reference [16981] has been migrated to Git commit f740adcfc1
This commit is contained in:
commit
4049804920
|
@ -6,6 +6,7 @@ from __future__ import absolute_import, print_function, unicode_literals
|
|||
|
||||
import debug # pyflakes:ignore
|
||||
import factory
|
||||
import factory.fuzzy
|
||||
import datetime
|
||||
import six
|
||||
if six.PY3:
|
||||
|
@ -36,6 +37,8 @@ class BaseDocumentFactory(factory.DjangoModelFactory):
|
|||
intended_std_level_id = None
|
||||
time = datetime.datetime.now()
|
||||
expires = factory.LazyAttribute(lambda o: o.time+datetime.timedelta(days=settings.INTERNET_DRAFT_DAYS_TO_EXPIRE))
|
||||
pages = factory.fuzzy.FuzzyInteger(2,400)
|
||||
|
||||
|
||||
@factory.lazy_attribute_sequence
|
||||
def name(self, n):
|
||||
|
|
|
@ -22,8 +22,8 @@ from pyquery import PyQuery
|
|||
import debug # pyflakes:ignore
|
||||
|
||||
import ietf.review.mailarch
|
||||
from ietf.doc.factories import NewRevisionDocEventFactory, WgDraftFactory, WgRfcFactory, \
|
||||
ReviewFactory, DocumentFactory
|
||||
from ietf.doc.factories import ( NewRevisionDocEventFactory, IndividualDraftFactory, WgDraftFactory,
|
||||
WgRfcFactory, ReviewFactory, DocumentFactory)
|
||||
from ietf.doc.models import DocumentAuthor, RelatedDocument, DocEvent, ReviewRequestDocEvent, ReviewAssignmentDocEvent
|
||||
from ietf.group.factories import RoleFactory, ReviewTeamFactory
|
||||
from ietf.group.models import Group
|
||||
|
@ -434,6 +434,29 @@ class ReviewTests(TestCase):
|
|||
self.assertIn("This team has completed other reviews", message)
|
||||
self.assertIn("{} -01 Serious Issues".format(reviewer_email.person.ascii), message)
|
||||
|
||||
def test_previously_reviewed_replaced_doc(self):
|
||||
review_team = ReviewTeamFactory(acronym="reviewteam", name="Review Team", type_id="review", list_email="reviewteam@ietf.org", parent=Group.objects.get(acronym="farfut"))
|
||||
rev_role = RoleFactory(group=review_team,person__user__username='reviewer',person__user__email='reviewer@example.com',person__name='Some Reviewer',name_id='reviewer')
|
||||
RoleFactory(group=review_team,person__user__username='reviewsecretary',person__user__email='reviewsecretary@example.com',name_id='secr')
|
||||
|
||||
ind_doc = IndividualDraftFactory()
|
||||
old_wg_doc = WgDraftFactory(relations=[('replaces',ind_doc)])
|
||||
middle_wg_doc = WgDraftFactory(relations=[('replaces',old_wg_doc)])
|
||||
new_wg_doc = WgDraftFactory(relations=[('replaces',middle_wg_doc)])
|
||||
|
||||
ReviewAssignmentFactory(review_request__team=review_team, review_request__doc=old_wg_doc, reviewer=rev_role.email, state_id='completed')
|
||||
|
||||
review_req=ReviewRequestFactory(team=review_team, doc=new_wg_doc)
|
||||
|
||||
assign_url = urlreverse('ietf.doc.views_review.assign_reviewer', kwargs={ "name": new_wg_doc.name, "request_id": review_req.pk })
|
||||
|
||||
login_testing_unauthorized(self, "reviewsecretary", assign_url)
|
||||
r = self.client.get(assign_url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
reviewer_label = q("option[value=\"{}\"]".format(rev_role.email.address)).text().lower()
|
||||
self.assertIn("reviewed document before", reviewer_label)
|
||||
|
||||
def test_accept_reviewer_assignment(self):
|
||||
|
||||
doc = WgDraftFactory(group__acronym='mars',rev='01')
|
||||
|
|
|
@ -826,7 +826,7 @@ def make_assignment_choices(email_queryset, review_req):
|
|||
|
||||
# previous review of document
|
||||
has_reviewed_previous = ReviewRequest.objects.filter(
|
||||
doc=doc,
|
||||
doc__name__in=set([doc.name]).union(*extract_complete_replaces_ancestor_mapping_for_docs([doc.name]).values()),
|
||||
reviewassignment__reviewer__person__in=possible_person_ids,
|
||||
reviewassignment__state="completed",
|
||||
team=team,
|
||||
|
|
Loading…
Reference in a new issue