1.1 --- a/imiptools/handlers/person_outgoing.py Tue May 19 21:47:59 2015 +0200
1.2 +++ b/imiptools/handlers/person_outgoing.py Tue May 19 23:38:48 2015 +0200
1.3 @@ -138,6 +138,8 @@
1.4 given_attendees = set(uri_values(self.obj.get_values("ATTENDEE")))
1.5 cancel_entire_event = given_attendees == all_attendees
1.6
1.7 + # Keep the event for the organiser.
1.8 +
1.9 if cancel_entire_event:
1.10 self.store.cancel_event(self.user, self.uid, self.recurrenceid)
1.11
1.12 @@ -152,8 +154,8 @@
1.13 # Update the stored object with sequence information.
1.14
1.15 if obj:
1.16 - obj["SEQUENCE"] = self.obj.get_items("SEQUENCE")
1.17 - obj["DTSTAMP"] = self.obj.get_items("DTSTAMP")
1.18 + obj["SEQUENCE"] = self.obj.get_items("SEQUENCE") or []
1.19 + obj["DTSTAMP"] = self.obj.get_items("DTSTAMP") or []
1.20
1.21 # Set the complete event if not an additional occurrence. For any newly-
1.22 # indicated occurrence, use the received event details.
1.23 @@ -169,6 +171,7 @@
1.24 if update_freebusy:
1.25 freebusy = self.store.get_freebusy(self.user)
1.26 self.remove_from_freebusy(freebusy)
1.27 + self.remove_freebusy_for_recurrences(freebusy)
1.28
1.29 if cancel_entire_event or self.user in given_attendees:
1.30 self.store.set_freebusy(self.user, freebusy)