[CalendarServer-changes] [10841] CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/ datastore/sql.py
source_changes at macosforge.org
source_changes at macosforge.org
Mon Mar 4 16:47:31 PST 2013
Revision: 10841
http://trac.calendarserver.org//changeset/10841
Author: gaya at apple.com
Date: 2013-03-04 16:47:31 -0800 (Mon, 04 Mar 2013)
Log Message:
-----------
ownerHomeWithResourceID(), ownerHomeFromChildID() renamed ownerHomeWithChildID()
Modified Paths:
--------------
CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py
Modified: CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py
===================================================================
--- CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py 2013-03-04 23:32:56 UTC (rev 10840)
+++ CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py 2013-03-05 00:47:31 UTC (rev 10841)
@@ -794,7 +794,7 @@
if not result:
result = yield cls.objectWithName(home, ownerHome.shareeAddressBookName(), accepted=False)
assert result
-
+
returnValue(result)
@@ -1168,9 +1168,12 @@
_objectTable = ADDRESSBOOK_OBJECT_TABLE
_objectSchema = schema.ADDRESSBOOK_OBJECT
_bindSchema = schema.GROUP_ADDRESSBOOK_HOME_BIND
- _homeChildMetaDataSchema = schema.ADDRESSBOOK_OBJECT # used by CommonHomeChild._childrenAndMetadataForHomeID() only
+ # used by CommonHomeChild._childrenAndMetadataForHomeID() only
+ #_homeChildSchema = schema.ADDRESSBOOK_OBJECT
+ #_homeChildMetaDataSchema = schema.ADDRESSBOOK_OBJECT
+
def __init__(self, addressbook, name, uid, resourceID=None, metadata=None): #@UnusedVariable
self._kind = None
@@ -1862,7 +1865,36 @@
"""
return self._bindName
+ @classmethod
+ def metadataColumns(cls):
+ """
+ Return a list of column name for retrieval of metadata. This allows
+ different child classes to have their own type specific data, but still make use of the
+ common base logic.
+ """
+ # Common behavior is to have created and modified
+
+ return (
+ cls._objectSchema.CREATED,
+ cls._objectSchema.MODIFIED,
+ )
+
+ # same as CommonHomeChild._childrenAndMetadataForHomeID() w/o metadata join
+ @classproperty
+ def _childrenAndMetadataForHomeID(cls): #@NoSelf
+ bind = cls._bindSchema
+ child = cls._objectSchema
+ columns = cls._bindColumns() + cls.metadataColumns()
+ return Select(columns,
+ From=child.join(
+ bind, child.RESOURCE_ID == bind.RESOURCE_ID,
+ 'left outer'),
+ Where=(bind.HOME_RESOURCE_ID == Parameter("homeID")
+ ).And(bind.BIND_STATUS == _BIND_STATUS_ACCEPTED))
+
+
+
@inlineCallbacks
def notifyChanged(self):
returnValue((yield self._addressbook.notifyChanged()))
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130304/f55a5edb/attachment.html>
More information about the calendarserver-changes
mailing list