# HG changeset patch # User Paul Boddie # Date 1445271590 -7200 # Node ID 6653300fb8e6c8ab3ea3cc05e3deb20e12db255e # Parent 1c91c04bcfcb8cbe015b017edd421fa974acc9fe Prevent RDATE duplication of the main period in events. Added the option of getting the main period without a fallback time zone. diff -r 1c91c04bcfcb -r 6653300fb8e6 imiptools/data.py --- a/imiptools/data.py Mon Oct 19 14:52:02 2015 +0200 +++ b/imiptools/data.py Mon Oct 19 18:19:50 2015 +0200 @@ -190,17 +190,18 @@ # Computed results. - def get_main_period(self, tzid): + def get_main_period(self, tzid=None): """ Return a period object corresponding to the main start-end period for the object. """ - (dtstart, dtstart_attr), (dtend, dtend_attr) = self.get_main_period_items(tzid) + (dtstart, dtstart_attr), (dtend, dtend_attr) = self.get_main_period_items() + tzid = tzid or get_tzid(dtstart_attr, dtend_attr) return RecurringPeriod(dtstart, dtend, tzid, "DTSTART", dtstart_attr, dtend_attr) - def get_main_period_items(self, tzid): + def get_main_period_items(self): """ Return two (value, attributes) items corresponding to the main start-end @@ -417,7 +418,7 @@ main_changed = False for p in periods: - if p.origin == "RDATE": + if p.origin == "RDATE" and p != self.get_main_period(): new_rdates.append(get_period_item(p.get_start(), p.get_end())) elif p.origin == "DTSTART": main_changed = self.set_period(p) diff -r 1c91c04bcfcb -r 6653300fb8e6 imipweb/event.py --- a/imipweb/event.py Mon Oct 19 14:52:02 2015 +0200 +++ b/imipweb/event.py Mon Oct 19 18:19:50 2015 +0200 @@ -105,7 +105,7 @@ "Return the main event period for the current object." - (dtstart, dtstart_attr), (dtend, dtend_attr) = self.obj.get_main_period_items(self.get_tzid()) + (dtstart, dtstart_attr), (dtend, dtend_attr) = self.obj.get_main_period_items() return EventPeriod(dtstart, dtend, self.get_tzid(), None, dtstart_attr, dtend_attr) def get_stored_recurrences(self):