[Checkins] SVN: Products.CMFCore/branches/matthewwilkes-traversalprecedence/Products/CMFCore/traverser.py Use IAcquirer check to determine if object should be re-wrapped, not try...except

Matthew Wilkes matthew at matthewwilkes.co.uk
Mon Aug 17 08:25:32 EDT 2009


Log message for revision 102878:
  Use IAcquirer check to determine if object should be re-wrapped, not try...except

Changed:
  U   Products.CMFCore/branches/matthewwilkes-traversalprecedence/Products/CMFCore/traverser.py

-=-
Modified: Products.CMFCore/branches/matthewwilkes-traversalprecedence/Products/CMFCore/traverser.py
===================================================================
--- Products.CMFCore/branches/matthewwilkes-traversalprecedence/Products/CMFCore/traverser.py	2009-08-17 12:23:36 UTC (rev 102877)
+++ Products.CMFCore/branches/matthewwilkes-traversalprecedence/Products/CMFCore/traverser.py	2009-08-17 12:25:32 UTC (rev 102878)
@@ -19,6 +19,7 @@
 
 from zExceptions import Forbidden
 
+from Acquisition import aq_base
 from Acquisition.interfaces import IAcquirer
 
 from zope.interface import implements, Interface
@@ -55,13 +56,9 @@
                 # this is not a direct object
                 pass
             else:
-                try:
-                    subobject = subobject.aq_base.__of__(object)
-                except (AttributeError, TypeError):
-                    pass # We can't aq wrap whatever this is
-                
+                if IAcquirer.providedBy(subobject):
+                    subobject = aq_base(subobject).__of__(object)
             
-            
             if subobject is None:
                 # We try to fall back to a view:
                 subobject = queryMultiAdapter((object, request), Interface,



More information about the Checkins mailing list