[CalendarServer-changes] [4298] CalendarServer/trunk/twistedcaldav/scheduling/implicit.py
source_changes at macosforge.org
source_changes at macosforge.org
Tue May 19 15:06:27 PDT 2009
Revision: 4298
http://trac.macosforge.org/projects/calendarserver/changeset/4298
Author: cdaboo at apple.com
Date: 2009-05-19 15:06:26 -0700 (Tue, 19 May 2009)
Log Message:
-----------
Don't send out cancels when a master recurrence DTSTART change occurs - that is a total
reschedule - a single REQUEST gets sent.
Modified Paths:
--------------
CalendarServer/trunk/twistedcaldav/scheduling/implicit.py
Modified: CalendarServer/trunk/twistedcaldav/scheduling/implicit.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/scheduling/implicit.py 2009-05-19 21:28:46 UTC (rev 4297)
+++ CalendarServer/trunk/twistedcaldav/scheduling/implicit.py 2009-05-19 22:06:26 UTC (rev 4298)
@@ -484,7 +484,7 @@
self.oldcalendar = self.resource.iCalendar()
# Significant change
- no_change, self.changed_rids, rsvps = self.isOrganizerChangeInsignificant()
+ no_change, self.changed_rids, rsvps, recurrence_reschedule = self.isOrganizerChangeInsignificant()
if no_change:
if rsvps:
log.debug("Implicit - organizer '%s' is re-inviting UID: '%s', attendees: %s" % (self.organizer, self.uid, ", ".join(rsvps)))
@@ -497,7 +497,8 @@
log.debug("Implicit - organizer '%s' is modifying UID: '%s'" % (self.organizer, self.uid))
# Check for removed attendees
- self.findRemovedAttendees()
+ if not recurrence_reschedule:
+ self.findRemovedAttendees()
elif self.action == "create":
log.debug("Implicit - organizer '%s' is creating UID: '%s'" % (self.organizer, self.uid))
@@ -520,6 +521,7 @@
rids = None
rsvps = None
+ recurrence_reschedule = False
differ = iCalDiff(self.oldcalendar, self.calendar, self.do_smart_merge)
no_change = differ.organizerDiff()
if not no_change:
@@ -531,6 +533,12 @@
if "ORGANIZER" in props:
checkOrganizerValue = True
rids.add(rid)
+
+ # Check to see whether a change to R-ID's happened
+ if rid == "":
+ if "RRULE" in props or "DTSTART" in props and self.calendar.masterComponent().hasProperty("RRULE"):
+ recurrence_reschedule = True
+
if checkOrganizerValue:
oldOrganizer = self.oldcalendar.getOrganizer()
newOrganizer = self.calendar.getOrganizer()
@@ -547,7 +555,7 @@
except KeyError:
pass
- return no_change, rids, rsvps
+ return no_change, rids, rsvps, recurrence_reschedule
def findRemovedAttendees(self):
"""
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20090519/9fab0509/attachment.html>
More information about the calendarserver-changes
mailing list