1.1 --- a/imip_text_client.py Tue Dec 12 00:10:43 2017 +0100
1.2 +++ b/imip_text_client.py Fri Dec 15 23:23:09 2017 +0100
1.3 @@ -24,7 +24,7 @@
1.4 from imiptools.config import settings
1.5 from imiptools.content import get_objects_from_itip, handle_calendar_data, \
1.6 handle_calendar_object, have_itip_part, \
1.7 - parse_itip_part
1.8 + is_cancel_itip, parse_itip_part
1.9 from imiptools.data import get_address, get_main_period, get_recurrence_periods, get_value, parse_object
1.10 from imiptools.dates import get_datetime_item, get_time, to_timezone
1.11 from imiptools.editing import EditingClient, PeriodError
1.12 @@ -1144,13 +1144,17 @@
1.13
1.14 if handle_data:
1.15 for itip in all_itip:
1.16 - objects += handle_calendar_data(itip, get_handlers(cl, person.handlers, None))
1.17 + handled = handle_calendar_data(itip, get_handlers(cl, person.handlers, None))
1.18 + if not is_cancel_itip(itip):
1.19 + objects += handled
1.20
1.21 # Or just obtain objects from the data.
1.22
1.23 else:
1.24 for itip in all_itip:
1.25 - objects += get_objects_from_itip(itip, ["VEVENT"])
1.26 + handled = get_objects_from_itip(itip, ["VEVENT"])
1.27 + if not is_cancel_itip(itip):
1.28 + objects += handled
1.29
1.30 # Choose an object to edit.
1.31
2.1 --- a/imiptools/content.py Tue Dec 12 00:10:43 2017 +0100
2.2 +++ b/imiptools/content.py Fri Dec 15 23:23:09 2017 +0100
2.3 @@ -134,6 +134,12 @@
2.4
2.5 return not not itip
2.6
2.7 +def is_cancel_itip(itip):
2.8 +
2.9 + "Return whether 'itip' is cancelling objects."
2.10 +
2.11 + return get_value(itip, "METHOD") == "CANCEL"
2.12 +
2.13 def handle_calendar_data(itip, handlers):
2.14
2.15 """