[CalendarServer-changes] [3911] CalendarServer/branches/users/wsanchez/deployment/twistedcaldav

source_changes at macosforge.org source_changes at macosforge.org
Mon Mar 23 09:31:19 PDT 2009


Revision: 3911
          http://trac.macosforge.org/projects/calendarserver/changeset/3911
Author:   cdaboo at apple.com
Date:     2009-03-23 09:31:18 -0700 (Mon, 23 Mar 2009)
Log Message:
-----------
multiget improvements from trunk.

Modified Paths:
--------------
    CalendarServer/branches/users/wsanchez/deployment/twistedcaldav/caldavxml.py
    CalendarServer/branches/users/wsanchez/deployment/twistedcaldav/method/report_common.py
    CalendarServer/branches/users/wsanchez/deployment/twistedcaldav/static.py

Modified: CalendarServer/branches/users/wsanchez/deployment/twistedcaldav/caldavxml.py
===================================================================
--- CalendarServer/branches/users/wsanchez/deployment/twistedcaldav/caldavxml.py	2009-03-22 22:06:06 UTC (rev 3910)
+++ CalendarServer/branches/users/wsanchez/deployment/twistedcaldav/caldavxml.py	2009-03-23 16:31:18 UTC (rev 3911)
@@ -372,18 +372,14 @@
 
     @classmethod
     def fromCalendar(clazz, calendar):
-        assert calendar.name() == "VCALENDAR", "Not a calendar: %r" % (calendar,)
-        return clazz(davxml.PCDATAElement(str(calendar)))
+        if isinstance(calendar, str):
+            return clazz(davxml.PCDATAElement(calendar))
+        elif isinstance(calendar, iComponent):
+            assert calendar.name() == "VCALENDAR", "Not a calendar: %r" % (calendar,)
+            return clazz(davxml.PCDATAElement(str(calendar)))
+        else:
+            raise ValueError("Not a calendar: %s" % (calendar,))
 
-    @classmethod
-    def fromCalendarData(clazz, caldata):
-        """
-        Return a CalendarData element comprised of the supplied calendar data.
-        @param caldata: a string of valid calendar data.
-        @return: a L{CalendarData} element.
-        """
-        return clazz(davxml.PCDATAElement(caldata))
-
     def __init__(self, *children, **attributes):
         super(CalendarData, self).__init__(*children, **attributes)
 
@@ -476,7 +472,7 @@
         @param resource: the resource whose calendar data is to be returned.
         @return: an L{CalendarData} with the (filtered) calendar data.
         """
-        return self.elementFromCalendar(resource.iCalendar())
+        return self.elementFromCalendar(resource.iCalendarText())
 
     def elementFromCalendar(self, calendar):
         """
@@ -503,7 +499,7 @@
         @param access: private event access restriction level.
         @return: an L{CalendarData} with the (filtered) calendar data.
         """
-        return self.elementFromCalendarWithAccessRestrictions(resource.iCalendar(), access)
+        return self.elementFromCalendarWithAccessRestrictions(resource.iCalendarText(), access)
 
     def elementFromCalendarWithAccessRestrictions(self, calendar, access):
         """
@@ -627,16 +623,22 @@
         Returns a calendar object containing the data in the given calendar
         which is specified by this CalendarData.
         """
-        if calendar is None or calendar.name() != "VCALENDAR":
+        if calendar is None or isinstance(calendar, str) and not calendar:
             raise ValueError("Not a calendar: %r" % (calendar,))
 
         # Empty element: get all data
         if not self.children: return calendar
 
-        # CalDAV:comp is required 
-        if self.component is None:
-            raise ValueError("CalDAV:calendar-data %s has no CalDAV:comp child" % (self,))
+        # If we were passed a string, parse it out as a Component
+        if isinstance(calendar, str):
+            try:
+                calendar = iComponent.fromString(calendar)
+            except ValueError:
+                raise ValueError("Not a calendar: %r" % (calendar,))
 
+        if calendar is None or calendar.name() != "VCALENDAR":
+            raise ValueError("Not a calendar: %r" % (calendar,))
+
         # Pre-process the calendar data based on expand and limit options
         if self.freebusy_set:
             calendar = self.limitFreeBusy(calendar)

Modified: CalendarServer/branches/users/wsanchez/deployment/twistedcaldav/method/report_common.py
===================================================================
--- CalendarServer/branches/users/wsanchez/deployment/twistedcaldav/method/report_common.py	2009-03-22 22:06:06 UTC (rev 3910)
+++ CalendarServer/branches/users/wsanchez/deployment/twistedcaldav/method/report_common.py	2009-03-23 16:31:18 UTC (rev 3911)
@@ -258,11 +258,11 @@
         else:
             qname = property
     
-        props = waitForDeferred(resource.listProperties(request))
-        yield props
-        props = props.getResult()
+        has = waitForDeferred(resource.hasProperty(property, request))
+        yield has
+        has = has.getResult()
 
-        if qname in props:
+        if has:
             try:
                 prop = waitForDeferred(resource.readProperty(qname, request))
                 yield prop

Modified: CalendarServer/branches/users/wsanchez/deployment/twistedcaldav/static.py
===================================================================
--- CalendarServer/branches/users/wsanchez/deployment/twistedcaldav/static.py	2009-03-22 22:06:06 UTC (rev 3910)
+++ CalendarServer/branches/users/wsanchez/deployment/twistedcaldav/static.py	2009-03-23 16:31:18 UTC (rev 3911)
@@ -274,7 +274,7 @@
         return calendar_data
 
     def iCalendarXML(self, name=None):
-        return caldavxml.CalendarData.fromCalendarData(self.iCalendarText(name))
+        return caldavxml.CalendarData.fromCalendar(self.iCalendarText(name))
 
     def supportedPrivileges(self, request):
         # read-free-busy support on calendar collection and calendar object resources
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20090323/31060ad6/attachment.html>


More information about the calendarserver-changes mailing list