GNOME Bugzilla – Bug 593023
Deleting a imported recurrent event will remain
Last modified: 2009-10-15 13:50:36 UTC
Created attachment 141652 [details] A recurrent meeting to import for testing To reproduce: 1) Create a recurrent meeting in Evolution 2) Save that meeting in an ics file 3) Reimport the meeting 4) Delete the meeting with "Delete All Occurrences" Actual result: The meeting remains visible and accessible in the calendar. Expected result: The meeting is removed from the calendar. Additional information: The meeting is removed from the backend though, as switching to another view back and forth will not display the meeting again. The problem might be related to the export/import as the other occurrences of the meeting are lost after reimporting the meeting. In delete_event() from calendar/gui/e-calendar-view.c, the "recurid" is set to NULL: /*FIXME remove it once the we dont set the recurrence id for all the generated instances */ if (!e_cal_get_static_capability (event->comp_data->client, CAL_STATIC_CAPABILITY_RECURRENCES_NO_MASTER)) e_cal_component_set_recurid (comp, NULL); If we do not set recurid to NULL in delete_event(), "Remove All Occurrences" work as expected, but I am not sure of the side effects of such a change. This is probably an improper fix.
The attached meeting has set RECURRENCE-ID , which means it's a detached instance, not a master object. I'm going to investigate more.
Created attachment 141744 [details] [review] proposed eds patch for evolution-data-server; There was also a critical warning on the evolution-data-server console in time of removal of the event. This change fixes behaviour to me. I believe it's better than fix all the backends and ensure they will always return an old object. (It works fine even without this patch with actual CalDAV backend.)
Chen, it will be nice to have it in 2.28. What do you think?
Created commit d3d9ee6 in eds master (2.29.1+) Created commit e2f53eb in eds gnome-2-28 (2.28.1+)