Skip to content

Commit 2eb5723

Browse files
fix: more timezone fixes
1 parent 981f22a commit 2eb5723

9 files changed

Lines changed: 32 additions & 19 deletions

File tree

ietf/iesg/agenda.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,14 @@
1717
from ietf.doc.utils_search import fill_in_telechat_date
1818
from ietf.iesg.models import TelechatDate, TelechatAgendaItem
1919
from ietf.review.utils import review_assignments_to_list_for_docs
20+
from ietf.utils.timezone import date_today
2021

2122
def get_agenda_date(date=None):
2223
if not date:
2324
try:
2425
return TelechatDate.objects.active().order_by('date')[0].date
2526
except IndexError:
26-
return datetime.date.today()
27+
return date_today()
2728
else:
2829
try:
2930
return TelechatDate.objects.active().get(date=datetime.datetime.strptime(date, "%Y-%m-%d").date()).date

ietf/iesg/feeds.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22
# -*- coding: utf-8 -*-
33

44

5-
import datetime
6-
5+
from django.conf import settings
76
from django.contrib.syndication.views import Feed
87
from django.utils.feedgenerator import Atom1Feed
98

109
from ietf.doc.models import Document, TelechatDocEvent
10+
from ietf.utils.timezone import date_today
11+
1112

1213
class IESGAgendaFeed(Feed):
1314
title = "Documents on Future IESG Telechat Agendas"
@@ -16,7 +17,7 @@ class IESGAgendaFeed(Feed):
1617
description_template = "iesg/feed_item_description.html"
1718

1819
def items(self):
19-
docs = Document.objects.filter(docevent__telechatdocevent__telechat_date__gte=datetime.date.today()).distinct()
20+
docs = Document.objects.filter(docevent__telechatdocevent__telechat_date__gte=date_today(settings.TIME_ZONE)).distinct()
2021
for d in docs:
2122
d.latest_telechat_event = d.latest_event(TelechatDocEvent, type="scheduled_for_telechat")
2223
docs = [d for d in docs if d.latest_telechat_event.telechat_date]

ietf/iesg/models.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,12 @@
3636

3737
import datetime
3838

39+
from django.conf import settings
3940
from django.db import models
4041

42+
from ietf.utils.timezone import date_today
43+
44+
4145
class TelechatAgendaItem(models.Model):
4246
TYPE_CHOICES = (
4347
(1, "Any Other Business (WG News, New Proposals, etc.)"),
@@ -72,11 +76,11 @@ def next_telechat_date():
7276
dates = TelechatDate.objects.order_by("-date")
7377
if dates:
7478
return dates[0].date + datetime.timedelta(days=14)
75-
return datetime.date.today()
79+
return date_today(settings.TIME_ZONE)
7680

7781
class TelechatDateManager(models.Manager):
7882
def active(self):
79-
return self.get_queryset().filter(date__gte=datetime.date.today())
83+
return self.get_queryset().filter(date__gte=date_today(settings.TIME_ZONE))
8084

8185
class TelechatDate(models.Model):
8286
objects = TelechatDateManager()

ietf/iesg/tests.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
from ietf.person.models import Person
2929
from ietf.utils.test_utils import TestCase, login_testing_unauthorized, unicontent
3030
from ietf.iesg.factories import IESGMgmtItemFactory
31+
from ietf.utils.timezone import date_today, DEADLINE_TZINFO
3132

3233

3334
class IESGTests(TestCase):
@@ -58,7 +59,7 @@ def test_milestones_needing_review(self):
5859
m = GroupMilestone.objects.create(group=draft.group,
5960
state_id="review",
6061
desc="Test milestone",
61-
due=datetime.date.today())
62+
due=date_today(DEADLINE_TZINFO))
6263

6364
url = urlreverse("ietf.iesg.views.milestones_needing_review")
6465
login_testing_unauthorized(self, "ad", url)
@@ -142,7 +143,7 @@ def test_fill_in_agenda_docs(self):
142143
mgmtitem = self.mgmt_items
143144

