Revision: 3649 http://trac.macosforge.org/projects/calendarserver/changeset/3649 Author: cdaboo@apple.com Date: 2009-02-08 10:21:54 -0800 (Sun, 08 Feb 2009) Log Message: ----------- Server now sets TRANSPARENT for NEEDS-ACTION attendee events. Modified Paths: -------------- CalendarServer/trunk/run CalendarServer/trunk/twistedcaldav/scheduling/itip.py Modified: CalendarServer/trunk/run =================================================================== --- CalendarServer/trunk/run 2009-02-08 18:19:59 UTC (rev 3648) +++ CalendarServer/trunk/run 2009-02-08 18:21:54 UTC (rev 3649) @@ -692,7 +692,7 @@ caldavtester="${top}/CalDAVTester"; -svn_get "CalDAVTester" "${caldavtester}" "${svn_uri_base}/CalDAVTester/trunk" 3640; +svn_get "CalDAVTester" "${caldavtester}" "${svn_uri_base}/CalDAVTester/trunk" 3648; # # Calendar Server Modified: CalendarServer/trunk/twistedcaldav/scheduling/itip.py =================================================================== --- CalendarServer/trunk/twistedcaldav/scheduling/itip.py 2009-02-08 18:19:59 UTC (rev 3648) +++ CalendarServer/trunk/twistedcaldav/scheduling/itip.py 2009-02-08 18:21:54 UTC (rev 3649) @@ -1,5 +1,5 @@ ## -# Copyright (c) 2006-2007 Apple Inc. All rights reserved. +# Copyright (c) 2006-2009 Apple Inc. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -67,8 +67,8 @@ if method: calendar.removeProperty(method) - if config.Scheduling.CalDAV.OldDraftCompatibility and recipient and not autoprocessing: - iTipProcessing.fixForiCal3(calendar.subcomponents(), recipient) + if recipient and not autoprocessing: + iTipProcessing.fixForiCal3(calendar.subcomponents(), recipient, config.Scheduling.CalDAV.OldDraftCompatibility) return calendar @@ -135,8 +135,8 @@ component = component.duplicate() iTipProcessing.transferItems(calendar, master_valarms, private_comments, component, remove_matched=True) calendar.addComponent(component) - if config.Scheduling.CalDAV.OldDraftCompatibility and recipient and not autoprocessing: - iTipProcessing.fixForiCal3((component,), recipient) + if recipient and not autoprocessing: + iTipProcessing.fixForiCal3((component,), recipient, config.Scheduling.CalDAV.OldDraftCompatibility) # Write back the modified object return calendar, props_changed, rids @@ -409,9 +409,10 @@ [to_component.addProperty(comment) for comment in private_comments] @staticmethod - def fixForiCal3(components, recipient): + def fixForiCal3(components, recipient, compatibilityMode): # For each component where the ATTENDEE property of the recipient has PARTSTAT # NEEDS-ACTION we need to add X-APPLE-NEEDS-REPLY:TRUE + # We also add TRANSP:TRANSPARENT for component in components: if component.name() == "VTIMEZONE": continue @@ -419,7 +420,9 @@ if attendee: partstat = attendee.params().get("PARTSTAT", ("NEEDS-ACTION",))[0] if partstat == "NEEDS-ACTION": - component.addProperty(Property("X-APPLE-NEEDS-REPLY", "TRUE")) + if compatibilityMode: + component.addProperty(Property("X-APPLE-NEEDS-REPLY", "TRUE")) + component.replaceProperty(Property("TRANSP", "TRANSPARENT")) class iTipGenerator(object):