Skip to content

Commit da3174a

Browse files
committed
Improved several views.
- Legacy-Id: 16038
1 parent 4b147f2 commit da3174a

8 files changed

Lines changed: 24 additions & 18 deletions

File tree

ietf/doc/factories.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,12 @@ def states(obj, create, extracted, **kwargs):
209209
else:
210210
obj.set_state(State.objects.get(type_id='conflrev',slug='iesgeval'))
211211

212+
# TODO: This is too skeletal - improve it with, at least, a group generator that backs the object with a review team.
213+
class ReviewFactory(BaseDocumentFactory):
214+
type_id = 'review'
215+
name = factory.LazyAttribute(lambda o: 'review-doesnotexist-00-%s-%s'%(o.group.acronym,datetime.date.today().isoformat()))
216+
group = factory.SubFactory('ietf.group.factories.GroupFactory',type_id='review')
217+
212218
class DocAliasFactory(factory.DjangoModelFactory):
213219
class Meta:
214220
model = DocAlias

ietf/doc/tests_review.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import debug # pyflakes:ignore
1818

1919
import ietf.review.mailarch
20-
from ietf.doc.factories import NewRevisionDocEventFactory, WgDraftFactory, WgRfcFactory
20+
from ietf.doc.factories import NewRevisionDocEventFactory, WgDraftFactory, WgRfcFactory, ReviewFactory
2121
from ietf.doc.models import DocumentAuthor, RelatedDocument, DocEvent, ReviewAssignmentDocEvent
2222
from ietf.group.factories import RoleFactory, ReviewTeamFactory
2323
from ietf.group.models import Group
@@ -335,6 +335,7 @@ def test_assign_reviewer(self):
335335
result_id='serious-issues',
336336
reviewer=reviewer_email,
337337
reviewed_rev="01",
338+
review = ReviewFactory(),
338339
assigned_on=req.time,
339340
completed_on=req.time + datetime.timedelta(days=10),
340341
)

ietf/doc/views_review.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,7 @@ def reject_reviewer_assignment(request, name, assignment_id):
360360
return render(request, 'doc/review/reject_reviewer_assignment.html', {
361361
'doc': doc,
362362
'review_req': review_assignment.review_request,
363+
'assignments': review_assignment.review_request.reviewassignment_set.all(),
363364
'form': form,
364365
})
365366

ietf/group/tests_review.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ def test_suggested_review_requests(self):
100100
review_req.state = ReviewRequestStateName.objects.get(slug="assigned")
101101
review_req.save()
102102
assignment.state = ReviewAssignmentStateName.objects.get(slug="completed")
103+
assignment.reviewed_rev = review_req.doc.rev
103104
assignment.save()
104105

105106
self.assertEqual(list(suggested_review_requests_for_team(team)), [])

ietf/review/models.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -136,11 +136,8 @@ class ReviewRequest(models.Model):
136136
def __unicode__(self):
137137
return u"%s review on %s by %s %s" % (self.type, self.doc, self.team, self.state)
138138

139-
def other_requests(self):
140-
return self.doc.reviewrequest_set.exclude(id=self.id)
141-
142-
def other_completed_requests(self):
143-
return self.other_requests().filter(state_id__in=['completed','part-completed'])
139+
def all_completed_assignments_for_doc(self):
140+
return ReviewAssignment.objects.filter(review_request__doc=self.doc, state__in=['completed','part-completed'])
144141

145142
def request_closed_time(self):
146143
return self.doc.request_closed_time(self) or self.time

