From 47082fe4c5a81ec1c2ec8924278cba0e8c940aa0 Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Sun, 1 Aug 2021 17:50:35 +0000 Subject: [PATCH] Allow submit and expire_drafts to succeed when there is no "next" IETF meeting in the database. Fixes #3370. Commit ready for merge. - Legacy-Id: 19269 --- ietf/doc/expire.py | 3 +++ ietf/doc/tests_draft.py | 3 +++ ietf/submit/forms.py | 2 ++ ietf/submit/tests.py | 4 ++++ 4 files changed, 12 insertions(+) diff --git a/ietf/doc/expire.py b/ietf/doc/expire.py index 19ddf775e..3d4839652 100644 --- a/ietf/doc/expire.py +++ b/ietf/doc/expire.py @@ -80,6 +80,9 @@ def in_draft_expire_freeze(when=None): meeting = Meeting.objects.filter(type='ietf', date__gte=when-datetime.timedelta(days=7)).order_by('date').first() + if not meeting: + return False + d = meeting.get_second_cut_off() # for some reason, the old Perl code started at 9 am second_cut_off = datetime.datetime.combine(d, datetime.time(9, 0)) diff --git a/ietf/doc/tests_draft.py b/ietf/doc/tests_draft.py index 67b25f94c..35f69bf7b 100644 --- a/ietf/doc/tests_draft.py +++ b/ietf/doc/tests_draft.py @@ -645,6 +645,9 @@ class ExpireIDsTests(DraftFileMixin, TestCase): def test_in_draft_expire_freeze(self): from ietf.doc.expire import in_draft_expire_freeze + # If there is no "next" meeting, we musn't be in a freeze + self.assertTrue(not in_draft_expire_freeze()) + meeting = Meeting.objects.create(number="123", type=MeetingTypeName.objects.get(slug="ietf"), date=datetime.date.today()) diff --git a/ietf/submit/forms.py b/ietf/submit/forms.py index ea93557c1..12eadeb34 100644 --- a/ietf/submit/forms.py +++ b/ietf/submit/forms.py @@ -78,6 +78,8 @@ class SubmissionBaseUploadForm(forms.Form): def set_cutoff_warnings(self): now = datetime.datetime.now(pytz.utc) meeting = Meeting.get_current_meeting() + if not meeting: + return # cutoff_00 = meeting.get_00_cutoff() cutoff_01 = meeting.get_01_cutoff() diff --git a/ietf/submit/tests.py b/ietf/submit/tests.py index 582871f9b..7764b2726 100644 --- a/ietf/submit/tests.py +++ b/ietf/submit/tests.py @@ -859,6 +859,10 @@ class SubmitTests(TestCase): def test_submit_new_individual_xml(self): self.submit_new_individual(["xml"]) + def test_submit_new_individual_xml_no_next_meeting(self): + Meeting.objects.all().delete() + self.submit_new_individual(["xml"]) + def test_submit_new_individual_txt_xml(self): self.submit_new_individual(["txt", "xml"])