Highlight need for milestone review and approval in messages to leadership when a milestone edit requires approval. Don't bother the group when the only changes are those needing approval. Fixes ticket #1501. Commit ready for merge.
- Legacy-Id: 8716
This commit is contained in:
parent
50cb5f0762
commit
134ae9928f
|
@ -34,13 +34,16 @@ def email_iesg_secretary_personnel_change(request, group, text):
|
|||
|
||||
def email_milestones_changed(request, group, changes):
|
||||
def wrap_up_email(to, text):
|
||||
|
||||
subject = u"Milestones changed for %s %s" % (group.acronym, group.type.name)
|
||||
if re.search("Added .* for review, due",text):
|
||||
subject = u"Review Required - " + subject
|
||||
|
||||
text = wrap(strip_tags(text), 70)
|
||||
text += "\n\n"
|
||||
text += u"URL: %s" % (settings.IDTRACKER_BASE_URL + group.about_url())
|
||||
|
||||
send_mail_text(request, to, None,
|
||||
u"Milestones changed for %s %s" % (group.acronym, group.type.name),
|
||||
text)
|
||||
send_mail_text(request, to, None, subject, text)
|
||||
|
||||
# first send to management and chairs
|
||||
to = []
|
||||
|
@ -59,7 +62,9 @@ def email_milestones_changed(request, group, changes):
|
|||
if group.list_email:
|
||||
review_re = re.compile("Added .* for review, due")
|
||||
to = [ group.list_email ]
|
||||
wrap_up_email(to, u"\n\n".join(c + "." for c in changes if not review_re.match(c)))
|
||||
msg = u"\n\n".join(c + "." for c in changes if not review_re.match(c))
|
||||
if msg:
|
||||
wrap_up_email(to, msg)
|
||||
|
||||
|
||||
def email_milestone_review_reminder(group, grace_period=7):
|
||||
|
|
|
@ -542,6 +542,7 @@ class MilestoneTests(TestCase):
|
|||
self.assertEqual(GroupMilestone.objects.count(), milestones_before)
|
||||
|
||||
# add
|
||||
mailbox_before = len(outbox)
|
||||
r = self.client.post(url, { 'prefix': "m-1",
|
||||
'm-1-id': "-1",
|
||||
'm-1-desc': "Test 3",
|
||||
|
@ -561,6 +562,8 @@ class MilestoneTests(TestCase):
|
|||
self.assertEqual(m.resolved, "")
|
||||
self.assertEqual(set(m.docs.values_list("name", flat=True)), set(docs))
|
||||
self.assertTrue("Added milestone" in m.milestonegroupevent_set.all()[0].desc)
|
||||
self.assertEqual(len(outbox),mailbox_before+2)
|
||||
self.assertFalse(any('Review Required' in x['Subject'] for x in outbox[-2:]))
|
||||
|
||||
def test_add_milestone_as_chair(self):
|
||||
m1, m2, group = self.create_test_milestones()
|
||||
|
@ -577,6 +580,7 @@ class MilestoneTests(TestCase):
|
|||
due = self.last_day_of_month(datetime.date.today() + datetime.timedelta(days=365))
|
||||
|
||||
# add
|
||||
mailbox_before = len(outbox)
|
||||
r = self.client.post(url, { 'prefix': "m-1",
|
||||
'm-1-id': -1,
|
||||
'm-1-desc': "Test 3",
|
||||
|
@ -593,6 +597,9 @@ class MilestoneTests(TestCase):
|
|||
self.assertEqual(m.state_id, "review")
|
||||
self.assertEqual(group.groupevent_set.count(), events_before + 1)
|
||||
self.assertTrue("for review" in m.milestonegroupevent_set.all()[0].desc)
|
||||
self.assertEqual(len(outbox),mailbox_before+1)
|
||||
self.assertTrue('Review Required' in outbox[-1]['Subject'])
|
||||
self.assertFalse(group.list_email in outbox[-1]['To'])
|
||||
|
||||
def test_accept_milestone(self):
|
||||
m1, m2, group = self.create_test_milestones()
|
||||
|
|
Loading…
Reference in a new issue