Skip to content

Commit 95161df

Browse files
committed
Merged in [15679] from mahoney@nostrum.com:
Verb tense used in Ballot Issued emails now matches whether the LC end date is in the past or future. Fixes issue ietf-tools#2482. - Legacy-Id: 15685 Note: SVN reference [15679] has been migrated to Git commit 194d8c8
2 parents b586b81 + 194d8c8 commit 95161df

3 files changed

Lines changed: 41 additions & 22 deletions

File tree

ietf/doc/mails.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,11 +363,13 @@ def generate_issue_ballot_mail(request, doc, ballot):
363363

364364
e = doc.latest_event(LastCallDocEvent, type="sent_last_call")
365365
last_call_expires = e.expires if e else None
366+
last_call_has_expired = last_call_expires and last_call_expires < datetime.datetime.now()
366367

367368
return render_to_string("doc/mail/issue_ballot_mail.txt",
368369
dict(doc=doc,
369370
doc_url=settings.IDTRACKER_BASE_URL + doc.get_absolute_url(),
370371
last_call_expires=last_call_expires,
372+
last_call_has_expired=last_call_has_expired,
371373
needed_ballot_positions=
372374
needed_ballot_positions(doc,
373375
doc.active_ballot().active_ad_positions().values()

ietf/doc/tests_ballot.py

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -413,26 +413,44 @@ def test_edit_ballot_rfceditornote(self):
413413

414414
def test_issue_ballot(self):
415415
ad = Person.objects.get(user__username="ad")
416-
draft = IndividualDraftFactory(ad=ad)
417-
url = urlreverse('ietf.doc.views_ballot.ballot_writeupnotes', kwargs=dict(name=draft.name))
418-
login_testing_unauthorized(self, "ad", url)
419-
420-
421-
empty_outbox()
422-
423-
r = self.client.post(url, dict(
424-
ballot_writeup="This is a test.",
425-
issue_ballot="1"))
426-
self.assertEqual(r.status_code, 200)
427-
draft = Document.objects.get(name=draft.name)
416+
for case in ('none','past','future'):
417+
draft = IndividualDraftFactory(ad=ad)
418+
if case in ('past','future'):
419+
LastCallDocEvent.objects.create(
420+
by=Person.objects.get(name='(System)'),
421+
type='sent_last_call',
422+
doc=draft,
423+
rev=draft.rev,
424+
desc='issued last call',
425+
expires = datetime.datetime.now()+datetime.timedelta(days = 1 if case=='future' else -1)
426+
)
427+
url = urlreverse('ietf.doc.views_ballot.ballot_writeupnotes', kwargs=dict(name=draft.name))
428+
login_testing_unauthorized(self, "ad", url)
429+
430+
431+
empty_outbox()
432+
433+
r = self.client.post(url, dict(
434+
ballot_writeup="This is a test.",
435+
issue_ballot="1"))
436+
self.assertEqual(r.status_code, 200)
437+
draft = Document.objects.get(name=draft.name)
438+
439+
self.assertTrue(draft.latest_event(type="sent_ballot_announcement"))
440+
self.assertEqual(len(outbox), 2)
441+
self.assertTrue('Ballot issued:' in outbox[-2]['Subject'])
442+
self.assertTrue('iesg@' in outbox[-2]['To'])
443+
self.assertTrue('Ballot issued:' in outbox[-1]['Subject'])
444+
self.assertTrue('drafts-eval@' in outbox[-1]['To'])
445+
self.assertTrue('X-IETF-Draft-string' in outbox[-1])
446+
if case=='none':
447+
self.assertNotIn('call expire', outbox[-1].get_payload(decode=True).decode("utf-8"))
448+
elif case=='past':
449+
self.assertIn('call expired', outbox[-1].get_payload(decode=True).decode("utf-8"))
450+
else:
451+
self.assertIn('call expires', outbox[-1].get_payload(decode=True).decode("utf-8"))
452+
self.client.logout()
428453

429-
self.assertTrue(draft.latest_event(type="sent_ballot_announcement"))
430-
self.assertEqual(len(outbox), 2)
431-
self.assertTrue('Ballot issued:' in outbox[-2]['Subject'])
432-
self.assertTrue('iesg@' in outbox[-2]['To'])
433-
self.assertTrue('Ballot issued:' in outbox[-1]['Subject'])
434-
self.assertTrue('drafts-eval@' in outbox[-1]['To'])
435-
self.assertTrue('X-IETF-Draft-string' in outbox[-1])
436454

437455
def test_edit_approval_text(self):
438456
ad = Person.objects.get(user__username="ad")

ietf/templates/doc/mail/issue_ballot_mail.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@ Subject: Ballot issued: {{ doc.file_tag }} to {{ doc|std_level_prompt }}
44

55
{% filter wordwrap:78 %}Evaluation for {{ doc.file_tag }} can be found at {{ doc_url }}
66

7-
{% if last_call_expires %}Last call to expire on: {{ last_call_expires }}
8-
9-
{% endif %}{% endfilter %}
7+
{% if last_call_expires %}Last call expire{% if last_call_has_expired %}d{% else %}s{% endif %} on: {{ last_call_expires }}{% endif %}
8+
{% endfilter %}
109
{% filter wordwrap:78 %}{{ needed_ballot_positions }}{% endfilter %}
1110

1211
{% endautoescape%}

0 commit comments

Comments
 (0)