[CalendarServer-changes] [10312] CalendarServer/branches/users/gaya/sharedgroups/txdav
source_changes at macosforge.org
source_changes at macosforge.org
Fri Jan 18 14:51:18 PST 2013
Revision: 10312
http://trac.calendarserver.org//changeset/10312
Author: gaya at apple.com
Date: 2013-01-18 14:51:18 -0800 (Fri, 18 Jan 2013)
Log Message:
-----------
Minor cleanup
Modified Paths:
--------------
CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py
CalendarServer/branches/users/gaya/sharedgroups/txdav/common/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-01-18 00:35:16 UTC (rev 10311)
+++ CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py 2013-01-18 22:51:18 UTC (rev 10312)
@@ -239,21 +239,26 @@
result = yield super(AddressBook, self).listObjectResources()
if not self.owned():
- sharedABGroupName = yield self._groupForSharedAddressBookName()
- if not sharedABGroupName in result:
- result.append(sharedABGroupName)
+ groupForSharedAB = yield self._groupForSharedABName()
+ if not groupForSharedAB in result:
+ result.append(groupForSharedAB)
returnValue(result)
@inlineCallbacks
def countObjectResources(self):
- if self.owned():
- result = yield super(AddressBook, self).countObjectResources()
- else:
- result = len((yield self.listObjectResources()))
- returnValue(result)
+ if self._objectNames is None:
+ rows = yield self._objectCountQuery.on(
+ self._txn, resourceID=self._resourceID)
+ count = rows[0][0]
+ #add in group for shared address book
+ if not self.owned():
+ count += 1
+ returnValue(count)
+ returnValue(len(self._objectNames))
+
@inlineCallbacks
def _ownerGroupAndAddressBook(self):
"""
@@ -300,13 +305,13 @@
@inlineCallbacks
- def _groupForSharedAddressBookRow(self): #@NoSelf
+ def _groupForSharedABRow(self): #@NoSelf
returnValue([
self._resourceID, # obj.ADDRESSBOOK_RESOURCE_ID,
self._resourceID, # obj.RESOURCE_ID,
- (yield self._groupForSharedAddressBookName()), # obj.RESOURCE_NAME, shared name is UID and thus avoids collisions
- (yield self._groupForSharedAddressBookUID()), # obj.UID, shared name is uuid
+ (yield self._groupForSharedABName()), # obj.RESOURCE_NAME, shared name is UID and thus avoids collisions
+ (yield self._groupForSharedABUID()), # obj.UID, shared name is uuid
_ABO_KIND_GROUP, # obj.KIND,
"1", # obj.MD5, unused
"1", # Len(obj.TEXT), unused
@@ -316,7 +321,7 @@
@inlineCallbacks
- def _groupForSharedAddressBookName(self):
+ def _groupForSharedABName(self):
ownerGroup = yield self.ownerGroup()
if ownerGroup:
returnValue(ownerGroup.name())
@@ -325,12 +330,12 @@
@inlineCallbacks
- def _groupForSharedAddressBookUID(self):
+ def _groupForSharedABUID(self):
yield None
returnValue(self.name())
@inlineCallbacks
- def _groupForSharedAddressBookComponent(self):
+ def _groupForSharedABComponent(self):
ownerGroup = yield self.ownerGroup()
if ownerGroup:
@@ -571,29 +576,29 @@
@classproperty
def _revisionsForHomeID(cls): #@NoSelf
- rev = cls._revisionsSchema
- def columns():
+ def columns(rev):
return [rev.RESOURCE_ID, Max(rev.REVISION)]
- def _from(bind):
+ def _from(rev, bind):
return rev.join(bind, rev.RESOURCE_ID == bind.RESOURCE_ID, 'left')
- def where(bind):
+ def where(rev, bind):
return ((bind.HOME_RESOURCE_ID == Parameter("homeID")).
And((rev.RESOURCE_NAME != None).Or(rev.DELETED == False)))
addressbookBind = cls._bindSchema
- aboBind = cls._bindSchema
+ aboBind = AddressBookObject._bindSchema
+ rev = cls._revisionsSchema
return Select(
- columns(),
- From=_from(addressbookBind),
- Where=where(addressbookBind),
+ columns(rev),
+ From=_from(rev, addressbookBind),
+ Where=where(rev, addressbookBind),
GroupBy=rev.RESOURCE_ID,
SetExpression=Union(
Select(
- columns(),
- From=_from(aboBind),
- Where=where(aboBind),
+ columns(rev),
+ From=_from(rev, aboBind),
+ Where=where(rev, aboBind),
GroupBy=rev.RESOURCE_ID
),
optype=Union.OPTYPE_ALL,
@@ -778,14 +783,14 @@
# get special group vCard
if not rows and not self._addressbook.owned():
if self._name:
- if self._name == (yield self._addressbook._groupForSharedAddressBookName()):
- rows = [(yield self._addressbook._groupForSharedAddressBookRow())]
+ if self._name == (yield self._addressbook._groupForSharedABName()):
+ rows = [(yield self._addressbook._groupForSharedABRow())]
elif self._uid:
- if self._uid == (yield self._addressbook._groupForSharedAddressBookUID()):
- rows = [(yield self._addressbook._groupForSharedAddressBookRow())]
+ if self._uid == (yield self._addressbook._groupForSharedABUID()):
+ rows = [(yield self._addressbook._groupForSharedABRow())]
elif self._resourceID:
if self._resourceID == self._addressbook._resourceID:
- rows = [(yield self._addressbook._groupForSharedAddressBookRow())]
+ rows = [(yield self._addressbook._groupForSharedABRow())]
if rows:
self._initFromRow(tuple(rows[0]))
@@ -891,7 +896,7 @@
rows = yield super(AddressBookObject, cls)._allColumnsWithParent(parent)
# add group vCard for shared address books
if not parent.owned():
- rows.append((yield parent._groupForSharedAddressBookRow()))
+ rows.append((yield parent._groupForSharedABRow()))
returnValue(rows)
@@ -917,8 +922,8 @@
rows = yield super(AddressBookObject, cls)._allColumnsWithParentAndNames(parent, names)
# add group vCard for shared address books
- if not parent.owned() and (yield parent._groupForSharedAddressBookName()) in names:
- rows.append((yield parent._groupForSharedAddressBookRow(parent)))
+ if not parent.owned() and (yield parent._groupForSharedABName()) in names:
+ rows.append((yield parent._groupForSharedABRow(parent)))
returnValue(rows)
@@ -1197,7 +1202,7 @@
if not self._addressbook.owned() and self._resourceID == self._addressbook._resourceID:
- component = yield self._addressbook._groupForSharedAddressBookComponent()
+ component = yield self._addressbook._groupForSharedABComponent()
else:
text = yield self._text()
Modified: CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql.py
===================================================================
--- CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql.py 2013-01-18 00:35:16 UTC (rev 10311)
+++ CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql.py 2013-01-18 22:51:18 UTC (rev 10312)
@@ -2905,7 +2905,6 @@
returnValue(child)
- # TODO: move to Calendar
@classproperty
def _insertHomeChild(cls): #@NoSelf
"""
@@ -2916,7 +2915,6 @@
Return=(child.RESOURCE_ID))
- # TODO: move to Calendar
@classproperty
def _insertHomeChildMetaData(cls): #@NoSelf
"""
@@ -2927,22 +2925,8 @@
Return=(child.CREATED, child.MODIFIED))
- # TODO: Make abstract here and move to Calendar
@classmethod
@inlineCallbacks
- def _createChild(cls, home, name):
- # Create this object
- resourceID = (
- yield cls._insertHomeChild.on(home._txn))[0][0]
-
- created, modified = (
- yield cls._insertHomeChildMetaData.on(home._txn,
- resourceID=resourceID))[0]
- returnValue((resourceID, created, modified))
-
-
- @classmethod
- @inlineCallbacks
def create(cls, home, name):
child = (yield cls.objectWithName(home, name))
if child is not None:
@@ -2954,8 +2938,13 @@
if name.startswith("."):
raise HomeChildNameNotAllowedError(name)
- resourceID, created, modified = yield cls._createChild(home, name)
+ resourceID = (
+ yield cls._insertHomeChild.on(home._txn))[0][0]
+ created, modified = (
+ yield cls._insertHomeChildMetaData.on(home._txn,
+ resourceID=resourceID))[0]
+
# Bind table needs entry
yield cls._bindInsertQuery.on(
home._txn, homeID=home._resourceID, resourceID=resourceID,
@@ -3196,7 +3185,6 @@
returnValue(results)
- # TODO: move to Calendar
@classproperty
def _objectResourceNamesQuery(cls): #@NoSelf
"""
@@ -3207,7 +3195,6 @@
Where=obj.PARENT_RESOURCE_ID == Parameter('resourceID'))
- # TODO: Make abstract here and move to Calendar
@inlineCallbacks
def listObjectResources(self):
if self._objectNames is None:
@@ -3217,7 +3204,6 @@
returnValue(self._objectNames)
- # TODO: move to Calendar
@classproperty
def _objectCountQuery(cls): #@NoSelf
"""
@@ -3228,7 +3214,6 @@
Where=obj.PARENT_RESOURCE_ID == Parameter('resourceID'))
- # TODO: Make abstract here and move to Calendar
@inlineCallbacks
def countObjectResources(self):
if self._objectNames is None:
@@ -3658,14 +3643,12 @@
self._locked = False
- #TODO: move to CalendarObject
@classproperty
def _allColumnsWithParentQuery(cls): #@NoSelf
obj = cls._objectSchema
return Select(cls._allColumns, From=obj,
Where=obj.PARENT_RESOURCE_ID == Parameter("parentID"))
- # TODO: Make abstract here and move to CalendarObject
@classmethod
@inlineCallbacks
def _allColumnsWithParent(cls, parent):
@@ -3729,7 +3712,6 @@
returnValue(results)
- #TODO: move to CalendarObject
@classmethod
def _allColumnsWithParentAndNamesQuery(cls, names): #@NoSelf
obj = cls._objectSchema
@@ -3738,7 +3720,6 @@
obj.RESOURCE_NAME.In(Parameter("names", len(names)))))
- # TODO: Make abstract here and move to CalendarObject
@classmethod
@inlineCallbacks
def _allColumnsWithParentAndNames(cls, parent, names):
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130118/6117c63c/attachment-0001.html>
More information about the calendarserver-changes
mailing list