diff --git a/ietf/doc/tests_draft.py b/ietf/doc/tests_draft.py index 85f63cf8f..4bf91fb36 100644 --- a/ietf/doc/tests_draft.py +++ b/ietf/doc/tests_draft.py @@ -365,6 +365,12 @@ class EditInfoTests(TestCase): self.assertEqual(draft.latest_event(ConsensusDocEvent, type="changed_consensus").consensus, True) + # reset + r = self.client.post(url, dict(consensus="Unknown")) + self.assertEqual(r.status_code, 302) + + self.assertEqual(draft.latest_event(ConsensusDocEvent, type="changed_consensus").consensus, None) + class ResurrectTests(TestCase): def test_request_resurrect(self): diff --git a/ietf/doc/views_draft.py b/ietf/doc/views_draft.py index 33128ae07..bc47e441e 100644 --- a/ietf/doc/views_draft.py +++ b/ietf/doc/views_draft.py @@ -1139,7 +1139,7 @@ def edit_ad(request, name): context_instance = RequestContext(request)) class ConsensusForm(forms.Form): - consensus = forms.ChoiceField(choices=(("", "Unknown"), ("Yes", "Yes"), ("No", "No")), required=True) + consensus = forms.ChoiceField(choices=(("Unknown", "Unknown"), ("Yes", "Yes"), ("No", "No")), required=True) def edit_consensus(request, name): """Change whether the draft is a consensus document or not.""" @@ -1156,9 +1156,9 @@ def edit_consensus(request, name): if request.method == 'POST': form = ConsensusForm(request.POST) if form.is_valid(): - if form.cleaned_data["consensus"] != bool(prev_consensus): + if form.cleaned_data["consensus"] != prev_consensus: e = ConsensusDocEvent(doc=doc, type="changed_consensus", by=request.user.person) - e.consensus = form.cleaned_data["consensus"] == "Yes" + e.consensus = {"Unknown":None,"Yes":True,"No":False}[form.cleaned_data["consensus"]] e.desc = "Changed consensus to %s from %s" % (nice_consensus(e.consensus), nice_consensus(prev_consensus)) @@ -1168,7 +1168,7 @@ def edit_consensus(request, name): return redirect('doc_view', name=doc.name) else: - form = ConsensusForm(initial=dict(consensus=nice_consensus(prev_consensus).replace("Unknown", ""))) + form = ConsensusForm(initial=dict(consensus=nice_consensus(prev_consensus))) return render_to_response('doc/draft/change_consensus.html', {'form': form, @@ -1260,7 +1260,7 @@ def request_publication(request, name): doc=doc, message=m, next_state=next_state, - consensus_filled_in=consensus_event != None, + consensus_filled_in= ( (consensus_event != None) and (consensus_event.consensus != None) ), ), context_instance = RequestContext(request)) diff --git a/ietf/iesg/agenda.py b/ietf/iesg/agenda.py index 0c4734964..ade06bc02 100644 --- a/ietf/iesg/agenda.py +++ b/ietf/iesg/agenda.py @@ -172,7 +172,7 @@ def fill_in_agenda_docs(date, sections, matches=None): if doc.stream_id in ("ietf", "irtf", "iab"): doc.consensus = "Unknown" e = doc.latest_event(ConsensusDocEvent, type="changed_consensus") - if e: + if e and (e.consensus != None): doc.consensus = "Yes" if e.consensus else "No" elif doc.type_id == "conflrev": doc.conflictdoc = doc.relateddocument_set.get(relationship__slug='conflrev').target.document