Merged in [12549] from rjsparks@nostrum.com:

allow ads and secretaries to edit the review request comment. Fixes #2096. (Again).
 - Legacy-Id: 12550
Note: SVN reference [12549] has been migrated to Git commit 32b431cf24
This commit is contained in:
Henrik Levkowetz 2016-12-15 23:10:28 +00:00
parent 8dcc1d20a2
commit ff3638e365
6 changed files with 72 additions and 2 deletions

View file

@ -733,3 +733,20 @@ class ReviewTests(TestCase):
self.assertEqual(len(outbox), 0)
def test_edit_comment(self):
doc = make_test_data()
review_req = make_review_data(doc)
url = urlreverse('ietf.doc.views_review.edit_comment', kwargs={ "name": doc.name, "request_id": review_req.pk })
login_testing_unauthorized(self, "ad", url)
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
r = self.client.post(url, data={
"comment": "iHsnReEHXEmNPXcixsvAF9Aa",
})
self.assertEqual(r.status_code, 302)
review_req = reload_db_objects(review_req)
self.assertEqual(review_req.comment,'iHsnReEHXEmNPXcixsvAF9Aa')

View file

@ -9,5 +9,6 @@ urlpatterns = patterns('',
url(r'^(?P<request_id>[0-9]+)/rejectreviewerassignment/$', views_review.reject_reviewer_assignment),
url(r'^(?P<request_id>[0-9]+)/complete/$', views_review.complete_review),
url(r'^(?P<request_id>[0-9]+)/searchmailarchive/$', views_review.search_mail_archive),
url(r'^(?P<request_id>[0-9]+)/editcomment/$', views_review.edit_comment),
)

View file

@ -181,6 +181,8 @@ def review_request(request, name, request_id):
and review_req.reviewer
and (is_reviewer or can_manage_request))
can_edit_comment = can_request_review_of_doc(request.user, doc)
if request.method == "POST" and request.POST.get("action") == "accept" and can_accept_reviewer_assignment:
review_req.state = ReviewRequestStateName.objects.get(slug="accepted")
review_req.save()
@ -195,6 +197,7 @@ def review_request(request, name, request_id):
'can_assign_reviewer': can_assign_reviewer,
'can_accept_reviewer_assignment': can_accept_reviewer_assignment,
'can_complete_review': can_complete_review,
'can_edit_comment': can_edit_comment,
})
@ -601,3 +604,26 @@ def search_mail_archive(request, name, request_id):
return JsonResponse(res)
class EditReviewRequestCommentForm(forms.ModelForm):
comment = forms.CharField(widget=forms.Textarea)
class Meta:
fields = ['comment',]
model = ReviewRequest
def edit_comment(request, name, request_id):
review_req = get_object_or_404(ReviewRequest, pk=request_id)
if not can_request_review_of_doc(request.user, review_req.doc):
return HttpResponseForbidden("You do not have permission to perform this action")
if request.method == "POST":
form = EditReviewRequestCommentForm(request.POST, instance=review_req)
if form.is_valid():
form.save()
return redirect(review_request, name=review_req.doc.name, request_id=review_req.pk)
else:
form = EditReviewRequestCommentForm(instance=review_req)
return render(request, 'doc/review/edit_request_comment.html', {
'review_req': review_req,
'form' : form,
})

View file

@ -7,7 +7,7 @@ from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('review', '0009_auto_20161214_1537'),
('review', '0008_populate_reviewteamsettings'),
]
operations = [

View file

@ -0,0 +1,22 @@
{% extends "base.html" %}
{# Copyright The IETF Trust 2016, All Rights Reserved #}
{% load origin bootstrap3 static %}
{% block title %}Edit review request comment for {{ review_req.doc.name }}{% endblock %}
{% block content %}
{% origin %}
<h1>Edit review request comment <br><small>{{ review_req.doc.name }}</small></h1>
<form method="post">
{% csrf_token %}
{% bootstrap_form form %}
{% buttons %}
<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>
<button type="submit" class="btn btn-primary">Save</button>
{% endbuttons %}
</form>
{% endblock %}

View file

@ -71,7 +71,11 @@
<tr>
<th></th>
<th>Comments</th>
<td><pre class="pasted">{{review_req.comment}}</pre></td>
<td><pre class="pasted">{{review_req.comment}}</pre>
{% if can_edit_comment %}
<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>
{% endif %}
</td>
</tr>
{% endif %}
</tbody>