[Erp5-report] r29763 - /erp5/trunk/products/ERP5Type/Utils.py

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Oct 16 15:55:34 CEST 2009


Author: jm
Date: Fri Oct 16 15:55:31 2009
New Revision: 29763

URL: http://svn.erp5.org?rev=29763&view=rev
Log:
Revert [29697] because such change needs to be discussed first

Modified:
    erp5/trunk/products/ERP5Type/Utils.py

Modified: erp5/trunk/products/ERP5Type/Utils.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Utils.py?rev=29763&r1=29762&r2=29763&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Utils.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Utils.py [utf8] Fri Oct 16 15:55:31 2009
@@ -1134,30 +1134,52 @@
   """
     Return a context used for evaluating a TALES expression.
   """
-  if object is None:
-    object_url = ''
+  if portal is None and object is not None:
+    portal = object.getPortalObject()
+
+  if object is None or getattr(object, 'aq_base', None) is None:
+    folder = portal
   else:
-    object_url = object.absolute_url()
-    if portal is None:
-      portal = object.getPortalObject()
+    folder = object
+    # Search up the containment hierarchy until we find an
+    # object that claims it's a folder.
+    while folder is not None:
+      if getattr(aq_base(folder), 'isPrincipiaFolderish', 0):
+        # found it.
+        break
+      else:
+        folder = aq_parent(aq_inner(folder))
 
   if portal is not None:
-    portal_url = portal.absolute_url()
-    pm = portal.portal_membership
+    pm = getToolByName(portal, 'portal_membership')
     if pm.isAnonymousUser():
       member = None
     else:
       member = pm.getAuthenticatedMember()
   else:
+    member = None
+
+  if object is None:
+    object_url = ''
+  else:
+    object_url = object.absolute_url()
+
+  if folder is None:
+    folder_url = ''
+  else:
+    folder_url = folder.absolute_url()
+
+  if portal is None:
     portal_url = ''
-    member = None
+  else:
+    portal_url = portal.absolute_url()
 
   data = {
       'object_url':   object_url,
+      'folder_url':   folder_url,
       'portal_url':   portal_url,
       'object':       object,
-      'folder':       None, # XXX to be removed when
-                            #     ERP5Type.Core.ActionInformation is cleaned up
+      'folder':       folder,
       'portal':       portal,
       'nothing':      None,
       'request':      getattr( object, 'REQUEST', None ),




More information about the Erp5-report mailing list