[CalendarServer-changes] [2500] CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py

source_changes at macosforge.org source_changes at macosforge.org
Sun May 25 15:20:34 PDT 2008


Revision: 2500
          http://trac.macosforge.org/projects/calendarserver/changeset/2500
Author:   wsanchez at apple.com
Date:     2008-05-25 15:20:33 -0700 (Sun, 25 May 2008)

Log Message:
-----------
Unroll defgen

Modified Paths:
--------------
    CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py

Modified: CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py	2008-05-25 21:35:05 UTC (rev 2499)
+++ CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py	2008-05-25 22:20:33 UTC (rev 2500)
@@ -197,54 +197,56 @@
     # HTTP
     ##
 
-    @deferredGenerator
     def renderDirectoryBody(self, request):
         # FIXME: Too much code duplication here from principal.py
         from twistedcaldav.directory.principal import format_list, format_principals, format_link
 
-        d = waitForDeferred(super(CalendarUserProxyPrincipalResource, self).renderDirectoryBody(request))
-        yield d
-        output = d.getResult()
+        closure = {}
+
+        d = super(CalendarUserProxyPrincipalResource, self).renderDirectoryBody(request)
+        d.addCallback(lambda output: closure.setdefault("output", output))
+
+        d.addCallback(lambda _: self.groupMembers())
+        d.addCallback(lambda members: closure.setdefault("members", members))
+
+        d.addCallback(lambda _: self.groupMemberships())
+        d.addCallback(lambda memberships: closure.setdefault("memberships", memberships))
         
-        d = waitForDeferred(self.groupMembers())
-        yield d
-        members = d.getResult()
-        
-        d = waitForDeferred(self.groupMemberships())
-        yield d
-        memberships = d.getResult() 
-        
-        yield "".join((
-            """<div class="directory-listing">"""
-            """<h1>Principal Details</h1>"""
-            """<pre><blockquote>"""
-            """Directory Information\n"""
-            """---------------------\n"""
-            """Directory GUID: %s\n"""         % (self.parent.record.service.guid,),
-            """Realm: %s\n"""                  % (self.parent.record.service.realmName,),
-            """\n"""
-            """Parent Principal Information\n"""
-            """---------------------\n"""
-            """GUID: %s\n"""                   % (self.parent.record.guid,),
-            """Record type: %s\n"""            % (self.parent.record.recordType,),
-            """Short name: %s\n"""             % (self.parent.record.shortName,),
-            """Full name: %s\n"""              % (self.parent.record.fullName,),
-            """Principal UID: %s\n"""          % (self.parent.principalUID(),),
-            """Principal URL: %s\n"""          % (format_link(self.parent.principalURL()),),
-            """\n"""
-            """Proxy Principal Information\n"""
-            """---------------------\n"""
-           #"""GUID: %s\n"""                   % (self.guid,),
-            """Principal UID: %s\n"""          % (self.principalUID(),),
-            """Principal URL: %s\n"""          % (format_link(self.principalURL()),),
-            """\nAlternate URIs:\n"""          , format_list(format_link(u) for u in self.alternateURIs()),
-            """\nGroup members (%s):\n""" % ({False:"Locked", True:"Editable"}[self.hasEditableMembership()])
-                                               , format_principals(members),
-            """\nGroup memberships:\n"""       , format_principals(memberships),
-            """</pre></blockquote></div>""",
-            output
-        ))
+        d.addCallback(
+            lambda _: "".join((
+                """<div class="directory-listing">"""
+                """<h1>Principal Details</h1>"""
+                """<pre><blockquote>"""
+                """Directory Information\n"""
+                """---------------------\n"""
+                """Directory GUID: %s\n"""         % (self.parent.record.service.guid,),
+                """Realm: %s\n"""                  % (self.parent.record.service.realmName,),
+                """\n"""
+                """Parent Principal Information\n"""
+                """---------------------\n"""
+                """GUID: %s\n"""                   % (self.parent.record.guid,),
+                """Record type: %s\n"""            % (self.parent.record.recordType,),
+                """Short name: %s\n"""             % (self.parent.record.shortName,),
+                """Full name: %s\n"""              % (self.parent.record.fullName,),
+                """Principal UID: %s\n"""          % (self.parent.principalUID(),),
+                """Principal URL: %s\n"""          % (format_link(self.parent.principalURL()),),
+                """\n"""
+                """Proxy Principal Information\n"""
+                """---------------------\n"""
+               #"""GUID: %s\n"""                   % (self.guid,),
+                """Principal UID: %s\n"""          % (self.principalUID(),),
+                """Principal URL: %s\n"""          % (format_link(self.principalURL()),),
+                """\nAlternate URIs:\n"""          , format_list(format_link(u) for u in self.alternateURIs()),
+                """\nGroup members (%s):\n""" % ({False:"Locked", True:"Editable"}[self.hasEditableMembership()])
+                                                   , format_principals(closure["members"]),
+                """\nGroup memberships:\n"""       , format_principals(closure["memberships"]),
+                """</pre></blockquote></div>""",
+                closure["output"]
+            ))
+        )
 
+        return d
+
     ##
     # DAV
     ##

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20080525/0a6d4571/attachment.htm 


More information about the calendarserver-changes mailing list