1.1 --- a/imip_manager.py Sun Feb 01 19:57:44 2015 +0100
1.2 +++ b/imip_manager.py Sun Feb 01 19:59:29 2015 +0100
1.3 @@ -31,9 +31,10 @@
1.4 sys.path.append(LIBRARY_PATH)
1.5
1.6 from imiptools.content import Handler
1.7 -from imiptools.data import get_address, get_uri, parse_object, Object
1.8 +from imiptools.data import get_address, get_uri, parse_object, Object, to_part
1.9 from imiptools.dates import format_datetime, get_datetime, get_start_of_day, \
1.10 get_end_of_day, ends_on_same_day, to_timezone
1.11 +from imiptools.handlers.common import SupportFreebusy
1.12 from imiptools.mail import Messenger
1.13 from imiptools.period import add_day_start_points, add_slots, convert_periods, \
1.14 get_freebusy_details, \
1.15 @@ -105,7 +106,7 @@
1.16 path = self.get_path()
1.17 return "%s/%s" % (path.rstrip("/"), path_info.lstrip("/"))
1.18
1.19 -class ManagerHandler(Handler):
1.20 +class ManagerHandler(Handler, SupportFreebusy):
1.21
1.22 """
1.23 A content handler for use by the manager, as opposed to operating within the
1.24 @@ -128,14 +129,27 @@
1.25 to the appropriate recipients, also sending a copy to the 'sender'.
1.26 """
1.27
1.28 - part = self.obj.to_part(method)
1.29 + parts = [self.obj.to_part(method)]
1.30
1.31 - if self.user == self.organiser:
1.32 + from_organiser = self.user == self.organiser
1.33 +
1.34 + if from_organiser:
1.35 recipients = map(get_address, self.attendees)
1.36 else:
1.37 recipients = [get_address(self.organiser)]
1.38
1.39 - message = self.messenger.make_outgoing_message([part], recipients, outgoing_bcc=sender)
1.40 + # Bundle free/busy information if appropriate.
1.41 +
1.42 + preferences = Preferences(self.user)
1.43 +
1.44 + if preferences.get("freebusy_sharing") == "share" and \
1.45 + preferences.get("freebusy_bundling") == "always":
1.46 +
1.47 + freebusy = self.make_freebusy(from_organiser=from_organiser, publish=True)
1.48 + if freebusy:
1.49 + parts.append(to_part("PUBLISH", freebusy))
1.50 +
1.51 + message = self.messenger.make_outgoing_message(parts, recipients, outgoing_bcc=sender)
1.52 self.messenger.sendmail(recipients, message.as_string(), outgoing_bcc=sender)
1.53
1.54 # Action methods.