1.1 --- a/imiptools/data.py Fri Oct 02 01:20:08 2015 +0200
1.2 +++ b/imiptools/data.py Sat Oct 03 01:03:35 2015 +0200
1.3 @@ -186,6 +186,16 @@
1.4
1.5 # Computed results.
1.6
1.7 + def get_main_period(self, tzid):
1.8 +
1.9 + """
1.10 + Return a period object corresponding to the main start-end period for
1.11 + the object.
1.12 + """
1.13 +
1.14 + (dtstart, dtstart_attr), (dtend, dtend_attr) = self.get_main_period_items(tzid)
1.15 + return RecurringPeriod(dtstart, dtend, tzid, "DTSTART", dtstart_attr, dtend_attr)
1.16 +
1.17 def get_main_period_items(self, tzid):
1.18
1.19 """
1.20 @@ -823,7 +833,13 @@
1.21
1.22 # Use localised datetimes.
1.23
1.24 - (dtstart, dtstart_attr), (dtend, dtend_attr) = obj.get_main_period_items(tzid)
1.25 + main_period = obj.get_main_period(tzid)
1.26 +
1.27 + dtstart = main_period.get_start()
1.28 + dtstart_attr = main_period.get_start_attr()
1.29 + dtend = main_period.get_end()
1.30 + dtend_attr = main_period.get_end_attr()
1.31 +
1.32 duration = dtend - dtstart
1.33
1.34 # Attempt to get time zone details from the object, using the supplied zone
1.35 @@ -832,7 +848,7 @@
1.36 obj_tzid = obj.get_tzid()
1.37
1.38 if not rrule:
1.39 - periods = [RecurringPeriod(dtstart, dtend, tzid, "DTSTART", dtstart_attr, dtend_attr)]
1.40 + periods = [main_period]
1.41
1.42 elif end or parameters and parameters.has_key("UNTIL") or parameters.has_key("COUNT"):
1.43