Merged in [8271] and [8292] from rjsparks@nostrum.com:
Send email when a the telechat date (or returning item bit) changes for a document. Fixes #1452 - Legacy-Id: 8383 Note: SVN reference [8271] has been migrated to Git commit 80fc0c7caa4feac2966722324e42a53cabe67a6b Note: SVN reference [8292] has been migrated to Git commit 7c56f8bad35b6ed06f6c6eff7436c178209d4143
This commit is contained in:
parent
25423f6779
commit
320051213e
|
@ -483,3 +483,4 @@ def email_stream_tags_changed(request, doc, added_tags, removed_tags, by, commen
|
|||
removed=removed_tags,
|
||||
by=by,
|
||||
comment=comment))
|
||||
|
||||
|
|
|
@ -480,8 +480,9 @@ class DeferUndeferTestCase(TestCase):
|
|||
if doc.type_id in defer_states:
|
||||
self.assertEqual(doc.get_state(defer_states[doc.type_id][0]).slug,defer_states[doc.type_id][1])
|
||||
self.assertTrue(doc.active_defer_event())
|
||||
self.assertEqual(len(outbox), mailbox_before + 2)
|
||||
self.assertTrue("State Update" in outbox[-2]['Subject'])
|
||||
self.assertEqual(len(outbox), mailbox_before + 3)
|
||||
self.assertTrue("State Update" in outbox[-3]['Subject'])
|
||||
self.assertTrue("Telechat update" in outbox[-2]['Subject'])
|
||||
self.assertTrue("Deferred" in outbox[-1]['Subject'])
|
||||
self.assertTrue(doc.file_tag() in outbox[-1]['Subject'])
|
||||
|
||||
|
@ -534,7 +535,8 @@ class DeferUndeferTestCase(TestCase):
|
|||
if doc.type_id in undefer_states:
|
||||
self.assertEqual(doc.get_state(undefer_states[doc.type_id][0]).slug,undefer_states[doc.type_id][1])
|
||||
self.assertFalse(doc.active_defer_event())
|
||||
self.assertEqual(len(outbox), mailbox_before + 2)
|
||||
self.assertEqual(len(outbox), mailbox_before + 3)
|
||||
self.assertTrue("Telechat update" in outbox[-3]['Subject'])
|
||||
self.assertTrue("State Update" in outbox[-2]['Subject'])
|
||||
self.assertTrue("Undeferred" in outbox[-1]['Subject'])
|
||||
self.assertTrue(doc.file_tag() in outbox[-1]['Subject'])
|
||||
|
|
|
@ -232,7 +232,7 @@ class EditInfoTests(TestCase):
|
|||
data = dict(intended_std_level=str(draft.intended_std_level_id),
|
||||
stream=draft.stream_id,
|
||||
ad=str(draft.ad_id),
|
||||
notify="test@example.com",
|
||||
notify=draft.notify,
|
||||
note="",
|
||||
)
|
||||
|
||||
|
@ -241,6 +241,7 @@ class EditInfoTests(TestCase):
|
|||
self.assertEqual(r.status_code, 200)
|
||||
|
||||
# add to telechat
|
||||
mailbox_before=len(outbox)
|
||||
self.assertTrue(not draft.latest_event(TelechatDocEvent, type="scheduled_for_telechat"))
|
||||
data["telechat_date"] = TelechatDate.objects.active()[0].date.isoformat()
|
||||
r = self.client.post(url, data)
|
||||
|
@ -249,8 +250,11 @@ class EditInfoTests(TestCase):
|
|||
draft = Document.objects.get(name=draft.name)
|
||||
self.assertTrue(draft.latest_event(TelechatDocEvent, type="scheduled_for_telechat"))
|
||||
self.assertEqual(draft.latest_event(TelechatDocEvent, type="scheduled_for_telechat").telechat_date, TelechatDate.objects.active()[0].date)
|
||||
self.assertEqual(len(outbox),mailbox_before+1)
|
||||
self.assertTrue("Telechat update" in outbox[-1]['Subject'])
|
||||
|
||||
# change telechat
|
||||
mailbox_before=len(outbox)
|
||||
data["telechat_date"] = TelechatDate.objects.active()[1].date.isoformat()
|
||||
r = self.client.post(url, data)
|
||||
self.assertEqual(r.status_code, 302)
|
||||
|
@ -259,6 +263,8 @@ class EditInfoTests(TestCase):
|
|||
telechat_event = draft.latest_event(TelechatDocEvent, type="scheduled_for_telechat")
|
||||
self.assertEqual(telechat_event.telechat_date, TelechatDate.objects.active()[1].date)
|
||||
self.assertFalse(telechat_event.returning_item)
|
||||
self.assertEqual(len(outbox),mailbox_before+1)
|
||||
self.assertTrue("Telechat update" in outbox[-1]['Subject'])
|
||||
|
||||
# change to a telechat that should cause returning item to be auto-detected
|
||||
# First, make it appear that the previous telechat has already passed
|
||||
|
@ -277,12 +283,15 @@ class EditInfoTests(TestCase):
|
|||
self.assertTrue(telechat_event.returning_item)
|
||||
|
||||
# remove from agenda
|
||||
mailbox_before=len(outbox)
|
||||
data["telechat_date"] = ""
|
||||
r = self.client.post(url, data)
|
||||
self.assertEqual(r.status_code, 302)
|
||||
|
||||
draft = Document.objects.get(name=draft.name)
|
||||
self.assertTrue(not draft.latest_event(TelechatDocEvent, type="scheduled_for_telechat").telechat_date)
|
||||
self.assertEqual(len(outbox),mailbox_before+1)
|
||||
self.assertTrue("Telechat update" in outbox[-1]['Subject'])
|
||||
|
||||
def test_start_iesg_process_on_draft(self):
|
||||
make_test_data()
|
||||
|
|
|
@ -7,6 +7,7 @@ import datetime
|
|||
from django.conf import settings
|
||||
from django.db.models.query import EmptyQuerySet
|
||||
from django.forms import ValidationError
|
||||
from django.utils.html import strip_tags
|
||||
|
||||
from ietf.utils import markup_txt
|
||||
from ietf.doc.models import Document, DocHistory
|
||||
|
@ -16,6 +17,23 @@ from ietf.name.models import DocReminderTypeName, DocRelationshipName
|
|||
from ietf.group.models import Role
|
||||
from ietf.ietfauth.utils import has_role
|
||||
from ietf.utils import draft
|
||||
from ietf.utils.mail import send_mail
|
||||
|
||||
#FIXME - it would be better if this lived in ietf/doc/mails.py, but there's
|
||||
# an import order issue to work out.
|
||||
def email_update_telechat(request, doc, text):
|
||||
to = set(['iesg@ietf.org','iesg-secretary@ietf.org'])
|
||||
to.update(set([x.strip() for x in doc.notify.replace(';', ',').split(',')]))
|
||||
|
||||
if not to:
|
||||
return
|
||||
|
||||
text = strip_tags(text)
|
||||
send_mail(request, list(to), None,
|
||||
"Telechat update notice: %s" % doc.file_tag(),
|
||||
"doc/mail/update_telechat.txt",
|
||||
dict(text=text,
|
||||
url=settings.IDTRACKER_BASE_URL + doc.get_absolute_url()))
|
||||
|
||||
def get_state_types(doc):
|
||||
res = []
|
||||
|
@ -368,6 +386,7 @@ def update_telechat(request, doc, by, new_telechat_date, new_returning_item=None
|
|||
e.desc = "Removed telechat returning item indication"
|
||||
|
||||
e.save()
|
||||
email_update_telechat(request, doc, e.desc)
|
||||
|
||||
def rebuild_reference_relations(doc,filename=None):
|
||||
if doc.type.slug != 'draft':
|
||||
|
|
3
ietf/templates/doc/mail/update_telechat.txt
Normal file
3
ietf/templates/doc/mail/update_telechat.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
{% autoescape off %}{{ text }}
|
||||
ID Tracker URL: {{ url }}
|
||||
{% endautoescape %}
|
Loading…
Reference in a new issue