[4298] CalendarServer/trunk/twistedcaldav/scheduling/implicit.py
Revision: 4298 http://trac.macosforge.org/projects/calendarserver/changeset/4298 Author: cdaboo@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): """
participants (1)
-
source_changes@macosforge.org