Added the ability to reset the conflict review response text to the template at Sean's request

- Legacy-Id: 4549
This commit is contained in:
Robert Sparks 2012-06-28 19:51:39 +00:00
parent 831058620f
commit 8b5d95e71b
4 changed files with 39 additions and 18 deletions

View file

@ -276,7 +276,7 @@ class ConflictReviewSubmitTestCase(django.test.TestCase):
path = os.path.join(settings.CONFLICT_REVIEW_PATH, '%s-%s.txt' % (doc.canonical_name(), doc.rev))
self.assertEquals(doc.rev,u'00')
self.assertFalse(os.path.exists(path))
r = self.client.post(url,dict(content="Some initial review text\n"))
r = self.client.post(url,dict(content="Some initial review text\n",submit_response="1"))
self.assertEquals(r.status_code,302)
doc = Document.objects.get(name='conflict-review-imaginary-irtf-submission')
self.assertEquals(doc.rev,u'00')
@ -309,14 +309,14 @@ class ConflictReviewSubmitTestCase(django.test.TestCase):
# how client.post populates Content-Type?
test_file = StringIO("\x10\x11\x12") # post binary file
test_file.name = "unnamed"
r = self.client.post(url, dict(txt=test_file))
r = self.client.post(url, dict(txt=test_file,submit_response="1"))
self.assertEquals(r.status_code, 200)
self.assertTrue("does not appear to be a text file" in r.content)
# sane post uploading a file
test_file = StringIO("This is a new proposal.")
test_file.name = "unnamed"
r = self.client.post(url,dict(txt=test_file))
r = self.client.post(url,dict(txt=test_file,submit_response="1"))
self.assertEquals(r.status_code, 302)
doc = Document.objects.get(name='conflict-review-imaginary-irtf-submission')
self.assertEquals(doc.rev,u'01')
@ -325,6 +325,12 @@ class ConflictReviewSubmitTestCase(django.test.TestCase):
self.assertEquals(f.read(),"This is a new proposal.")
f.close()
self.assertTrue( "submission-01" in doc.latest_event(NewRevisionDocEvent).desc)
# verify reset text button works
r = self.client.post(url,dict(reset_text="1"))
self.assertEquals(r.status_code, 200)
q = PyQuery(r.content)
self.assertTrue(q('textarea')[0].text.startswith("[Edit this page"))
def setUp(self):
make_test_data()

View file

@ -131,25 +131,39 @@ def submit(request, name):
next_rev = "%02d" % (int(review.rev)+1)
if request.method == 'POST':
form = UploadForm(request.POST, request.FILES)
if form.is_valid():
save_document_in_history(review)
if "submit_response" in request.POST:
form = UploadForm(request.POST, request.FILES)
if form.is_valid():
save_document_in_history(review)
review.rev = next_rev
review.rev = next_rev
e = NewRevisionDocEvent(doc=review, by=login, type="new_revision")
e.desc = "New version available: <b>%s-%s.txt</b>" % (review.canonical_name(), review.rev)
e.rev = review.rev
e.save()
e = NewRevisionDocEvent(doc=review, by=login, type="new_revision")
e.desc = "New version available: <b>%s-%s.txt</b>" % (review.canonical_name(), review.rev)
e.rev = review.rev
e.save()
# Save file on disk
form.save(review)
# Save file on disk
form.save(review)
review.time = datetime.datetime.now()
review.save()
review.time = datetime.datetime.now()
review.save()
return HttpResponseRedirect(reverse('doc_view', kwargs={'name': review.name}))
elif "reset_text" in request.POST:
init = { "content": render_to_string("doc/conflict_review/review_choices.txt",dict())}
form = UploadForm(initial=init)
# Protect against handcrufted malicious posts
else:
form = None
return HttpResponseRedirect(reverse('doc_view', kwargs={'name': review.name}))
else:
form = None
if not form:
init = { "content": ""}
if not_uploaded_yet:

View file

@ -42,7 +42,7 @@ if settings.USE_DB_REDESIGN_PROXY_CLASSES:
def email_stream_changed(request, doc, old_stream, new_stream, text=""):
"""Email the change text to the notify group and to the stream chairs"""
to = [x.strip() for x in doc.notify.replace(';', ',').split(',')]
from group.models import Role as RedesignRole
from ietf.group.models import Role as RedesignRole
# These use comprehension to deal with conditions when there might be more than one chair listed for a stream
if old_stream:

View file

@ -31,7 +31,8 @@ Edit conflict review for {{ conflictdoc.canonical_name }}-{{ conflictdoc.rev }}
<td></td>
<td class="actions">
<a href="{% url doc_view name=review.canonical_name %}">Back</a>
<input type="submit" value="Submit"/>
<input type="submit" name="reset_text" value="Reset to Template Text"/>
<input type="submit" name="submit_response" value="Submit"/>
</td>
</tr>
</table>