Skip to content

Commit f85881d

Browse files
committed
Make agenda views with timezone information work also for earlier meetings without timezone data set.
- Legacy-Id: 5568
1 parent 3a76862 commit f85881d

2 files changed

Lines changed: 23 additions & 8 deletions

File tree

ietf/meeting/admin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ class RoomInline(admin.TabularInline):
66
model = Room
77

88
class MeetingAdmin(admin.ModelAdmin):
9-
list_display = ["number", "type", "date", "location"]
9+
list_display = ["number", "type", "date", "location", "time_zone"]
1010
list_filter = ["type"]
1111
search_fields = ["number"]
1212
ordering = ["-date"]

ietf/meeting/models.py

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,10 @@ def __unicode__(self):
4747
def time_zone_offset(self):
4848
# Look at the time of 8 o'clock sunday, rather than 0h sunday, to get
4949
# the right time after a possible summer/winter time change.
50-
return pytz.timezone(self.time_zone).localize(datetime.datetime.combine(self.date, datetime.time(8, 0))).strftime("%z")
50+
if self.time_zone:
51+
return pytz.timezone(self.time_zone).localize(datetime.datetime.combine(self.date, datetime.time(8, 0))).strftime("%z")
52+
else:
53+
return ""
5154

5255
def get_meeting_date (self,offset):
5356
return self.date + datetime.timedelta(days=offset)
@@ -126,15 +129,27 @@ def get_location(self):
126129
return location
127130
@property
128131
def tz(self):
129-
return pytz.timezone(self.meeting.time_zone)
132+
if self.meeting.time_zone:
133+
return pytz.timezone(self.meeting.time_zone)
134+
else:
135+
return None
130136
def tzname(self):
131-
return self.tz.tzname(self.time)
137+
if self.tz:
138+
return self.tz.tzname(self.time)
139+
else:
140+
return ""
132141
def utc_start_time(self):
133-
local_start_time = self.tz.localize(self.time)
134-
return local_start_time.astimezone(pytz.utc)
142+
if self.tz:
143+
local_start_time = self.tz.localize(self.time)
144+
return local_start_time.astimezone(pytz.utc)
145+
else:
146+
return None
135147
def utc_end_time(self):
136-
local_end_time = self.tz.localize(self.end_time())
137-
return local_end_time.astimezone(pytz.utc)
148+
if self.tz:
149+
local_end_time = self.tz.localize(self.end_time())
150+
return local_end_time.astimezone(pytz.utc)
151+
else:
152+
return None
138153

139154
class Constraint(models.Model):
140155
"""Specifies a constraint on the scheduling between source and

0 commit comments

Comments
 (0)