Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support filters #33

Closed
liZe opened this issue May 16, 2013 · 7 comments
Closed

Support filters #33

liZe opened this issue May 16, 2013 · 7 comments
Assignees
Labels
Milestone

Comments

@liZe
Copy link
Member

liZe commented May 16, 2013

We should implement the filters support in CalDAV, and see if it helps some clients (seems to be very useful for Apple's clients).

If this is finally useless for supported clients, just close that bug.

@dmfs
Copy link
Contributor

dmfs commented Aug 21, 2013

+1
We've received reports that CalDAV-Sync might not sync properly if there are tasks and events in the same collection. The problem is that CalDAV-Sync relies on the server to filter the results by component (i.e. VTODO or VEVENT). If the app receives VEVENTs when it send a request for VTODOs only (or vice versa) it might sync infinitely. While this is something that I have to fix on my end it might be useful to have filtering working properly in Radicale. In Android we sync tasks and events separately so we rely on the sever capabilities to filter correctly.

Is there already someone working on this? Are there any specific plans how to implement it? Maybe I can help out.

@liZe
Copy link
Member Author

liZe commented Aug 22, 2013

Adding filters for component types is possible, actually it's almost done:
https://github.com/Kozea/Radicale/blob/master/radicale/xmlutils.py#L466

I suppose that CalDAV-Sync uses nested filters, that's why it does not work. There's a TODO about that in the code, it should be quite easy to handle this as it already works for flat filters, if you know a little bit of Python of course. If you don't, just ask, I can try to fix that within a couple of weeks.

The plan is to add features about filters only if they are needed by clients. Adding support for nested filters is a useful feature that can be achieved with simple specific code, so that's OK (and I'll be really grateful if you do 😉). Creating a generic way of handling filters is a bad idea, because it's way too complicated.

@dmfs
Copy link
Contributor

dmfs commented Aug 22, 2013

Yes, CalDAV-Sync uses nested filters. I'll check the code to see what I can do.

@liZe
Copy link
Member Author

liZe commented Aug 27, 2013

After checking the code, it should actually work with nested filters. Radicale mixes parents and children in filters (that's bad, and the TODO is for this), but that should not be a problem with clients. If you have interesting logs with CalDAV-Sync, you can pastebin them, I'll try to find where the bug comes from.

@dmfs
Copy link
Contributor

dmfs commented Aug 27, 2013

Interesting. I'll check out the sources and give it a try. I'll let you know what I find out.

@dmfs
Copy link
Contributor

dmfs commented Sep 1, 2013

You're right the git version properly filters the results by component type. I'll ask the reporting user which version he uses.

@liZe liZe modified the milestones: 3.0, 2.0 Mar 14, 2016
@liZe liZe mentioned this issue Apr 4, 2016
39 tasks
liZe added a commit that referenced this issue May 6, 2016
Related to #33 and #372.
@liZe liZe added the sprint label May 18, 2016
@liZe liZe self-assigned this May 18, 2016
liZe added a commit that referenced this issue May 18, 2016
@liZe
Copy link
Member Author

liZe commented Jun 20, 2016

Only missing recurrence rules now.

@liZe liZe closed this as completed in c294477 Jul 1, 2016
@liZe liZe removed the sprint label Jul 13, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants