# HG changeset patch # User Paul Boddie # Date 1422903175 -3600 # Node ID f69455dd82d5dffec1c349b5ca570e7f23f0ea17 # Parent 27f289afa7873719be00947955ea1a1abff69458 Added event removal support, activated when discarding an event. diff -r 27f289afa787 -r f69455dd82d5 imip_manager.py --- a/imip_manager.py Mon Feb 02 19:43:41 2015 +0100 +++ b/imip_manager.py Mon Feb 02 19:52:55 2015 +0100 @@ -312,6 +312,9 @@ def remove_request(self, uid): return self.store.dequeue_request(self.user, uid) + def remove_event(self, uid): + return self.store.remove_event(self.user, uid) + # Presentation methods. def new_page(self, title): @@ -443,8 +446,9 @@ elif args.has_key("discard"): - # Remove the request from the list. + # Remove the request and the object. + self.remove_event(uid) self.remove_request(uid) else: diff -r 27f289afa787 -r f69455dd82d5 imip_store.py --- a/imip_store.py Mon Feb 02 19:43:41 2015 +0100 +++ b/imip_store.py Mon Feb 02 19:52:55 2015 +0100 @@ -24,7 +24,7 @@ from imiptools.data import make_calendar, to_stream from imiptools.filesys import fix_permissions, FileBase from os.path import exists, isfile, join -from os import listdir +from os import listdir, remove class FileStore(FileBase): @@ -70,6 +70,21 @@ return True + def remove_event(self, user, uid): + + "Remove an event for 'user' having the given 'uid'." + + filename = self.get_object_in_store(user, "objects", uid) + if not filename: + return False + + try: + remove(filename) + except OSError: + return False + + return True + def get_freebusy(self, user): "Get free/busy details for the given 'user'."