[Erp5-report] r29903 - /erp5/trunk/products/ERP5Type/Core/Folder.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Oct 22 09:51:30 CEST 2009


Author: yo
Date: Thu Oct 22 09:51:25 2009
New Revision: 29903

URL: http://svn.erp5.org?rev=29903&view=rev
Log:
Revert r29873, because the filter parameter to contentValues is not working any longer apparently.

Modified:
    erp5/trunk/products/ERP5Type/Core/Folder.py

Modified: erp5/trunk/products/ERP5Type/Core/Folder.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Core/Folder.py?rev=29903&r1=29902&r2=29903&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Core/Folder.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Core/Folder.py [utf8] Thu Oct 22 09:51:25 2009
@@ -35,7 +35,6 @@
 
 from Products.CMFCore.utils import _getAuthenticatedUser
 from Products.CMFCore.CMFCatalogAware import CMFCatalogAware
-from Products.CMFCore.PortalFolder import ContentFilter
 
 from Products.ERP5Type.Base import Base
 from Products.ERP5Type.CopySupport import CopyContainer
@@ -1434,17 +1433,24 @@
 
   security.declareProtected( Permissions.AccessContentsInformation,
                              'contentValues' )
-  def contentValues(self, *args, **kw):
-    filter_kw = kw.pop('filter', None) or {}
-    portal_type_id_list = self._getTypesTool().objectIds()
-    if 'portal_type' in filter_kw:
-      kw['portal_type'] = [x for x in filter_kw.pop('portal_type')
-                             if x in portal_type_id_list]
-    elif 'portal_type' not in kw:
-      kw['portal_type'] = portal_type_id_list
-    object_list = self.objectValues(*args, **kw)
-    if filter_kw:
-      object_list = filter(ContentFilter(**filter_kw), object_list)
+  def contentValues(self, spec=None, meta_type=None, portal_type=None,
+                    sort_on=None, sort_order=None, checked_permission=None, **kw):
+    # Returns a list of documents contained in this folder.
+    # ( no docstring to prevent publishing )
+    if meta_type is not None:
+      spec = meta_type
+    if portal_type is not None:
+      kw['portal_type'] = portal_type
+    filter = kw.pop('filter', {}) or {}
+    kw.update(filter)
+    if self._folder_handler == HBTREE_HANDLER:
+      object_list = CMFHBTreeFolder.contentValues(self, spec=spec, filter=kw)
+    else:
+      object_list = CMFBTreeFolder.contentValues(self, spec=spec, filter=kw)
+    if checked_permission is not None:
+      checkPermission = getSecurityManager().checkPermission
+      object_list = [o for o in object_list if checkPermission(checked_permission, o)]
+    object_list = sortValueList(object_list, sort_on, sort_order, **kw)
     return object_list
 
   # Override security declaration of CMFCore/PortalFolder (used by CMFBTreeFolder)




More information about the Erp5-report mailing list