1.1 --- a/imiptools/period.py Fri Sep 15 00:03:38 2017 +0200
1.2 +++ b/imiptools/period.py Mon Sep 18 20:34:43 2017 +0200
1.3 @@ -22,7 +22,7 @@
1.4 from bisect import bisect_left, insort_left
1.5 from datetime import date, datetime, timedelta
1.6 from imiptools.dates import check_permitted_values, correct_datetime, \
1.7 - get_datetime, \
1.8 + format_datetime, get_datetime, \
1.9 get_datetime_attributes, \
1.10 get_recurrence_start, get_recurrence_start_point, \
1.11 get_start_of_day, \
1.12 @@ -301,6 +301,18 @@
1.13
1.14 return None
1.15
1.16 + def get_recurrenceid(self):
1.17 +
1.18 + "Return a recurrence identifier to identify this period."
1.19 +
1.20 + return format_datetime(to_utc_datetime(self.get_start()))
1.21 +
1.22 + def get_recurrenceid_item(self):
1.23 +
1.24 + "Return datetime plus attributes for a recurrence identifier."
1.25 +
1.26 + return self.get_start(), get_datetime_attributes(self.get_start())
1.27 +
1.28 # Value correction methods.
1.29
1.30 def with_duration(self, duration):
1.31 @@ -360,13 +372,13 @@
1.32 def __init__(self, start, end, tzid=None, origin=None, start_attr=None, end_attr=None):
1.33 Period.__init__(self, start, end, tzid, origin)
1.34 self.start_attr = start_attr
1.35 - self.end_attr = end_attr
1.36 + self.end_attr = end_attr or start_attr
1.37
1.38 def get_start_attr(self):
1.39 - return self.start_attr
1.40 + return self.start_attr or {}
1.41
1.42 def get_end_attr(self):
1.43 - return self.end_attr
1.44 + return self.end_attr or {}
1.45
1.46 def as_tuple(self):
1.47 return self.start, self.end, self.tzid, self.origin, self.start_attr, self.end_attr