Refined the state changed email message per discussion on tools-development. Fixes #2116. Commit ready for merge.

- Legacy-Id: 13888
This commit is contained in:
Robert Sparks 2017-07-15 09:36:29 +00:00
parent 08c7a38fc8
commit 7a11217f6f
2 changed files with 11 additions and 6 deletions

View file

@ -327,6 +327,9 @@ def get_document_content(key, filename, split=True, markup=True):
else:
return raw_content
def tags_suffix(tags):
return (u"::" + u"::".join(t.name for t in tags)) if tags else u""
def add_state_change_event(doc, by, prev_state, new_state, prev_tags=[], new_tags=[], timestamp=None):
"""Add doc event to explain that state change just happened."""
if prev_state and new_state:
@ -335,9 +338,6 @@ def add_state_change_event(doc, by, prev_state, new_state, prev_tags=[], new_tag
if prev_state == new_state and set(prev_tags) == set(new_tags):
return None
def tags_suffix(tags):
return (u"::" + u"::".join(t.name for t in tags)) if tags else u""
e = StateDocEvent(doc=doc, rev=doc.rev, by=by)
e.type = "changed_state"
e.state_type = (prev_state or new_state).type

View file

@ -24,7 +24,7 @@ from ietf.doc.mails import ( email_pulled_from_rfc_queue, email_resurrect_reques
from ietf.doc.utils import ( add_state_change_event, can_adopt_draft,
get_tags_for_stream_id, nice_consensus,
update_reminder, update_telechat, make_notify_changed_event, get_initial_notify,
set_replaces_for_document, default_consensus )
set_replaces_for_document, default_consensus, tags_suffix, )
from ietf.doc.lastcall import request_last_call
from ietf.doc.fields import SearchableDocAliasesField
from ietf.group.models import Group, Role
@ -83,6 +83,7 @@ def change_state(request, name):
tag = form.cleaned_data['substate']
comment = form.cleaned_data['comment'].strip()
msg = ""
# tag handling is a bit awkward since the UI still works
# as if IESG tags are a substate
@ -99,6 +100,10 @@ def change_state(request, name):
e = add_state_change_event(doc, login, prev_state, new_state,
prev_tags=prev_tags, new_tags=new_tags)
msg += "%s changed:\n\nNew State: %s\n\n"%(e.state_type.label, new_state.name + tags_suffix(new_tags))
if prev_state:
msg += "(The previous state was %s)\n\n"%(prev_state.name + tags_suffix(prev_tags))
events.append(e)
if comment:
@ -109,12 +114,12 @@ def change_state(request, name):
c.desc = comment
c.save()
msg += c.desc + "\n"
events.append(c)
doc.save_with_history(events)
msg = u"\n".join(e.desc for e in events)
email_state_changed(request, doc, msg,'doc_state_edited')
if new_state.slug == "approved" and new_tags == [] and has_role(request.user, "Area Director"):