From 2a16967d770cea183fda5434ecffd424d15ac980 Mon Sep 17 00:00:00 2001 From: Kazuhiko Shiozaki <kazuhiko@nexedi.com> Date: Thu, 30 May 2013 00:04:50 +0200 Subject: [PATCH] fixup e9b75a2762 (optimise ERP5Site_getKnowledgePadListForUser). --- .../ERP5Site_getKnowledgePadListForUser.xml | 26 ++++++++----------- product/ERP5/tests/testKM.py | 4 --- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/bt5/erp5_knowledge_pad/SkinTemplateItem/portal_skins/erp5_knowledge_pad/ERP5Site_getKnowledgePadListForUser.xml b/bt5/erp5_knowledge_pad/SkinTemplateItem/portal_skins/erp5_knowledge_pad/ERP5Site_getKnowledgePadListForUser.xml index 16c574b0a1..e901465b54 100644 --- a/bt5/erp5_knowledge_pad/SkinTemplateItem/portal_skins/erp5_knowledge_pad/ERP5Site_getKnowledgePadListForUser.xml +++ b/bt5/erp5_knowledge_pad/SkinTemplateItem/portal_skins/erp5_knowledge_pad/ERP5Site_getKnowledgePadListForUser.xml @@ -56,31 +56,27 @@ isAnonymousKnowledgePadUsed = request.get(\'is_anonymous_knowledge_pad_used\', 0 \n def filterKnowledgePadListForContext(results, mode, \n default_pad_group):\n - filtered_results = []\n - append = filtered_results.append\n + # call getObject() explicitly so that further getter methods do not\n + # invoke getObject().\n + results = [x.getObject() for x in results]\n + # in Web Mode we can have a temporary object created based on current language, document by reference\n real_context = context.Base_getRealContext()\n real_context_url = real_context.getRelativeUrl()\n if mode == \'erp5_front\':\n # leave only those not having a publication_section as \n # this means belonging to root\n - for x in results:\n - x = x.getObject()\n - if x.getPublicationSection() is None and x.getGroup() is None:\n - append(x)\n + results = filter(lambda x: x.getPublicationSection() is None and \\\n + x.getGroup() is None, results)\n elif mode == \'web_front\':\n # Web Site must at least one Pad referenced by context\n - for x in results:\n - x = x.getObject()\n - if real_context_url in x.getPublicationSectionList() and x.getGroup() is None:\n - append(x)\n + results = filter(lambda x: real_context_url in x.getPublicationSectionList() and \\\n + x.getGroup() is None, results)\n elif mode == \'web_section\':\n # Web Sections, Web Pages can "reuse" tabs\n - for x in results:\n - x = x.getObject()\n - if real_context_url in x.getPublicationSectionList() and x.getGroup() == default_pad_group:\n - append(x)\n - return filtered_results\n + results = filter(lambda x: real_context_url in x.getPublicationSectionList() or \\\n + x.getGroup() == default_pad_group, results)\n + return results\n \n \n kw = {\'portal_type\': \'Knowledge Pad\',\n diff --git a/product/ERP5/tests/testKM.py b/product/ERP5/tests/testKM.py index 4149def4f1..b10e4ee663 100644 --- a/product/ERP5/tests/testKM.py +++ b/product/ERP5/tests/testKM.py @@ -222,10 +222,6 @@ class TestKM(TestKMMixIn): self.assertEqual(1, len(website_pads)) self.assertEqual(website, website_pads[0].getPublicationSectionValue()) - # depending on context we should have different list of pads for user - self.assertNotEqual(portal.ERP5Site_getKnowledgePadListForUser(), - website.ERP5Site_getKnowledgePadListForUser()) - # check Web Section pad_group = 'default_section_pad' #None websection = self.websection -- 2.30.9