1.1 --- a/tools/make_freebusy.py Thu Feb 05 17:22:11 2015 +0100
1.2 +++ b/tools/make_freebusy.py Thu Feb 05 17:59:47 2015 +0100
1.3 @@ -1,6 +1,6 @@
1.4 #!/usr/bin/env python
1.5
1.6 -from imiptools.data import get_utc_datetime, get_value, parse_object
1.7 +from imiptools.data import get_utc_datetime, get_value, get_value_map, parse_object
1.8 from imiptools.dates import format_datetime
1.9 from imip_store import FileStore, FilePublisher
1.10 import sys
1.11 @@ -14,10 +14,13 @@
1.12 s = FileStore()
1.13 p = FilePublisher()
1.14
1.15 -l = s.get_events(user)
1.16 +events = set(s.get_events(user))
1.17 +cancelled = s.get_cancellations(user)
1.18 +
1.19 +events.difference_update(cancelled)
1.20
1.21 objs = []
1.22 -for i in l:
1.23 +for i in events:
1.24 print >>sys.stderr, i
1.25 objs.append(parse_object(s.get_event(user, i), "utf-8"))
1.26
1.27 @@ -26,10 +29,15 @@
1.28 if not obj:
1.29 continue
1.30 details, details_attr = obj.values()[0]
1.31 - fb.append((format_datetime(get_utc_datetime(details, "DTSTART")),
1.32 - format_datetime(get_utc_datetime(details, "DTEND")),
1.33 - get_value(details, "UID"),
1.34 - get_value(details, "TRANSP")))
1.35 +
1.36 + for attendee, attendee_attr in get_value_map(details, "ATTENDEE").items():
1.37 + if attendee == user:
1.38 + if attendee_attr.get("PARTSTAT") != "DECLINED":
1.39 + fb.append((format_datetime(get_utc_datetime(details, "DTSTART")),
1.40 + format_datetime(get_utc_datetime(details, "DTEND")),
1.41 + get_value(details, "UID"),
1.42 + get_value(details, "TRANSP")))
1.43 + break
1.44
1.45 fb.sort()
1.46