ietf/review/utils.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -450,10 +450,11 @@ def assign_review_request_to_reviewer(request, review_req, reviewer, add_skip=Fa
450450

451451
# Note that assigning a review no longer unassigns other reviews
452452

453-
review_req.reviewassignment_set.create(state_id='assigned', reviewer = reviewer, assigned_on = datetime.datetime.now())
454453
if review_req.state_id != 'assigned':
455454
review_req.state_id = 'assigned'
456455
review_req.save()
456+
457+
review_req.reviewassignment_set.create(state_id='assigned', reviewer = reviewer, assigned_on = datetime.datetime.now())
457458

458459
if reviewer:
459460
possibly_advance_next_reviewer_for_team(review_req.team, reviewer.person_id, add_skip)
@@ -543,8 +544,9 @@ def close_review_request(request, review_req, close_state):
543544
suggested_req = review_req.pk is None
544545

545546
review_req.state = close_state
546-
if close_state.slug == "no-review-version":
547-
review_req.reviewed_rev = review_req.requested_rev or review_req.doc.rev # save rev for later reference
547+
# This field no longer exists, and it's not clear what the later reference was...
548+
# if close_state.slug == "no-review-version":
549+
# review_req.reviewed_rev = review_req.requested_rev or review_req.doc.rev # save rev for later reference
548550
review_req.save()
549551

550552
if not suggested_req:
@@ -681,8 +683,8 @@ def blocks(existing, request):
681683
and existing.reviewassignment_set.filter(state_id__in=("assigned", "accepted")).exists()
682684
and (not existing.requested_rev or existing.requested_rev == request.doc.rev))
683685
request_closed = existing.state_id not in ('requested','assigned')
684-
# at least one assignment was completed for the requested version:
685-
some_assignment_completed = existing.reviewassignment_set.filter(reviewed_rev=existing.requested_rev,state_id='completed').exists()
686+
# at least one assignment was completed for the requested version or the current doc version if no specific version was requested:
687+
some_assignment_completed = existing.reviewassignment_set.filter(reviewed_rev=existing.requested_rev or existing.doc.rev, state_id='completed').exists()
686688

687689
return any([no_review_document, no_review_rev, pending, request_closed, some_assignment_completed])
688690

ietf/templates/doc/review/reject_reviewer_assignment.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ <h1>Reject review assignment<br><small>{{ review_req.doc.name }}</small></h1>
1010

1111
{% include "doc/review/request_info.html" %}
1212

13-
<p>{{ review_req.reviewer.person }} is currently assigned to do the review. Do you want to reject this assignment?</p>
13+
<p>Do you want to reject this assignment?</p>
1414

1515
<form method="post">
1616
{% csrf_token %}

ietf/templates/doc/review/request_info.html

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,10 @@
7878

7979
<tr>
8080
<th></th>
81-
<th>Reviews from other teams</th>
81+
<th>Completed reviews</th>
8282
<td>
83-
{% for req in review_req.other_completed_requests %} {# TODO: align this with new models #}
84-
{% if req.reviewer == review_req.reviewer %}<strong>{% endif %}
85-
<a href="{% url "ietf.doc.views_review.review_request" name=req.doc request_id=req.id %}">{{req.team.acronym|capfirst}} {{req.type.name}} review of -{{req.reviewed_rev}} by {{req.reviewer.person.plain_name}}</a> {% if req.reviewed_rev != req.doc.rev %} (<a href="{{ rfcdiff_base_url }}?url1={{ req.doc.name }}-{{ req.reviewed_rev }}&amp;url2={{ req.doc.name }}-{{ req.doc.rev }}">diff</a>){% endif %}<br>
86-
{% if req.reviewer == review_req.reviewer %}</strong>{% endif %}
83+
{% for a in review_req.all_completed_assignments_for_doc %}
84+
<a href="{% url "ietf.doc.views_doc.document_main" name=a.review.name %}">{{a.review_request.team.acronym|capfirst}} {{a.review_request.type.name}} review of -{{a.reviewed_rev}} by {{a.reviewer.person.plain_name}}</a> {% if a.reviewed_rev != a.review_request.doc.rev %} (<a href="{{ rfcdiff_base_url }}?url1={{ a.review_request.doc.name }}-{{ a.reviewed_rev }}&amp;url2={{ a.review_request.doc.name }}-{{ a.review_request.doc.rev }}">diff</a>){% endif %}<br>
8785
{% endfor %}
8886
</td>
8987
</tr>
@@ -134,7 +132,7 @@
134132
<tbody class="panel-meta">
135133
<tr>
136134
<th>State</th>
137-
<td>{{ review_req.state.name }}
135+
<td>{{ assignment.state.name }}
138136
{% if snapshot %}
139137
<span class="label label-warning">Snapshot</span>
140138
{% endif %}

0 commit comments

Comments
 (0)