# HG changeset patch # User Paul Boddie # Date 1423430117 -3600 # Node ID 2bedd0a8bfc2f6faff62b6a3f15deda4285fa052 # Parent cc6138b8d1728a7dabc965dcc5b0cf56dab299fe Update free/busy details when saving or discarding events. diff -r cc6138b8d172 -r 2bedd0a8bfc2 imip_manager.py --- a/imip_manager.py Sun Feb 08 21:52:50 2015 +0100 +++ b/imip_manager.py Sun Feb 08 22:15:17 2015 +0100 @@ -41,7 +41,7 @@ from imiptools.period import add_day_start_points, add_empty_days, add_slots, \ convert_periods, get_freebusy_details, \ get_scale, have_conflict, get_slots, get_spans, \ - partition_by_day + partition_by_day, remove_from_freebusy, update_freebusy from imiptools.profile import Preferences import imip_store import markup @@ -323,6 +323,16 @@ def remove_event(self, uid): return self.store.remove_event(self.user, uid) + def update_freebusy(self, uid, obj): + tzid = self.get_tzid() + freebusy = self.store.get_freebusy(self.user) + update_freebusy(freebusy, self.user, obj.get_periods_for_freebusy(tzid), + obj.get_value("TRANSP"), uid, self.store) + + def remove_from_freebusy(self, uid): + freebusy = self.store.get_freebusy(self.user) + remove_from_freebusy(freebusy, self.user, uid, self.store) + # Presentation methods. def new_page(self, title): @@ -544,12 +554,13 @@ elif save: self.store.set_event(self.user, uid, obj.to_node()) - freebusy = self.store.get_freebusy(self.user) + self.update_freebusy(uid, obj) self.remove_request(uid) # Remove the request and the object. elif discard: + self.remove_from_freebusy(uid) self.remove_event(uid) self.remove_request(uid)