Closed Bug 421301 Opened 16 years ago Closed 16 years ago

getItem() doesn't include exceptions in recurring events

Categories

(Calendar :: Provider: GData, defect)

defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: chris, Assigned: Fallen)

Details

(Whiteboard: [gdata-0.4])

Attachments

(1 file)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
Build Identifier: 0.4pre 2008-02-12-20

Hello,

When called for a recurring event, the function getItem() returns a recurring event but without its exceptions (modified or deleted occurrences). Note that getItems() which retrieves a set of items properly returns these recurring events with their exceptions.

This behavior causes problem when synchronizing Lightning Google items with BirdieSync since the exceptions are missing in the returned event.

Let me know if you need more information.
Thanks a lot.

Reproducible: Always

Steps to Reproduce:
Call getItem() on an recurring event with at least one exception
Actual Results:  
The recurring event is returned without exceptions

Expected Results:  
The returned recurring event should have its exceptions included.
I see, you are right. I'm not sure how to solve this yet though:

* Getting an item of a certain ID only returns the master item
* The master item does not contain an EXDATE, but there is an extra entry with
  the exception data (i.e canceled)


This could be seen as a google bug, that EXDATE should be specified, I'll file one if you like.

Otherwise I'll need a way to retrieve all exceptions with the master item.
Status: UNCONFIRMED → NEW
Ever confirmed: true
I don't really know Google API but maybe if you replace "full" with "composite" in the URL to change the projection you can get the exceptions ?
I tried and I got and additional gd:recurrenceException in the response.
Do you think it could help ?
But the problem is that I a am not sure it returns the deleted exceptions.
This does seem to work, it would help. I can use the composite feed for getItem() requests. It does return deleted exceptions.

I have limited internet access the next couple of weeks, but I can see what I can do while offline.
That's great. Let me know if I can be of any help or if you need me to do some tests. Thanks a lot.
Unfortunately I have found a problem with this approach: The composite feed does not contain the edit-urls needed to make it possible to edit the item. I could not find any further query parameters to make the full feed contain the recurrenceExceptions.

I'm going to ask the google groups if there is a way, otherwise I fear we will have to do two requests (bad...) or wait for them to fix the bug. See [1] for more info...


[1] http://groups.google.com/group/google-calendar-help-dataapi/t/e52205dc2c406dbe
OS: Windows Vista → All
Hardware: PC → All
Whiteboard: [depends-google-issue]
It seems to be "by design". In the documentation it is mentioned: "events in read-only feeds don't include <link rel="edit"> elements". And the composite feed is a read-only feed...
Attached patch Fix - v1 β€” β€” Splinter Review
As Austin from Google suggested, we can use a complete full feed to get the exceptions for single items. This patch takes care and also fixes another issue where negative exceptions are not correctly added to the parent item.
Assignee: nobody → philipp
Status: NEW → ASSIGNED
Attachment #308833 - Flags: review?(daniel.boelzle)
Comment on attachment 308833 [details] [diff] [review]
Fix - v1 

r=dbo
Attachment #308833 - Flags: review?(daniel.boelzle) → review+
Philipp asked me to check this in on HEAD, MOZILLA_1_8_BRANCH and SUNBIRD_0_8_BRANCH => FIXED.
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Target Milestone: --- → 0.8
That's great news ! Thanks a lot for the quick fix. I will do some tests with this new version.
I made some tests with the new version of the provider (gdata-provider-2008-03-14-19) and the getItem() now returns all the modified and deleted exceptions. The recurring events can now be properly synchronized.
Philipp, once again thank you so much for quickly solving this problem. It is really appreciated.
Chris, no problem. Next time a bit earlier before our release would be great. In the gdata case its not so bad since the release is not part of the core builds, but since we are in the rc phase, its usually harder to commit patches so shortly before the release.

Marking verified per comment 11.
Status: RESOLVED → VERIFIED
Whiteboard: [depends-google-issue] → [gdata-cvs]
You are right. I will keep this in mind and will try to report possible problems earlier next time.
Whiteboard: [gdata-cvs] → [gdata-0.4]
You need to log in before you can comment on or make changes to this bug.