From cbc6d159a5dd314189c80ea51bf8c11fbba0a37b Mon Sep 17 00:00:00 2001 From: Jennifer Richards Date: Tue, 25 Oct 2022 10:03:18 -0300 Subject: [PATCH] fix: convert LastCallDocEvent.expires to DEADLINE_TZINFO to get date --- ietf/doc/expire.py | 8 +++++--- ietf/doc/lastcall.py | 3 +-- ietf/doc/models.py | 4 ++-- ietf/group/views.py | 2 +- ietf/review/utils.py | 4 ++-- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/ietf/doc/expire.py b/ietf/doc/expire.py index af48827cf..6d812adb4 100644 --- a/ietf/doc/expire.py +++ b/ietf/doc/expire.py @@ -86,7 +86,7 @@ def send_expire_warning_for_draft(doc): (doc.get_state_slug("draft") != "active")): return # don't warn about dead or inactive documents - expiration = doc.expires.date() + expiration = doc.expires.astimezone(DEADLINE_TZINFO).date() (to,cc) = gather_address_lists('doc_expires_soon',doc=doc) @@ -173,7 +173,7 @@ def expire_draft(doc): def clean_up_draft_files(): """Move unidentified and old files out of the Internet Draft directory.""" - cut_off = date_today() + cut_off = date_today(DEADLINE_TZINFO) pattern = os.path.join(settings.INTERNET_DRAFT_PATH, "draft-*.*") filename_re = re.compile(r'^(.*)-(\d\d)$') @@ -216,7 +216,9 @@ def clean_up_draft_files(): if state in ("rfc","repl"): move_file_to("") - elif state in ("expired", "auth-rm", "ietf-rm") and doc.expires and doc.expires.date() < cut_off: + elif (state in ("expired", "auth-rm", "ietf-rm") + and doc.expires + and doc.expires.astimezone(DEADLINE_TZINFO).date() < cut_off): move_file_to("") except Document.DoesNotExist: diff --git a/ietf/doc/lastcall.py b/ietf/doc/lastcall.py index 1c490c64c..463311587 100644 --- a/ietf/doc/lastcall.py +++ b/ietf/doc/lastcall.py @@ -33,11 +33,10 @@ def request_last_call(request, doc): e.save() def get_expired_last_calls(): - today = date_today(DEADLINE_TZINFO) for d in Document.objects.filter(Q(states__type="draft-iesg", states__slug="lc") | Q(states__type="statchg", states__slug="in-lc")): e = d.latest_event(LastCallDocEvent, type="sent_last_call") - if e and e.expires.date() <= today: + if e and e.expires.astimezone(DEADLINE_TZINFO).date() <= date_today(DEADLINE_TZINFO): yield d def expire_last_call(doc): diff --git a/ietf/doc/models.py b/ietf/doc/models.py index c6e06fecd..f758c3360 100644 --- a/ietf/doc/models.py +++ b/ietf/doc/models.py @@ -36,7 +36,7 @@ from ietf.utils.decorators import memoize from ietf.utils.validators import validate_no_control_chars from ietf.utils.mail import formataddr from ietf.utils.models import ForeignKey -from ietf.utils.timezone import date_today, RPC_TZINFO +from ietf.utils.timezone import date_today, RPC_TZINFO, DEADLINE_TZINFO if TYPE_CHECKING: # importing other than for type checking causes errors due to cyclic imports from ietf.meeting.models import ProceedingsMaterial, Session @@ -351,7 +351,7 @@ class DocumentInfo(models.Model): elif iesg_state.slug == "lc": e = self.latest_event(LastCallDocEvent, type="sent_last_call") if e: - return iesg_state_summary + " (ends %s)" % e.expires.date().isoformat() + return iesg_state_summary + " (ends %s)" % e.expires.astimezone(DEADLINE_TZINFO).date().isoformat() return iesg_state_summary else: diff --git a/ietf/group/views.py b/ietf/group/views.py index 4bc31d09f..9f4302823 100644 --- a/ietf/group/views.py +++ b/ietf/group/views.py @@ -1690,7 +1690,7 @@ def email_open_review_assignments(request, acronym, group_type=None): r.section = 'Last calls:' r.section_order='1' e = r.review_request.doc.latest_event(LastCallDocEvent, type="sent_last_call") - r.lastcall_ends = e and e.expires.date().isoformat() + r.lastcall_ends = e and e.expires.astimezone(DEADLINE_TZINFO).date().isoformat() r.earlier_review = ReviewAssignment.objects.filter(review_request__doc=r.review_request.doc,reviewer__in=r.reviewer.person.email_set.all(),state="completed") if r.earlier_review: earlier_reviews_formatted = ['-{} {} reviewed'.format(ra.reviewed_rev, ra.review_request.type.slug) for ra in r.earlier_review] diff --git a/ietf/review/utils.py b/ietf/review/utils.py index 15312dd93..1227aee2f 100644 --- a/ietf/review/utils.py +++ b/ietf/review/utils.py @@ -502,7 +502,7 @@ def suggested_review_requests_for_team(team): requests = {} - now = timezone.now() + now = timezone.now().astimezone(DEADLINE_TZINFO) reviewable_docs_qs = Document.objects.filter(type="draft").exclude(stream="ise") @@ -518,7 +518,7 @@ def suggested_review_requests_for_team(team): for doc in last_call_docs: e = last_call_expiry_events[doc.pk] if doc.pk in last_call_expiry_events else LastCallDocEvent(expires=now, time=now) - deadline = e.expires.date() + deadline = e.expires.astimezone(DEADLINE_TZINFO).date() if deadline > seen_deadlines.get(doc.pk, datetime.date.max) or deadline < now.date(): continue