After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 593023 - Deleting a imported recurrent event will remain
Deleting a imported recurrent event will remain
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Calendar
2.26.x (obsolete)
Other Linux
: Normal normal
: ---
Assigned To: Milan Crha
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2009-08-25 14:49 UTC by Olivier Fourdan
Modified: 2009-10-15 13:50 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
A recurrent meeting to import for testing (1.65 KB, text/calendar)
2009-08-25 14:49 UTC, Olivier Fourdan
  Details
proposed eds patch (698 bytes, patch)
2009-08-26 12:37 UTC, Milan Crha
committed Details | Review

Description Olivier Fourdan 2009-08-25 14:49:20 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.
Comment 1 Milan Crha 2009-08-26 11:23:24 UTC
The attached meeting has set RECURRENCE-ID , which means it's a detached instance, not a master object. I'm going to investigate more.
Comment 2 Milan Crha 2009-08-26 12:37:44 UTC
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.)
Comment 3 Milan Crha 2009-08-26 12:38:53 UTC
Chen, it will be nice to have it in 2.28. What do you think?
Comment 4 Milan Crha 2009-10-15 13:50:24 UTC
Created commit d3d9ee6 in eds master (2.29.1+)
Created commit e2f53eb in eds gnome-2-28 (2.28.1+)