[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