From 55420954e89382f3504ed24f33d1abc640250f6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com> Date: Tue, 13 Mar 2007 08:43:32 +0000 Subject: [PATCH] allow to specify in CatalogTool the max number of result to retrieve by default. Use this feature in testERP5Catalog not to have to create more than 1000 documents. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@13387 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5Catalog/CatalogTool.py | 11 +++++------ product/ERP5Catalog/tests/testERP5Catalog.py | 17 ++++++++++++----- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/product/ERP5Catalog/CatalogTool.py b/product/ERP5Catalog/CatalogTool.py index 176aacfcec..d8cf310cc5 100644 --- a/product/ERP5Catalog/CatalogTool.py +++ b/product/ERP5Catalog/CatalogTool.py @@ -73,8 +73,6 @@ try: except ImportError: pass -DEFAULT_RESULT_LIMIT = 1000 - def getSecurityProduct(acl_users): """returns the security used by the user folder passed. (NuxUserGroup, ERP5Security, or None if anything else). @@ -183,7 +181,8 @@ class CatalogTool (UniqueObject, ZCatalog, CMFCoreCatalogTool, ActiveObject): id = 'portal_catalog' meta_type = 'ERP5 Catalog' security = ClassSecurityInfo() - + default_result_limit = 1000 + manage_options = ( { 'label' : 'Overview', 'action' : 'manage_overview' }, ) + ZCatalog.manage_options @@ -511,7 +510,7 @@ class CatalogTool (UniqueObject, ZCatalog, CMFCoreCatalogTool, ActiveObject): kw[ 'expires' ] = { 'query' : now, 'range' : 'min' } query = self.getSecurityQuery(query=query, **kw) - kw.setdefault('limit', DEFAULT_RESULT_LIMIT) + kw.setdefault('limit', self.default_result_limit) return ZCatalog.searchResults(self, query=query, **kw) __call__ = searchResults @@ -520,7 +519,7 @@ class CatalogTool (UniqueObject, ZCatalog, CMFCoreCatalogTool, ActiveObject): def unrestrictedSearchResults(self, REQUEST=None, **kw): """Calls ZSQLCatalog.searchResults directly without restrictions. """ - kw.setdefault('limit', DEFAULT_RESULT_LIMIT) + kw.setdefault('limit', self.default_result_limit) return ZCatalog.searchResults(self, REQUEST, **kw) # We use a string for permissions here due to circular reference in import @@ -551,7 +550,7 @@ class CatalogTool (UniqueObject, ZCatalog, CMFCoreCatalogTool, ActiveObject): # #kw[ 'expires' ] = { 'query' : now, 'range' : 'min' } query = self.getSecurityQuery(query=query, **kw) - kw.setdefault('limit', DEFAULT_RESULT_LIMIT) + kw.setdefault('limit', self.default_result_limit) return ZCatalog.countResults(self, query=query, **kw) security.declarePrivate('unrestrictedCountResults') diff --git a/product/ERP5Catalog/tests/testERP5Catalog.py b/product/ERP5Catalog/tests/testERP5Catalog.py index 17b8b1f75d..659a8e0534 100644 --- a/product/ERP5Catalog/tests/testERP5Catalog.py +++ b/product/ERP5Catalog/tests/testERP5Catalog.py @@ -1329,11 +1329,18 @@ class TestERP5Catalog(ERP5TypeTestCase, LogInterceptor): message = 'Test Limit' ZopeTestCase._print('\n%s ' % message) LOG('Testing... ',0,message) - #Create 1002 Organisations - for i in xrange(1002): - self._makeOrganisation(title='abc%s' % (i),description='abc') - self.assertEqual(1000,len(self.getCatalogTool()(portal_type='Organisation'))) - self.assertEqual(1002,len(self.getCatalogTool()(portal_type='Organisation',limit=None))) + + ctool = self.getCatalogTool() + old_default_result_limit = cool.default_result_limit + max_ = 10 + #Create max + 2 Organisations + for i in xrange(max_ + 2): + self._makeOrganisation(title='abc%s' % (i), description='abc') + self.assertEqual(max_, + len(self.getCatalogTool()(portal_type='Organisation'))) + self.assertEqual(max + 2, + len(self.getCatalogTool()(portal_type='Organisation', limit=None))) + ctool.default_result_limit = old_default_result_limit def playActivityList(self, method_id_list): get_transaction().commit() -- 2.30.9