Commit e9b75a27 authored by Kazuhiko Shiozaki's avatar Kazuhiko Shiozaki

optimise ERP5Site_getKnowledgePadListForUser.

call getObject() once explicitly to reduce number of calls.
parent 6824bff5
...@@ -56,23 +56,31 @@ isAnonymousKnowledgePadUsed = request.get(\'is_anonymous_knowledge_pad_used\', 0 ...@@ -56,23 +56,31 @@ isAnonymousKnowledgePadUsed = request.get(\'is_anonymous_knowledge_pad_used\', 0
\n \n
def filterKnowledgePadListForContext(results, mode, \n def filterKnowledgePadListForContext(results, mode, \n
default_pad_group):\n default_pad_group):\n
filtered_results = []\n
append = filtered_results.append\n
# in Web Mode we can have a temporary object created based on current language, document by reference\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 = context.Base_getRealContext()\n
real_context_url = real_context.getRelativeUrl()\n real_context_url = real_context.getRelativeUrl()\n
if mode == \'erp5_front\':\n if mode == \'erp5_front\':\n
# leave only those not having a publication_section as \n # leave only those not having a publication_section as \n
# this means belonging to root\n # this means belonging to root\n
results = filter(lambda x: x.getPublicationSection() is None and \\\n for x in results:\n
x.getGroup() is None, results)\n x = x.getObject()\n
if x.getPublicationSection() is None and x.getGroup() is None:\n
append(x)\n
elif mode == \'web_front\':\n elif mode == \'web_front\':\n
# Web Site must at least one Pad referenced by context\n # Web Site must at least one Pad referenced by context\n
results = filter(lambda x: real_context_url in x.getPublicationSectionList() and \\\n for x in results:\n
x.getGroup() is None, results)\n x = x.getObject()\n
if real_context_url in x.getPublicationSectionList() and x.getGroup() is None:\n
append(x)\n
elif mode == \'web_section\':\n elif mode == \'web_section\':\n
# Web Sections, Web Pages can "reuse" tabs\n # Web Sections, Web Pages can "reuse" tabs\n
results = filter(lambda x: real_context_url in x.getPublicationSectionList() or \\\n for x in results:\n
x.getGroup() == default_pad_group, results)\n x = x.getObject()\n
return results\n if real_context_url in x.getPublicationSectionList() and x.getGroup() == default_pad_group:\n
append(x)\n
return filtered_results\n
\n \n
\n \n
kw = {\'portal_type\': \'Knowledge Pad\',\n kw = {\'portal_type\': \'Knowledge Pad\',\n
...@@ -99,9 +107,11 @@ active_pad, results = \\\n ...@@ -99,9 +107,11 @@ active_pad, results = \\\n
if active_pad is not None and active_pad.getValidationState() != \'deleted\':\n if active_pad is not None and active_pad.getValidationState() != \'deleted\':\n
found = False\n found = False\n
new_results = []\n new_results = []\n
active_pad_path = active_pad.getPath()\n
for brain in results:\n for brain in results:\n
new_results.append(brain)\n new_results.append(brain)\n
if brain.getObject() == active_pad: found = True\n if brain.getPath() == active_pad_path:\n
found = True\n
results = new_results\n results = new_results\n
if not found:\n if not found:\n
# append it only if not from Catalog results\n # append it only if not from Catalog results\n
......
763 764
\ No newline at end of file \ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment