1.1 --- a/imip_store.py Tue Nov 25 23:12:15 2014 +0100
1.2 +++ b/imip_store.py Tue Nov 25 23:14:03 2014 +0100
1.3 @@ -103,7 +103,20 @@
1.4 filename = self.get_object_in_store(user, "freebusy")
1.5 if not filename or not exists(filename):
1.6 return None
1.7 + else:
1.8 + return self._get_freebusy(filename)
1.9
1.10 + def get_freebusy_for_other(self, user, other):
1.11 +
1.12 + "For the given 'user', get free/busy details for the 'other' user."
1.13 +
1.14 + filename = self.get_object_in_store(user, "freebusy-other", other)
1.15 + if not filename:
1.16 + return None
1.17 + else:
1.18 + return self._get_freebusy(filename)
1.19 +
1.20 + def _get_freebusy(self, filename):
1.21 f = open(filename)
1.22 try:
1.23 l = []
1.24 @@ -121,14 +134,7 @@
1.25 if not filename:
1.26 return False
1.27
1.28 - f = open(filename, "w")
1.29 - try:
1.30 - for item in freebusy:
1.31 - f.write("\t".join(item) + "\n")
1.32 - finally:
1.33 - f.close()
1.34 - fix_permissions(filename)
1.35 -
1.36 + self._set_freebusy(filename, freebusy)
1.37 return True
1.38
1.39 def set_freebusy_for_other(self, user, freebusy, other):
1.40 @@ -139,6 +145,10 @@
1.41 if not filename:
1.42 return False
1.43
1.44 + self._set_freebusy(filename, freebusy)
1.45 + return True
1.46 +
1.47 + def _set_freebusy(self, filename, freebusy):
1.48 f = open(filename, "w")
1.49 try:
1.50 for item in freebusy:
1.51 @@ -147,8 +157,6 @@
1.52 f.close()
1.53 fix_permissions(filename)
1.54
1.55 - return True
1.56 -
1.57 def get_requests(self, user):
1.58
1.59 "Get requests for the given 'user'."
1.60 @@ -245,8 +253,9 @@
1.61 rwrite(("UID", {}, user))
1.62 rwrite(("DTSTAMP", {}, datetime.utcnow().strftime("%Y%m%dT%H%M%SZ")))
1.63
1.64 - for start, end, uid in freebusy:
1.65 - rwrite(("FREEBUSY", {"FBTYPE" : "BUSY"}, "/".join([start, end])))
1.66 + for start, end, uid, transp in freebusy:
1.67 + if transp == "OPAQUE":
1.68 + rwrite(("FREEBUSY", {"FBTYPE" : "BUSY"}, "/".join([start, end])))
1.69
1.70 f = open(filename, "w")
1.71 try: