[CalendarServer-changes] [14136] CalendarServer/branches/release/CalendarServer-5.3-dev

source_changes at macosforge.org source_changes at macosforge.org
Thu Nov 6 08:28:29 PST 2014


Revision: 14136
          http://trac.calendarserver.org//changeset/14136
Author:   cdaboo at apple.com
Date:     2014-11-06 08:28:29 -0800 (Thu, 06 Nov 2014)
Log Message:
-----------
Make sure attendees can EXDATE an invite that the organizer has deleted.

Modified Paths:
--------------
    CalendarServer/branches/release/CalendarServer-5.3-dev/twistedcaldav/datafilters/hiddeninstance.py
    CalendarServer/branches/release/CalendarServer-5.3-dev/twistedcaldav/storebridge.py
    CalendarServer/branches/release/CalendarServer-5.3-dev/txdav/caldav/datastore/scheduling/implicit.py
    CalendarServer/branches/release/CalendarServer-5.3-dev/txdav/caldav/datastore/scheduling/itip.py

Modified: CalendarServer/branches/release/CalendarServer-5.3-dev/twistedcaldav/datafilters/hiddeninstance.py
===================================================================
--- CalendarServer/branches/release/CalendarServer-5.3-dev/twistedcaldav/datafilters/hiddeninstance.py	2014-11-06 16:24:40 UTC (rev 14135)
+++ CalendarServer/branches/release/CalendarServer-5.3-dev/twistedcaldav/datafilters/hiddeninstance.py	2014-11-06 16:28:29 UTC (rev 14136)
@@ -15,7 +15,7 @@
 ##
 
 from twistedcaldav.datafilters.filter import CalendarFilter
-from twistedcaldav.ical import Component, ignoredComponents, Property
+from twistedcaldav.ical import Component, ignoredComponents
 
 __all__ = [
     "HiddenInstanceFilter",
@@ -50,10 +50,7 @@
 
                 # Add EXDATE and try to preserve same timezone as DTSTART
                 if master is not None:
-                    dtstart = master.getProperty("DTSTART")
-                    if dtstart is not None and not dtstart.value().isDateOnly() and dtstart.value().local():
-                        rid.adjustTimezone(dtstart.value().getTimezone())
-                    master.addProperty(Property("EXDATE", [rid, ]))
+                    master.addExdate(rid)
 
         return ical
 

Modified: CalendarServer/branches/release/CalendarServer-5.3-dev/twistedcaldav/storebridge.py
===================================================================
--- CalendarServer/branches/release/CalendarServer-5.3-dev/twistedcaldav/storebridge.py	2014-11-06 16:24:40 UTC (rev 14135)
+++ CalendarServer/branches/release/CalendarServer-5.3-dev/twistedcaldav/storebridge.py	2014-11-06 16:28:29 UTC (rev 14136)
@@ -2825,7 +2825,7 @@
             except ResourceDeletedError:
                 # This is OK - it just means the server deleted the resource during the PUT. We make it look
                 # like the PUT succeeded.
-                response = responsecode.CREATED if self.exists() else responsecode.NO_CONTENT
+                response = responsecode.NO_CONTENT if self.exists() else responsecode.CREATED
 
                 # Re-initialize to get stuff setup again now we have no object
                 self._initializeWithObject(None, self._newStoreParent)
@@ -3553,7 +3553,7 @@
             except ResourceDeletedError:
                 # This is OK - it just means the server deleted the resource during the PUT. We make it look
                 # like the PUT succeeded.
-                response = responsecode.CREATED if self.exists() else responsecode.NO_CONTENT
+                response = responsecode.NO_CONTENT if self.exists() else responsecode.CREATED
 
                 # Re-initialize to get stuff setup again now we have no object
                 self._initializeWithObject(None, self._newStoreParent)

Modified: CalendarServer/branches/release/CalendarServer-5.3-dev/txdav/caldav/datastore/scheduling/implicit.py
===================================================================
--- CalendarServer/branches/release/CalendarServer-5.3-dev/txdav/caldav/datastore/scheduling/implicit.py	2014-11-06 16:24:40 UTC (rev 14135)
+++ CalendarServer/branches/release/CalendarServer-5.3-dev/txdav/caldav/datastore/scheduling/implicit.py	2014-11-06 16:28:29 UTC (rev 14136)
@@ -1193,9 +1193,13 @@
                 if doScheduling:
                     # Check to see whether all instances are CANCELLED
                     if self.calendar.hasPropertyValueInAllComponents(Property("STATUS", "CANCELLED")):
-                        log.debug("Attendee '%s' is creating CANCELLED event for missing UID: '%s' - removing entire event" % (self.attendee, self.uid,))
-                        self.return_status = ImplicitScheduler.STATUS_ORPHANED_CANCELLED_EVENT
-                        returnValue(None)
+                        if self.action == "create":
+                            log.debug("Attendee '{attendee}' is creating CANCELLED event for missing UID: '{uid}' - removing entire event", attendee=self.attendee, uid=self.uid)
+                            self.return_status = ImplicitScheduler.STATUS_ORPHANED_CANCELLED_EVENT
+                            returnValue(None)
+                        else:
+                            log.debug("Attendee '{attendee}' is modifying CANCELLED event for missing UID: '{uid}'", attendee=self.attendee, uid=self.uid)
+                            returnValue(None)
                     else:
                         # Check to see whether existing event is SCHEDULE-AGENT=CLIENT/NONE
                         if self.oldcalendar:

Modified: CalendarServer/branches/release/CalendarServer-5.3-dev/txdav/caldav/datastore/scheduling/itip.py
===================================================================
--- CalendarServer/branches/release/CalendarServer-5.3-dev/txdav/caldav/datastore/scheduling/itip.py	2014-11-06 16:24:40 UTC (rev 14135)
+++ CalendarServer/branches/release/CalendarServer-5.3-dev/txdav/caldav/datastore/scheduling/itip.py	2014-11-06 16:28:29 UTC (rev 14136)
@@ -313,7 +313,8 @@
 
         # If we have any EXDATEs lets add them to the existing calendar object.
         if exdates and calendar_master:
-            calendar_master.addProperty(Property("EXDATE", exdates))
+            for exdate in exdates:
+                calendar_master.addExdate(exdate)
 
         # See if there are still components in the calendar - we might have deleted the last overridden instance
         # in which case the calendar object is empty (except for VTIMEZONEs) or has only hidden components.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20141106/5d47bd9c/attachment.html>


More information about the calendarserver-changes mailing list