Skip to content

Commit 32b431c

Browse files
committed
allow ads and secretaries to edit the review request comment. Fixes ietf-tools#2096. (Again). Commit ready for merge.
- Legacy-Id: 12549
1 parent 6fcd8b8 commit 32b431c

5 files changed

Lines changed: 71 additions & 1 deletion

File tree

ietf/doc/tests_review.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -722,3 +722,20 @@ def test_revise_review_enter_content(self):
722722

723723
self.assertEqual(len(outbox), 0)
724724

725+
def test_edit_comment(self):
726+
doc = make_test_data()
727+
review_req = make_review_data(doc)
728+
729+
url = urlreverse('ietf.doc.views_review.edit_comment', kwargs={ "name": doc.name, "request_id": review_req.pk })
730+
731+
login_testing_unauthorized(self, "ad", url)
732+
733+
r = self.client.get(url)
734+
self.assertEqual(r.status_code, 200)
735+
736+
r = self.client.post(url, data={
737+
"comment": "iHsnReEHXEmNPXcixsvAF9Aa",
738+
})
739+
self.assertEqual(r.status_code, 302)
740+
review_req = reload_db_objects(review_req)
741+
self.assertEqual(review_req.comment,'iHsnReEHXEmNPXcixsvAF9Aa')

ietf/doc/urls_review.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@
99
url(r'^(?P<request_id>[0-9]+)/rejectreviewerassignment/$', views_review.reject_reviewer_assignment),
1010
url(r'^(?P<request_id>[0-9]+)/complete/$', views_review.complete_review),
1111
url(r'^(?P<request_id>[0-9]+)/searchmailarchive/$', views_review.search_mail_archive),
12+
url(r'^(?P<request_id>[0-9]+)/editcomment/$', views_review.edit_comment),
1213
)
1314

ietf/doc/views_review.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,8 @@ def review_request(request, name, request_id):
183183
and review_req.reviewer
184184
and (is_reviewer or can_manage_request))
185185

186+
can_edit_comment = can_request_review_of_doc(request.user, doc)
187+
186188
if request.method == "POST" and request.POST.get("action") == "accept" and can_accept_reviewer_assignment:
187189
review_req.state = ReviewRequestStateName.objects.get(slug="accepted")
188190
review_req.save()
@@ -197,6 +199,7 @@ def review_request(request, name, request_id):
197199
'can_assign_reviewer': can_assign_reviewer,
198200
'can_accept_reviewer_assignment': can_accept_reviewer_assignment,
199201
'can_complete_review': can_complete_review,
202+
'can_edit_comment': can_edit_comment,
200203
})
201204

202205

@@ -603,3 +606,26 @@ def search_mail_archive(request, name, request_id):
603606

604607
return JsonResponse(res)
605608

609+
class EditReviewRequestCommentForm(forms.ModelForm):
610+
comment = forms.CharField(widget=forms.Textarea)
611+
class Meta:
612+
fields = ['comment',]
613+
model = ReviewRequest
614+
615+
def edit_comment(request, name, request_id):
616+
review_req = get_object_or_404(ReviewRequest, pk=request_id)
617+
if not can_request_review_of_doc(request.user, review_req.doc):
618+
return HttpResponseForbidden("You do not have permission to perform this action")
619+
620+
if request.method == "POST":
621+
form = EditReviewRequestCommentForm(request.POST, instance=review_req)
622+
if form.is_valid():
623+
form.save()
624+
return redirect(review_request, name=review_req.doc.name, request_id=review_req.pk)
625+
else:
626+
form = EditReviewRequestCommentForm(instance=review_req)
627+
628+
return render(request, 'doc/review/edit_request_comment.html', {
629+
'review_req': review_req,
630+
'form' : form,
631+
})
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{% extends "base.html" %}
2+
{# Copyright The IETF Trust 2016, All Rights Reserved #}
3+
{% load origin bootstrap3 static %}
4+
5+
{% block title %}Edit review request comment for {{ review_req.doc.name }}{% endblock %}
6+
7+
{% block content %}
8+
{% origin %}
9+
<h1>Edit review request comment <br><small>{{ review_req.doc.name }}</small></h1>
10+
11+
<form method="post">
12+
{% csrf_token %}
13+
14+
{% bootstrap_form form %}
15+
16+
{% buttons %}
17+
<a class="btn btn-default" href="{% url "ietf.doc.views_review.review_request" name=review_req.doc.canonical_name request_id=review_req.pk %}">Cancel</a>
18+
<button type="submit" class="btn btn-primary">Save</button>
19+
{% endbuttons %}
20+
</form>
21+
22+
{% endblock %}

ietf/templates/doc/review/review_request.html

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,11 @@ <h1>Review request<br><small>{{ review_req.doc.name }}</small></h1>
7171
<tr>
7272
<th></th>
7373
<th>Comments</th>
74-
<td><pre class="pasted">{{review_req.comment}}</pre></td>
74+
<td><pre class="pasted">{{review_req.comment}}</pre>
75+
{% if can_edit_comment %}
76+
<a class="btn btn-default btn-xs" href="{% url "ietf.doc.views_review.edit_comment" name=doc.name request_id=review_req.pk %}"><span class="fa fa-edit"></span> Edit comment</a>
77+
{% endif %}
78+
</td>
7579
</tr>
7680
{% endif %}
7781
</tbody>

0 commit comments

Comments
 (0)