diff --git a/ietf/doc/views_draft.py b/ietf/doc/views_draft.py
index aeb5913a2..b10f4db3c 100644
--- a/ietf/doc/views_draft.py
+++ b/ietf/doc/views_draft.py
@@ -449,6 +449,18 @@ def change_intention(request, name):
c.save()
email_desc += "\n"+c.desc
+ de = doc.latest_event(ConsensusDocEvent, type="changed_consensus")
+ prev_consensus = de and de.consensus
+ print prev_consensus
+ print doc.intended_std_level_id
+ if not prev_consensus and doc.intended_std_level_id in ("std", "ds", "ps", "bcp"):
+ ce = ConsensusDocEvent(doc=doc, by=login, type="changed_consensus")
+ ce.consensus = True
+ ce.desc = "Changed consensus to %s from %s" % (nice_consensus(True),
+ nice_consensus(prev_consensus))
+ ce.save()
+ email_desc += "\n"+ce.desc
+
doc.time = e.time
doc.save()
@@ -1101,6 +1113,8 @@ def edit_consensus(request, name):
if form.cleaned_data["consensus"] != prev_consensus:
e = ConsensusDocEvent(doc=doc, type="changed_consensus", by=request.user.person)
e.consensus = {"Unknown":None,"Yes":True,"No":False}[form.cleaned_data["consensus"]]
+ if not e.consensus and doc.intended_std_level_id in ("std", "ds", "ps", "bcp"):
+ return HttpResponseForbidden("BCPs and Standards Track documents must have consensus")
e.desc = "Changed consensus to %s from %s" % (nice_consensus(e.consensus),
nice_consensus(prev_consensus))