[CalendarServer-changes] [8928] CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav /directory/xmldirectorybacker.py
source_changes at macosforge.org
source_changes at macosforge.org
Fri Mar 23 18:37:41 PDT 2012
Revision: 8928
http://trac.macosforge.org/projects/calendarserver/changeset/8928
Author: gaya at apple.com
Date: 2012-03-23 18:37:41 -0700 (Fri, 23 Mar 2012)
Log Message:
-----------
fix single dsquery.match dsFilter
Modified Paths:
--------------
CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/xmldirectorybacker.py
Modified: CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/xmldirectorybacker.py
===================================================================
--- CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/xmldirectorybacker.py 2012-03-23 23:50:09 UTC (rev 8927)
+++ CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/xmldirectorybacker.py 2012-03-24 01:37:41 UTC (rev 8928)
@@ -179,21 +179,27 @@
# stop query for all
clear = not allRecords and not dsFilter
-
+
if not clear:
@inlineCallbacks
def recordsForDSFilter(dsFilter, recordType):
"""
- Whist this tests the dsFilter expression tree and recordsMatchingFields() it make little difference to the resutl of
+ Although this exercises the dsFilter expression tree and recordsMatchingFields() it make little difference to the result of
a addressbook query because of post filtering.
"""
- self.log_debug("recordsForDSFilter: dsFilter=%s" % (dsFilter.generate(), ))
- if dsFilter.operator == dsquery.expression.NOT:
+ #returnValue(None) # dsquery.expression.NOT not supported by recordsMatchingFields()
+
+ if not isinstance(dsFilter, dsquery.expression):
+ #change match list into an expression and recurse
+ returnValue((yield recordsForDSFilter(dsquery.expression( dsquery.expression.OR, (dsFilter,)), recordType)))
+
+ elif dsFilter.operator == dsquery.expression.NOT:
self.log_debug("recordsForDSFilter: dsFilter-%s NOT NONE" % (dsFilter.generate(), ))
returnValue(None) # dsquery.expression.NOT not supported by recordsMatchingFields()
else:
+ self.log_debug("recordsForDSFilter: dsFilter=%s" % (dsFilter.generate(), ))
self.log_debug("recordsForDSFilter: #subs %s" % (len(dsFilter.subexpressions), ))
# evaluate matches
@@ -239,7 +245,10 @@
returnValue(result)
# walk the expression tree
- xmlDirectoryRecords = (yield recordsForDSFilter(dsFilter, queryType))
+ if allRecords:
+ xmlDirectoryRecords = None
+ else:
+ xmlDirectoryRecords = (yield recordsForDSFilter(dsFilter, queryType))
self.log_debug("doAddressBookQuery: #xmlDirectoryRecords %s" % (len(xmlDirectoryRecords) if xmlDirectoryRecords is not None else xmlDirectoryRecords, ))
if xmlDirectoryRecords is None:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20120323/e51ffa79/attachment.html>
More information about the calendarserver-changes
mailing list