# HG changeset patch # User Paul Boddie # Date 1432058119 -7200 # Node ID dc885408a8144a2202c58b2a10389003d14d5c63 # Parent db4ab6e0c035fa7bbc972e5dcb344e97e6130386 Fixed free/busy period removal for cancelled events. Set DTSTAMP and ATTENDEE details only after saving the event. diff -r db4ab6e0c035 -r dc885408a814 imiptools/handlers/resource.py --- a/imiptools/handlers/resource.py Tue May 19 16:39:34 2015 +0200 +++ b/imiptools/handlers/resource.py Tue May 19 19:55:19 2015 +0200 @@ -84,14 +84,6 @@ if self.messenger and self.messenger.sender != get_address(self.user): attendee_attr["SENT-BY"] = get_uri(self.messenger.sender) - # Make a version of the request with just this attendee. - - self.obj["ATTENDEE"] = [(self.user, attendee_attr)] - - # Update the DTSTAMP. - - self.update_dtstamp() - # Set the complete event or an additional occurrence. event = self.obj.to_node() @@ -118,6 +110,13 @@ if self.publisher and self.is_sharing(): self.publisher.set_freebusy(self.user, freebusy) + # Make a version of the request with just this attendee. + + self.obj["ATTENDEE"] = [(self.user, attendee_attr)] + + # Update the DTSTAMP in the response. + + self.update_dtstamp() return event def _cancel_for_attendee(self): @@ -132,6 +131,7 @@ freebusy = self.store.get_freebusy(self.user) self.remove_from_freebusy(freebusy) + self.remove_freebusy_for_recurrences(freebusy) self.store.set_freebusy(self.user, freebusy) if self.publisher and self.is_sharing():