[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