[CalendarServer-changes] [5760] CalendarServer/branches/new-store/twistedcaldav

source_changes at macosforge.org source_changes at macosforge.org
Wed Jun 16 17:20:35 PDT 2010


Revision: 5760
          http://trac.macosforge.org/projects/calendarserver/changeset/5760
Author:   glyph at apple.com
Date:     2010-06-16 17:20:35 -0700 (Wed, 16 Jun 2010)
Log Message:
-----------
implicitdefaultcalendar fixes

Modified Paths:
--------------
    CalendarServer/branches/new-store/twistedcaldav/schedule.py
    CalendarServer/branches/new-store/twistedcaldav/storebridge.py

Modified: CalendarServer/branches/new-store/twistedcaldav/schedule.py
===================================================================
--- CalendarServer/branches/new-store/twistedcaldav/schedule.py	2010-06-17 00:05:29 UTC (rev 5759)
+++ CalendarServer/branches/new-store/twistedcaldav/schedule.py	2010-06-17 00:20:35 UTC (rev 5760)
@@ -130,7 +130,7 @@
                 values = []
                 for cal in self.parent._newStoreCalendarHome.calendars():
                     prop = cal.properties().get(PropertyName.fromString(ScheduleCalendarTransp.sname())) 
-                    if prop is None or prop == ScheduleCalendarTransp(Opaque()):
+                    if prop == ScheduleCalendarTransp(Opaque()):
                         values.append(HRef(joinURL(top, cal.name())))
                 returnValue(CalendarFreeBusySet(*values))
         elif qname == (caldav_namespace, "schedule-default-calendar-URL"):
@@ -231,16 +231,32 @@
         First see if "calendar" exists in the calendar home and pick that. Otherwise
         create "calendar" in the calendar home.
         """
-        
         calendarHomeURL = self.parent.url()
-        defaultCalendarURL = (yield joinURL(calendarHomeURL, "calendar"))
+        defaultCalendarURL = joinURL(calendarHomeURL, "calendar")
         defaultCalendar = (yield request.locateResource(defaultCalendarURL))
         if defaultCalendar is None or not defaultCalendar.exists():
-            self.parent.provisionDefaultCalendars()
-        else:
-            self.writeDeadProperty(caldavxml.ScheduleDefaultCalendarURL(davxml.HRef(defaultCalendarURL)))
-        returnValue(caldavxml.ScheduleDefaultCalendarURL(davxml.HRef(defaultCalendarURL)))
+            getter = iter(self.parent._newStoreCalendarHome)
+            # FIXME: the back-end should re-provision a default calendar here.
+            # Really, the dead property shouldn't be necessary, and this should
+            # be entirely computed by a back-end method like 'defaultCalendar()'
+            try:
+                aCalendar = getter.next()
+            except StopIteration:
+                raise RuntimeError("No calendars at all.")
 
+            # That won't help...
+            # self.parent.provisionDefaultCalendars()
+            defaultCalendarURL = joinURL(calendarHomeURL, aCalendar.name())
+
+        self.writeDeadProperty(
+            caldavxml.ScheduleDefaultCalendarURL(
+                davxml.HRef(defaultCalendarURL)
+            )
+        )
+        returnValue(caldavxml.ScheduleDefaultCalendarURL(
+            davxml.HRef(defaultCalendarURL))
+        )
+
 class ScheduleOutboxResource (CalendarSchedulingCollectionResource):
     """
     CalDAV schedule Outbox resource.

Modified: CalendarServer/branches/new-store/twistedcaldav/storebridge.py
===================================================================
--- CalendarServer/branches/new-store/twistedcaldav/storebridge.py	2010-06-17 00:05:29 UTC (rev 5759)
+++ CalendarServer/branches/new-store/twistedcaldav/storebridge.py	2010-06-17 00:20:35 UTC (rev 5760)
@@ -236,6 +236,7 @@
         Moving a calendar collection is allowed for the purposes of changing
         that calendar's name.
         """
+        defaultCalendar = (yield self.isDefaultCalendar(request))
         # FIXME: created to fix CDT test, no unit tests yet
         sourceURI = request.uri
         destinationURI = urlsplit(request.headers.getHeader("destination"))[2]
@@ -250,6 +251,8 @@
                                          self._newStoreParentHome)
         del self._newStoreCalendar
         self.__class__ = ProtoCalendarCollectionFile
+        self.movedCalendar(request, defaultCalendar,
+                           destination, destinationURI)
         returnValue(NO_CONTENT)
 
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100616/8a97af56/attachment-0001.html>


More information about the calendarserver-changes mailing list