144145
# put on agenda
145-
date = datetime.date.today() + datetime.timedelta(days=50)
146+
date = date_today(settings.TIME_ZONE) + datetime.timedelta(days=50)
146147
TelechatDate.objects.create(date=date)
147148
telechat_event = TelechatDocEvent.objects.create(
148149
type="scheduled_for_telechat",
@@ -430,7 +431,7 @@ def test_past_documents(self):
430431
self.assertNotIn(d.title, unicontent(r))
431432
# Add the documents to a past telechat
432433
by = Person.objects.get(name="Areað Irector")
433-
date = datetime.date.today() - datetime.timedelta(days=14)
434+
date = date_today(settings.TIME_ZONE) - datetime.timedelta(days=14)
434435
approved = State.objects.get(type='draft-iesg', slug='approved')
435436
iesg_eval = State.objects.get(type='draft-iesg', slug='iesg-eva')
436437
for d in list(self.telechat_docs.values()):
@@ -485,7 +486,7 @@ def test_agenda_telechat_docs(self):
485486

486487
def test_admin_change(self):
487488
draft = Document.objects.get(name="draft-ietf-mars-test")
488-
today = datetime.date.today()
489+
today = date_today(settings.TIME_ZONE)
489490
telechat_date = TelechatDate.objects.get(date=draft.telechat_date())
490491
url = urlreverse('admin:iesg_telechatdate_change', args=(telechat_date.id,))
491492
self.client.login(username="secretary", password="secretary+password")

ietf/ietfauth/tests.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@
4646
from ietf.utils.decorators import skip_coverage
4747
from ietf.utils.mail import outbox, empty_outbox, get_payload_text
4848
from ietf.utils.test_utils import TestCase, login_testing_unauthorized
49+
from ietf.utils.timezone import date_today
50+
4951

5052
import ietf.ietfauth.views
5153

@@ -506,7 +508,7 @@ def test_review_overview(self):
506508
UnavailablePeriod.objects.create(
507509
team=review_req.team,
508510
person=reviewer,
509-
start_date=datetime.date.today() - datetime.timedelta(days=10),
511+
start_date=date_today() - datetime.timedelta(days=10),
510512
availability="unavailable",
511513
)
512514

@@ -789,7 +791,7 @@ def test_send_apikey_report(self):
789791
for i in range(count):
790792
for key in person.apikeys.all():
791793
self.client.post(key.endpoint, {'apikey':key.hash(), 'dummy': 'dummy', })
792-
date = str(datetime.date.today())
794+
date = str(date_today())
793795

794796
empty_outbox()
795797
cmd = Command()
@@ -906,7 +908,7 @@ def test_oidc_code_auth(self):
906908
# an additional email
907909
EmailFactory(person=person)
908910
email_list = person.email_set.all().values_list('address', flat=True)
909-
meeting = MeetingFactory(type_id='ietf', date=datetime.date.today())
911+
meeting = MeetingFactory(type_id='ietf', date=date_today())
910912
MeetingRegistration.objects.create(
911913
meeting=meeting, person=None, first_name=person.first_name(), last_name=person.last_name(),
912914
email=email_list[0], ticket_type='full_week', reg_type='remote', affiliation='Some Company',

ietf/ietfauth/utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from django.db.models import Q
1919
from django.http import HttpResponseRedirect
2020
from django.shortcuts import get_object_or_404
21+
from django.utils import timezone
2122
from django.utils.decorators import available_attrs
2223
from django.utils.http import urlquote
2324

@@ -282,8 +283,7 @@ def scope_registration(self):
282283
info = {}
283284
if regs:
284285
# maybe register attendance if logged in to follow a meeting
285-
today = datetime.date.today()
286-
if meeting.date <= today <= meeting.end_date():
286+
if meeting.start_datetime() <= timezone.now() <= meeting.end_datetime():
287287
client = ClientRecord.objects.get(client_id=self.client.client_id)
288288
if client.name == 'Meetecho':
289289
for reg in regs:

ietf/ipr/tests.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
from ietf.utils.mail import outbox, empty_outbox, get_payload_text
2929
from ietf.utils.test_utils import TestCase, login_testing_unauthorized
3030
from ietf.utils.text import text_to_dict
31+
from ietf.utils.timezone import date_today
3132

3233

3334
def make_data_from_content(content):
@@ -573,7 +574,7 @@ def test_notify(self):
573574
self.assertEqual(r.status_code,302)
574575
self.assertEqual(len(outbox),len_before+2)
575576
self.assertTrue('george@acme.com' in outbox[len_before]['To'])
576-
self.assertIn('posted on '+datetime.date.today().strftime("%Y-%m-%d"), get_payload_text(outbox[len_before]).replace('\n',' '))
577+
self.assertIn('posted on '+date_today().strftime("%Y-%m-%d"), get_payload_text(outbox[len_before]).replace('\n',' '))
577578
self.assertTrue('draft-ietf-mars-test@ietf.org' in outbox[len_before+1]['To'])
578579
self.assertTrue('mars-wg@ietf.org' in outbox[len_before+1]['Cc'])
579580
self.assertIn('Secretariat on '+ipr.get_latest_event_submitted().time.strftime("%Y-%m-%d"), get_payload_text(outbox[len_before+1]).replace('\n',' '))
@@ -601,7 +602,7 @@ def send_ipr_email_helper(self):
601602
ipr = HolderIprDisclosureFactory()
602603
url = urlreverse('ietf.ipr.views.email',kwargs={ "id": ipr.id })
603604
self.client.login(username="secretary", password="secretary+password")
604-
yesterday = datetime.date.today() - datetime.timedelta(1)
605+
yesterday = date_today() - datetime.timedelta(1)
605606
data = dict(
606607
to='joe@test.com',
607608
frm='ietf-ipr@ietf.org',

ietf/liaisons/mails.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
from ietf.utils.mail import send_mail_text
1111
from ietf.group.models import Role
1212
from ietf.mailtrigger.utils import gather_address_lists
13+
from ietf.utils.timezone import date_today, DEADLINE_TZINFO
14+
1315

1416
def send_liaison_by_email(request, liaison):
1517
subject = 'New Liaison Statement, "%s"' % (liaison.title)
@@ -61,7 +63,7 @@ def possibly_send_deadline_reminder(liaison):
6163
0: 'today'
6264
}
6365

64-
days_to_go = (liaison.deadline - datetime.date.today()).days
66+
days_to_go = (liaison.deadline - date_today(DEADLINE_TZINFO)).days
6567
if not (days_to_go < 0 or days_to_go in list(PREVIOUS_DAYS.keys())):
6668
return None # no reminder
6769

ietf/liaisons/management/commands/check_liaison_deadlines.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@
88

99
from ietf.liaisons.models import LiaisonStatement
1010
from ietf.liaisons.mails import possibly_send_deadline_reminder
11+
from ietf.utils.timezone import date_today, DEADLINE_TZINFO
1112

1213

1314
class Command(BaseCommand):
1415
help = ("Check liaison deadlines and send a reminder if we are close to a deadline")
1516

1617
def handle(self, *args, **options):
17-
today = datetime.date.today()
18+
today = date_today(DEADLINE_TZINFO)
1819
cutoff = today - datetime.timedelta(14)
1920

2021
msgs = []

0 commit comments

Comments
 (0)