# HG changeset patch # User Paul Boddie # Date 1505258429 -7200 # Node ID 6cdd63a6da6d25f4f1afb306ee0923b2b5a17017 # Parent caed4fe9512208b537c877fc30c285fdbdef4d4c Update free/busy details only after recurrences have been removed for a whole event update. This prevents previously-cancelled recurrences obstructing free/busy generation where such recurrences are reintroduced. diff -r caed4fe95122 -r 6cdd63a6da6d imiptools/handlers/resource.py --- a/imiptools/handlers/resource.py Wed Sep 13 00:29:48 2017 +0200 +++ b/imiptools/handlers/resource.py Wed Sep 13 01:20:29 2017 +0200 @@ -3,7 +3,7 @@ """ Handlers for a resource. -Copyright (C) 2014, 2015, 2016 Paul Boddie +Copyright (C) 2014, 2015, 2016, 2017 Paul Boddie This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -104,9 +104,6 @@ method = "REPLY" attendee_attr = self.update_participation(scheduled) - self.update_event_in_freebusy(for_organiser=False) - self.remove_event_from_freebusy_offers() - # Set the complete event or an additional occurrence. event = self.obj.to_node() @@ -121,6 +118,12 @@ else: self.store.remove_cancellation(self.user, self.uid, self.recurrenceid) + # Update free/busy details only after recurrences have been + # removed, where appropriate. + + self.update_event_in_freebusy(for_organiser=False) + self.remove_event_from_freebusy_offers() + if scheduled == "ACCEPTED": self.confirm_scheduling()