# HG changeset patch # User Paul Boddie # Date 1513026578 -3600 # Node ID 0249f30178a473d815421afa6ccbc84f1549582b # Parent 829ed36c32d67039a6d6544c95c8c8c1f5cd831d Use EXDATE to exclude any cancelled/removed main period in reformulated events. diff -r 829ed36c32d6 -r 0249f30178a4 imiptools/editing.py --- a/imiptools/editing.py Mon Dec 11 00:32:37 2017 +0100 +++ b/imiptools/editing.py Mon Dec 11 22:09:38 2017 +0100 @@ -1421,6 +1421,8 @@ # incremental updates. cancelled_removed = select_recurrences(cancelled, removed).values() + cancelled_main = get_main_period(cancelled_removed) + cancelled_main = cancelled_main and [cancelled_main] or [] # Reinstated periods are previously-cancelled periods that are now modified # periods, and they appear in updates. @@ -1463,7 +1465,7 @@ if not is_shared or new and not replaced: to_set = active_non_rule - to_exclude = list(chain(cancelled_rule, obsolete_rule)) + to_exclude = list(chain(cancelled_rule, obsolete_rule, cancelled_main)) to_unschedule = [] to_reschedule = [] to_add = [] @@ -1504,7 +1506,7 @@ else: to_set = active_non_rule - to_exclude = list(chain(cancelled, obsolete_rule)) + to_exclude = list(chain(cancelled, obsolete_rule, cancelled_main)) to_reschedule = [] all_unscheduled = [] all_rescheduled = []