1.1 --- a/imiptools/data.py Sun Mar 22 21:38:04 2015 +0100
1.2 +++ b/imiptools/data.py Sun Mar 22 22:04:50 2015 +0100
1.3 @@ -110,6 +110,11 @@
1.4 periods = self.get_periods(tzid, end)
1.5 return get_periods_for_freebusy(self, periods, tzid)
1.6
1.7 + def get_tzid(self):
1.8 + dtstart, dtstart_attr = self.get_datetime_item("DTSTART")
1.9 + dtend, dtend_attr = self.get_datetime_item("DTEND")
1.10 + return get_tzid(dtstart_attr, dtend_attr)
1.11 +
1.12 # Construction and serialisation.
1.13
1.14 def make_calendar(nodes, method=None):
1.15 @@ -359,6 +364,9 @@
1.16 def get_window_end(tzid, window_size=100):
1.17 return to_timezone(datetime.now(), tzid) + timedelta(window_size)
1.18
1.19 +def get_tzid(dtstart_attr, dtend_attr):
1.20 + return dtstart_attr.get("TZID") or dtend_attr.get("TZID")
1.21 +
1.22 def get_periods(obj, tzid, window_end, inclusive=False):
1.23
1.24 """
1.25 @@ -383,7 +391,7 @@
1.26 else:
1.27 dtend, dtend_attr = dtstart, dtstart_attr
1.28
1.29 - tzid = dtstart_attr.get("TZID") or dtend_attr.get("TZID") or tzid
1.30 + tzid = get_tzid(dtstart_attr, dtend_attr) or tzid
1.31
1.32 if not rrule:
1.33 periods = [(dtstart, dtend)]
1.34 @@ -449,7 +457,7 @@
1.35 else:
1.36 end, end_attr = start, start_attr
1.37
1.38 - tzid = start_attr.get("TZID") or end_attr.get("TZID") or tzid
1.39 + tzid = get_tzid(start_attr, end_attr) or tzid
1.40
1.41 l = []
1.42