1.1 --- a/imiptools/handlers/person_outgoing.py Sun Sep 06 01:06:28 2015 +0200
1.2 +++ b/imiptools/handlers/person_outgoing.py Sun Sep 06 01:15:30 2015 +0200
1.3 @@ -146,14 +146,9 @@
1.4 given_attendees = set(uri_values(self.obj.get_values("ATTENDEE")))
1.5 cancel_entire_event = not all_attendees.difference(given_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 # Otherwise, remove the given attendees and update the event.
1.13
1.14 - elif obj:
1.15 + if not cancel_entire_event and obj:
1.16 for attendee in given_attendees:
1.17 if attendees.has_key(attendee):
1.18 del attendees[attendee]
1.19 @@ -175,6 +170,12 @@
1.20
1.21 self.store.set_event(self.user, self.uid, self.recurrenceid, (obj or self.obj).to_node())
1.22
1.23 + # Perform any cancellation after recording the latest state of the
1.24 + # event.
1.25 +
1.26 + if cancel_entire_event:
1.27 + self.store.cancel_event(self.user, self.uid, self.recurrenceid)
1.28 +
1.29 # Remove any associated request.
1.30
1.31 self.store.dequeue_request(self.user, self.uid, self.recurrenceid)