Revision: 4285 http://trac.macosforge.org/projects/calendarserver/changeset/4285 Author: wsanchez@apple.com Date: 2009-05-15 16:15:45 -0700 (Fri, 15 May 2009) Log Message: ----------- Pulled up r4272 from trunk. Modified Paths: -------------- CalendarServer/branches/release/CalendarServer-2.2-dev/lib-patches/vobject/vobject.icalendar.patch CalendarServer/branches/release/CalendarServer-2.2-dev/twistedcaldav/ical.py CalendarServer/branches/release/CalendarServer-2.2-dev/twistedcaldav/scheduling/icaldiff.py Property Changed: ---------------- CalendarServer/branches/release/CalendarServer-2.2-dev/ CalendarServer/branches/release/CalendarServer-2.2-dev/doc/Extensions/caldav-privatecomments.txt CalendarServer/branches/release/CalendarServer-2.2-dev/doc/Extensions/caldav-privatecomments.xml CalendarServer/branches/release/CalendarServer-2.2-dev/doc/Extensions/caldav-schedulingchanges.txt CalendarServer/branches/release/CalendarServer-2.2-dev/doc/Extensions/caldav-schedulingchanges.xml Property changes on: CalendarServer/branches/release/CalendarServer-2.2-dev ___________________________________________________________________ Modified: svn:mergeinfo - /CalendarServer/branches/users/sagen/resource-delegates-4038:4040-4067 /CalendarServer/branches/users/sagen/resource-delegates-4066:4068-4075 /CalendarServer/trunk:4105-4107,4113-4116,4121-4124,4137-4139,4141-4144,4154-4159,4163-4167,4172,4174-4176,4178-4180,4191,4194,4197-4202,4205-4206,4209,4213,4215-4216,4219-4220,4222,4224,4227,4231-4233,4237,4240-4242,4248,4250-4251,4257-4262,4264,4270-4271,4273,4275-4276,4279 + /CalendarServer/branches/users/sagen/resource-delegates-4038:4040-4067 /CalendarServer/branches/users/sagen/resource-delegates-4066:4068-4075 /CalendarServer/trunk:4105-4107,4113-4116,4121-4124,4137-4139,4141-4144,4154-4159,4163-4167,4172,4174-4176,4178-4180,4191,4194,4197-4202,4205-4206,4209,4213,4215-4216,4219-4220,4222,4224,4227,4231-4233,4237,4240-4242,4248,4250-4251,4257-4262,4264,4270-4273,4275-4276,4279 Property changes on: CalendarServer/branches/release/CalendarServer-2.2-dev/doc/Extensions/caldav-privatecomments.txt ___________________________________________________________________ Modified: svn:mergeinfo - /CalendarServer/branches/users/cdaboo/attendee-comments-2886/doc/Extensions/caldav-privatecomments-00.txt:2887-2910 /CalendarServer/branches/users/cdaboo/byebye-serviceslocator-2937/doc/Extensions/caldav-privatecomments-00.txt:2938-3097 /CalendarServer/branches/users/cdaboo/implicit-if-match-3306/doc/Extensions/caldav-privatecomments.txt:3307-3349 /CalendarServer/branches/users/cdaboo/implicitauto-2947/doc/Extensions/caldav-privatecomments-00.txt:2948-2989 /CalendarServer/branches/users/cdaboo/location-partial-accept-3573/doc/Extensions/caldav-privatecomments.txt:3574-3581 /CalendarServer/branches/users/sagen/resource-delegates-4038/doc/Extensions/caldav-privatecomments.txt:4040-4067 /CalendarServer/branches/users/sagen/resource-delegates-4066/doc/Extensions/caldav-privatecomments.txt:4068-4075 /CalendarServer/trunk/doc/Extensions/caldav-privatecomments.txt:4105-4107,4113-4116,4121-4124,4137-4139,4141-4144,4154-4159,4163-4167,4172,4174-4176,4178-4180,4191,4194,4197-4202,4209,4213,4222,4227,4231-4233,4237,4240-4242,4248,4250-4251,4257-4262,4270-4271,4273,4275-4276,4279 + /CalendarServer/branches/users/cdaboo/attendee-comments-2886/doc/Extensions/caldav-privatecomments-00.txt:2887-2910 /CalendarServer/branches/users/cdaboo/byebye-serviceslocator-2937/doc/Extensions/caldav-privatecomments-00.txt:2938-3097 /CalendarServer/branches/users/cdaboo/implicit-if-match-3306/doc/Extensions/caldav-privatecomments.txt:3307-3349 /CalendarServer/branches/users/cdaboo/implicitauto-2947/doc/Extensions/caldav-privatecomments-00.txt:2948-2989 /CalendarServer/branches/users/cdaboo/location-partial-accept-3573/doc/Extensions/caldav-privatecomments.txt:3574-3581 /CalendarServer/branches/users/sagen/resource-delegates-4038/doc/Extensions/caldav-privatecomments.txt:4040-4067 /CalendarServer/branches/users/sagen/resource-delegates-4066/doc/Extensions/caldav-privatecomments.txt:4068-4075 /CalendarServer/trunk/doc/Extensions/caldav-privatecomments.txt:4105-4107,4113-4116,4121-4124,4137-4139,4141-4144,4154-4159,4163-4167,4172,4174-4176,4178-4180,4191,4194,4197-4202,4209,4213,4222,4227,4231-4233,4237,4240-4242,4248,4250-4251,4257-4262,4270-4273,4275-4276,4279 Property changes on: CalendarServer/branches/release/CalendarServer-2.2-dev/doc/Extensions/caldav-privatecomments.xml ___________________________________________________________________ Modified: svn:mergeinfo - /CalendarServer/branches/users/cdaboo/attendee-comments-2886/doc/Extensions/caldav-privatecomments-00.xml:2887-2910 /CalendarServer/branches/users/cdaboo/byebye-serviceslocator-2937/doc/Extensions/caldav-privatecomments-00.xml:2938-3097 /CalendarServer/branches/users/cdaboo/implicit-if-match-3306/doc/Extensions/caldav-privatecomments.xml:3307-3349 /CalendarServer/branches/users/cdaboo/implicitauto-2947/doc/Extensions/caldav-privatecomments-00.xml:2948-2989 /CalendarServer/branches/users/cdaboo/location-partial-accept-3573/doc/Extensions/caldav-privatecomments.xml:3574-3581 /CalendarServer/branches/users/sagen/resource-delegates-4038/doc/Extensions/caldav-privatecomments.xml:4040-4067 /CalendarServer/branches/users/sagen/resource-delegates-4066/doc/Extensions/caldav-privatecomments.xml:4068-4075 /CalendarServer/trunk/doc/Extensions/caldav-privatecomments.xml:4105-4107,4113-4116,4121-4124,4137-4139,4141-4144,4154-4159,4163-4167,4172,4174-4176,4178-4180,4191,4194,4197-4202,4209,4213,4222,4227,4231-4233,4237,4240-4242,4248,4250-4251,4257-4262,4270-4271,4273,4275-4276,4279 + /CalendarServer/branches/users/cdaboo/attendee-comments-2886/doc/Extensions/caldav-privatecomments-00.xml:2887-2910 /CalendarServer/branches/users/cdaboo/byebye-serviceslocator-2937/doc/Extensions/caldav-privatecomments-00.xml:2938-3097 /CalendarServer/branches/users/cdaboo/implicit-if-match-3306/doc/Extensions/caldav-privatecomments.xml:3307-3349 /CalendarServer/branches/users/cdaboo/implicitauto-2947/doc/Extensions/caldav-privatecomments-00.xml:2948-2989 /CalendarServer/branches/users/cdaboo/location-partial-accept-3573/doc/Extensions/caldav-privatecomments.xml:3574-3581 /CalendarServer/branches/users/sagen/resource-delegates-4038/doc/Extensions/caldav-privatecomments.xml:4040-4067 /CalendarServer/branches/users/sagen/resource-delegates-4066/doc/Extensions/caldav-privatecomments.xml:4068-4075 /CalendarServer/trunk/doc/Extensions/caldav-privatecomments.xml:4105-4107,4113-4116,4121-4124,4137-4139,4141-4144,4154-4159,4163-4167,4172,4174-4176,4178-4180,4191,4194,4197-4202,4209,4213,4222,4227,4231-4233,4237,4240-4242,4248,4250-4251,4257-4262,4270-4273,4275-4276,4279 Property changes on: CalendarServer/branches/release/CalendarServer-2.2-dev/doc/Extensions/caldav-schedulingchanges.txt ___________________________________________________________________ Modified: svn:mergeinfo - /CalendarServer/branches/users/cdaboo/attendee-comments-2886/doc/Extensions/caldav-schedulingchanges-01.txt:2887-2910 /CalendarServer/branches/users/cdaboo/byebye-serviceslocator-2937/doc/Extensions/caldav-schedulingchanges-01.txt:2938-3097 /CalendarServer/branches/users/cdaboo/implicit-if-match-3306/doc/Extensions/caldav-schedulingchanges.txt:3307-3349 /CalendarServer/branches/users/cdaboo/implicitauto-2947/doc/Extensions/caldav-schedulingchanges-01.txt:2948-2989 /CalendarServer/branches/users/cdaboo/location-partial-accept-3573/doc/Extensions/caldav-schedulingchanges.txt:3574-3581 /CalendarServer/branches/users/sagen/resource-delegates-4038/doc/Extensions/caldav-schedulingchanges.txt:4040-4067 /CalendarServer/branches/users/sagen/resource-delegates-4066/doc/Extensions/caldav-schedulingchanges.txt:4068-4075 /CalendarServer/trunk/doc/Extensions/caldav-schedulingchanges.txt:4105-4107,4113-4116,4121-4124,4137-4139,4141-4144,4154-4159,4163-4167,4172,4174-4176,4178-4180,4191,4194,4197-4202,4209,4213,4222,4227,4231-4233,4237,4240-4242,4248,4250-4251,4257-4262,4270-4271,4273,4275-4276,4279 + /CalendarServer/branches/users/cdaboo/attendee-comments-2886/doc/Extensions/caldav-schedulingchanges-01.txt:2887-2910 /CalendarServer/branches/users/cdaboo/byebye-serviceslocator-2937/doc/Extensions/caldav-schedulingchanges-01.txt:2938-3097 /CalendarServer/branches/users/cdaboo/implicit-if-match-3306/doc/Extensions/caldav-schedulingchanges.txt:3307-3349 /CalendarServer/branches/users/cdaboo/implicitauto-2947/doc/Extensions/caldav-schedulingchanges-01.txt:2948-2989 /CalendarServer/branches/users/cdaboo/location-partial-accept-3573/doc/Extensions/caldav-schedulingchanges.txt:3574-3581 /CalendarServer/branches/users/sagen/resource-delegates-4038/doc/Extensions/caldav-schedulingchanges.txt:4040-4067 /CalendarServer/branches/users/sagen/resource-delegates-4066/doc/Extensions/caldav-schedulingchanges.txt:4068-4075 /CalendarServer/trunk/doc/Extensions/caldav-schedulingchanges.txt:4105-4107,4113-4116,4121-4124,4137-4139,4141-4144,4154-4159,4163-4167,4172,4174-4176,4178-4180,4191,4194,4197-4202,4209,4213,4222,4227,4231-4233,4237,4240-4242,4248,4250-4251,4257-4262,4270-4273,4275-4276,4279 Property changes on: CalendarServer/branches/release/CalendarServer-2.2-dev/doc/Extensions/caldav-schedulingchanges.xml ___________________________________________________________________ Modified: svn:mergeinfo - /CalendarServer/branches/users/cdaboo/attendee-comments-2886/doc/Extensions/caldav-schedulingchanges-01.xml:2887-2910 /CalendarServer/branches/users/cdaboo/byebye-serviceslocator-2937/doc/Extensions/caldav-schedulingchanges-01.xml:2938-3097 /CalendarServer/branches/users/cdaboo/implicit-if-match-3306/doc/Extensions/caldav-schedulingchanges.xml:3307-3349 /CalendarServer/branches/users/cdaboo/implicitauto-2947/doc/Extensions/caldav-schedulingchanges-01.xml:2948-2989 /CalendarServer/branches/users/cdaboo/location-partial-accept-3573/doc/Extensions/caldav-schedulingchanges.xml:3574-3581 /CalendarServer/branches/users/sagen/resource-delegates-4038/doc/Extensions/caldav-schedulingchanges.xml:4040-4067 /CalendarServer/branches/users/sagen/resource-delegates-4066/doc/Extensions/caldav-schedulingchanges.xml:4068-4075 /CalendarServer/trunk/doc/Extensions/caldav-schedulingchanges.xml:4105-4107,4113-4116,4121-4124,4137-4139,4141-4144,4154-4159,4163-4167,4172,4174-4176,4178-4180,4191,4194,4197-4202,4209,4213,4222,4227,4231-4233,4237,4240-4242,4248,4250-4251,4257-4262,4270-4271,4273,4275-4276,4279 + /CalendarServer/branches/users/cdaboo/attendee-comments-2886/doc/Extensions/caldav-schedulingchanges-01.xml:2887-2910 /CalendarServer/branches/users/cdaboo/byebye-serviceslocator-2937/doc/Extensions/caldav-schedulingchanges-01.xml:2938-3097 /CalendarServer/branches/users/cdaboo/implicit-if-match-3306/doc/Extensions/caldav-schedulingchanges.xml:3307-3349 /CalendarServer/branches/users/cdaboo/implicitauto-2947/doc/Extensions/caldav-schedulingchanges-01.xml:2948-2989 /CalendarServer/branches/users/cdaboo/location-partial-accept-3573/doc/Extensions/caldav-schedulingchanges.xml:3574-3581 /CalendarServer/branches/users/sagen/resource-delegates-4038/doc/Extensions/caldav-schedulingchanges.xml:4040-4067 /CalendarServer/branches/users/sagen/resource-delegates-4066/doc/Extensions/caldav-schedulingchanges.xml:4068-4075 /CalendarServer/trunk/doc/Extensions/caldav-schedulingchanges.xml:4105-4107,4113-4116,4121-4124,4137-4139,4141-4144,4154-4159,4163-4167,4172,4174-4176,4178-4180,4191,4194,4197-4202,4209,4213,4222,4227,4231-4233,4237,4240-4242,4248,4250-4251,4257-4262,4270-4273,4275-4276,4279 Modified: CalendarServer/branches/release/CalendarServer-2.2-dev/lib-patches/vobject/vobject.icalendar.patch =================================================================== --- CalendarServer/branches/release/CalendarServer-2.2-dev/lib-patches/vobject/vobject.icalendar.patch 2009-05-15 23:14:51 UTC (rev 4284) +++ CalendarServer/branches/release/CalendarServer-2.2-dev/lib-patches/vobject/vobject.icalendar.patch 2009-05-15 23:15:45 UTC (rev 4285) @@ -21,6 +21,15 @@ rule._until = until +@@ -473,7 +485,7 @@ + untilSerialize = lambda x: dateTimeToString(x, True) + + for name in DATESANDRULES: +- if hasattr(self.contents, name): ++ if name in self.contents: + del self.contents[name] + setlist = getattr(rruleset, '_' + name) + if name in DATENAMES: @@ -1661,9 +1673,10 @@ else: current.append(char) Modified: CalendarServer/branches/release/CalendarServer-2.2-dev/twistedcaldav/ical.py =================================================================== --- CalendarServer/branches/release/CalendarServer-2.2-dev/twistedcaldav/ical.py 2009-05-15 23:14:51 UTC (rev 4284) +++ CalendarServer/branches/release/CalendarServer-2.2-dev/twistedcaldav/ical.py 2009-05-15 23:15:45 UTC (rev 4285) @@ -1848,7 +1848,7 @@ Remove all X- properties except the specified ones """ - if do_subcomponents: + if do_subcomponents and self.name() == "VCALENDAR": for component in self.subcomponents(): component.removeXProperties(keep_properties, remove_x_parameters, do_subcomponents=False) else: @@ -1868,12 +1868,13 @@ Remove all specified property parameters """ - assert self.name() == "VCALENDAR", "Not a calendar: %r" % (self,) - - for component in self.subcomponents(): - if component.name() == "VTIMEZONE": - continue - props = component.properties(property) + if self.name() == "VCALENDAR": + for component in self.subcomponents(): + if component.name() == "VTIMEZONE": + continue + component.removePropertyParameters(property, params) + else: + props = self.properties(property) for prop in props: for param in params: try: @@ -1886,12 +1887,13 @@ Remove all specified property parameters """ - assert self.name() == "VCALENDAR", "Not a calendar: %r" % (self,) - - for component in self.subcomponents(): - if component.name() == "VTIMEZONE": - continue - props = component.properties(property) + if self.name() == "VCALENDAR": + for component in self.subcomponents(): + if component.name() == "VTIMEZONE": + continue + component.removePropertyParametersByValue(property, paramvalues) + else: + props = self.properties(property) for prop in props: for param, value in paramvalues: try: @@ -2006,33 +2008,38 @@ to do comparisons between two ical objects. """ - assert self.name() == "VCALENDAR", "Not a calendar: %r" % (self,) - - for component in self.subcomponents(): - if component.name() == "VTIMEZONE": - continue - for prop in tuple(component.properties(propname)): + if self.name() == "VCALENDAR": + for component in self.subcomponents(): + if component.name() == "VTIMEZONE": + continue + component.normalizePropertyValueLists(propname) + else: + for prop in tuple(self.properties(propname)): if type(prop.value()) is list and len(prop.value()) > 1: - component.removeProperty(prop) + self.removeProperty(prop) for value in prop.value(): - component.addProperty(Property(propname, [value,])) + self.addProperty(Property(propname, [value,])) def normalizeAttachments(self): """ Remove any ATTACH properties that relate to a dropbox. """ - # Do to all sub-components - for component in self.subcomponents(): - dropboxPrefix = component.propertyValue("X-APPLE-DROPBOX") + if self.name() == "VCALENDAR": + for component in self.subcomponents(): + if component.name() == "VTIMEZONE": + continue + component.normalizeAttachments() + else: + dropboxPrefix = self.propertyValue("X-APPLE-DROPBOX") if dropboxPrefix is None: - continue - for attachment in tuple(component.properties("ATTACH")): + return + for attachment in tuple(self.properties("ATTACH")): valueType = attachment.paramValue("VALUE") if valueType in (None, "URI"): dataValue = attachment.value() if dataValue.find(dropboxPrefix) != -1: - component.removeProperty(attachment) + self.removeProperty(attachment) def normalizeCalendarUserAddresses(self, lookupFunction): """ Modified: CalendarServer/branches/release/CalendarServer-2.2-dev/twistedcaldav/scheduling/icaldiff.py =================================================================== --- CalendarServer/branches/release/CalendarServer-2.2-dev/twistedcaldav/scheduling/icaldiff.py 2009-05-15 23:14:51 UTC (rev 4284) +++ CalendarServer/branches/release/CalendarServer-2.2-dev/twistedcaldav/scheduling/icaldiff.py 2009-05-15 23:15:45 UTC (rev 4285) @@ -604,10 +604,6 @@ and PARTSTAT parameters that are different. """ - # Do straight comparison without alarms - self.calendar1 = self._attendeeDuplicateAndNormalize(self.calendar1) - self.calendar2 = self._attendeeDuplicateAndNormalize(self.calendar2) - # First get uid/rid map of components def mapComponents(calendar): map = {} @@ -651,14 +647,14 @@ return rids - def _attendeeDuplicateAndNormalize(self, calendar): - calendar = calendar.duplicate() - calendar.normalizePropertyValueLists("EXDATE") - calendar.removePropertyParameters("ORGANIZER", ("SCHEDULE-STATUS",)) - calendar.normalizeAll() - calendar.normalizeAttachments() - iTipGenerator.prepareSchedulingMessage(calendar, reply=True) - return calendar + def _attendeeDuplicateAndNormalize(self, comp): + comp = comp.duplicate() + comp.normalizePropertyValueLists("EXDATE") + comp.removePropertyParameters("ORGANIZER", ("SCHEDULE-STATUS",)) + comp.normalizeAll() + comp.normalizeAttachments() + iTipGenerator.prepareSchedulingMessage(comp, reply=True) + return comp def _diffComponents(self, comp1, comp2, rids): @@ -668,6 +664,10 @@ log.debug("Component names are different: '%s' and '%s'" % (comp1.name(), comp2.name())) return + # Duplicate then normalize for comparison + comp1 = self._attendeeDuplicateAndNormalize(comp1) + comp2 = self._attendeeDuplicateAndNormalize(comp2) + # Diff all the properties comp1.transformAllFromNative() comp2.transformAllFromNative()