1.1 --- a/imip_manager.py Fri Oct 31 16:00:11 2014 +0100
1.2 +++ b/imip_manager.py Sat Nov 22 22:46:41 2014 +0100
1.3 @@ -139,10 +139,7 @@
1.4 # Data management methods.
1.5
1.6 def remove_request(self, uid):
1.7 - requests = self.store.get_requests(self.user)
1.8 - if uid in requests:
1.9 - requests.remove(uid)
1.10 - self.store.set_requests(self.user, requests)
1.11 + return self.store.dequeue_request(self.user, uid)
1.12
1.13 # Presentation methods.
1.14
2.1 --- a/imip_store.py Fri Oct 31 16:00:11 2014 +0100
2.2 +++ b/imip_store.py Sat Nov 22 22:46:41 2014 +0100
2.3 @@ -16,6 +16,12 @@
2.4 pass
2.5
2.6 def make_calendar(fragment, method=None):
2.7 +
2.8 + """
2.9 + Return a complete calendar item wrapping the given 'fragment' and employing
2.10 + the given 'method', if indicated.
2.11 + """
2.12 +
2.13 return ("VCALENDAR", {},
2.14 (method and [("METHOD", {}, method)] or []) +
2.15 [("VERSION", {}, "2.0")] +
2.16 @@ -185,6 +191,20 @@
2.17
2.18 return False
2.19
2.20 + def dequeue_request(self, user, uid):
2.21 +
2.22 + "Dequeue a request for 'user' having the given 'uid'."
2.23 +
2.24 + requests = self.get_requests(user) or []
2.25 +
2.26 + try:
2.27 + requests.remove(uid)
2.28 + self.set_requests(user, requests)
2.29 + except ValueError:
2.30 + return False
2.31 + else:
2.32 + return True
2.33 +
2.34 class FilePublisher(FileBase):
2.35
2.36 "A publisher of objects."