1.1 --- a/imiptools/handlers/common.py Tue Oct 27 00:26:59 2015 +0100
1.2 +++ b/imiptools/handlers/common.py Tue Oct 27 17:17:46 2015 +0100
1.3 @@ -22,12 +22,46 @@
1.4 from imiptools.data import get_address, get_uri, make_freebusy, to_part, \
1.5 uri_dict
1.6 from imiptools.dates import format_datetime
1.7 -from imiptools.period import Period
1.8 +from imiptools.period import FreeBusyPeriod, Period, replace_overlapping
1.9
1.10 class CommonFreebusy:
1.11
1.12 "Common free/busy mix-in."
1.13
1.14 + def _record_freebusy(self, from_organiser=True):
1.15 +
1.16 + """
1.17 + Record free/busy information for a message originating from an organiser
1.18 + if 'from_organiser' is set to a true value.
1.19 + """
1.20 +
1.21 + if from_organiser:
1.22 + organiser_item = self.require_organiser(from_organiser)
1.23 + if not organiser_item:
1.24 + return
1.25 +
1.26 + senders = [organiser_item]
1.27 + else:
1.28 + oa = self.require_organiser_and_attendees(from_organiser)
1.29 + if not oa:
1.30 + return
1.31 +
1.32 + organiser_item, attendees = oa
1.33 + senders = attendees.items()
1.34 +
1.35 + if not senders:
1.36 + return
1.37 +
1.38 + freebusy = [FreeBusyPeriod(p.get_start_point(), p.get_end_point()) for p in self.obj.get_period_values("FREEBUSY")]
1.39 + dtstart = self.obj.get_datetime("DTSTART")
1.40 + dtend = self.obj.get_datetime("DTEND")
1.41 + period = Period(dtstart, dtend, self.get_tzid())
1.42 +
1.43 + for sender, sender_attr in senders:
1.44 + stored_freebusy = self.store.get_freebusy_for_other(self.user, sender)
1.45 + replace_overlapping(stored_freebusy, period, freebusy)
1.46 + self.store.set_freebusy_for_other(self.user, stored_freebusy, sender)
1.47 +
1.48 def request(self):
1.49
1.50 """