diff --git a/ietf/doc/forms.py b/ietf/doc/forms.py index f776b80b3..cb9476d2d 100644 --- a/ietf/doc/forms.py +++ b/ietf/doc/forms.py @@ -28,6 +28,8 @@ class TelechatForm(forms.Form): for d in dates: self.page_count[d] = telechat_page_count(d).for_approval choice_display[d] = '%s (%s pages)' % (d.strftime("%Y-%m-%d"),self.page_count[d]) + if d-datetime.date.today() < datetime.timedelta(days=13): + choice_display[d] += ' : WARNING - this may not leave enough time for directorate reviews!' self.fields['telechat_date'].choices = [("", "(not on agenda)")] + [(d, choice_display[d]) for d in dates] from ietf.person.models import Person diff --git a/ietf/doc/tests_draft.py b/ietf/doc/tests_draft.py index 780b6947b..12f4bc11c 100644 --- a/ietf/doc/tests_draft.py +++ b/ietf/doc/tests_draft.py @@ -356,6 +356,16 @@ class EditInfoTests(TestCase): self.assertEqual(len(outbox),mailbox_before+1) self.assertTrue("Telechat update" in outbox[-1]['Subject']) + # Put it on an agenda that's very soon from now + next_week = datetime.date.today()+datetime.timedelta(days=7) + td = TelechatDate.objects.active()[0] + td.date = next_week + td.save() + data["telechat_date"] = next_week.isoformat() + r = self.client.post(url,data) + self.assertEqual(r.status_code, 302) + self.assertTrue("may not leave enough time" in outbox[-1].get_payload()) + def test_start_iesg_process_on_draft(self): make_test_data() diff --git a/ietf/doc/utils.py b/ietf/doc/utils.py index 3675fd50c..819d32ccd 100644 --- a/ietf/doc/utils.py +++ b/ietf/doc/utils.py @@ -489,8 +489,14 @@ def update_telechat(request, doc, by, new_telechat_date, new_returning_item=None e.save() + has_short_fuse = doc.type_id=='draft' and new_telechat_date and (( new_telechat_date - datetime.date.today() ) < datetime.timedelta(days=13)) + from ietf.doc.mails import email_update_telechat - email_update_telechat(request, doc, e.desc) + + if has_short_fuse: + email_update_telechat(request, doc, e.desc+"\n\nWARNING: This may not leave enough time for directorate reviews!\n") + else: + email_update_telechat(request, doc, e.desc) return e diff --git a/ietf/secr/telechat/tests.py b/ietf/secr/telechat/tests.py index 5a85445d2..d7925821f 100644 --- a/ietf/secr/telechat/tests.py +++ b/ietf/secr/telechat/tests.py @@ -42,7 +42,7 @@ class SecrTelechatTestCase(TestCase): d = get_next_telechat_date() date = d.strftime('%Y-%m-%d') by=Person.objects.get(name="(System)") - update_telechat(None, draft, by, date) + update_telechat(None, draft, by, d) url = reverse('ietf.secr.telechat.views.doc_detail', kwargs={'date':date, 'name':draft.name}) self.client.login(username="secretary", password="secretary+password") response = self.client.get(url) @@ -76,7 +76,7 @@ class SecrTelechatTestCase(TestCase): time=last_week) d = get_next_telechat_date() date = d.strftime('%Y-%m-%d') - update_telechat(None, charter, by, date) + update_telechat(None, charter, by, d) url = reverse('ietf.secr.telechat.views.doc_detail', kwargs={'date':date, 'name':charter.name}) self.client.login(username="secretary", password="secretary+password") response = self.client.get(url)