[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