--- a/src/pyams_content/shared/view/portlet/__init__.py Tue Jul 03 18:16:59 2018 +0200
+++ b/src/pyams_content/shared/view/portlet/__init__.py Wed Jul 04 08:56:22 2018 +0200
@@ -9,6 +9,7 @@
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
+from pyams_portal.interfaces import PREVIEW_MODE
__docformat__ = 'restructuredtext'
@@ -59,21 +60,27 @@
if view is not None:
yield view
- def get_items(self, request=None):
+ def get_items(self, request=None, ignore_cache=False):
if request is None:
request = check_request()
if self.views_context == VIEW_DISPLAY_CONTEXT:
context = request.annotations.get(DISPLAY_CONTEXT, request.root)
else:
context = request.context
+ if not ignore_cache:
+ ignore_cache = request.annotations.get(PREVIEW_MODE, False)
if len(self.views or ()) < 2: # single view
for view in self.get_views():
if view is not None:
- yield from islice(view.get_results(context), self.limit)
+ yield from islice(view.get_results(context, ignore_cache=ignore_cache),
+ self.limit)
else: # several views merged together
merger = self.get_merger(request)
if merger is not None:
- yield from islice(unique_iter(merger.get_results(self.get_views(), context)), self.limit)
+ yield from islice(unique_iter(merger.get_results(self.get_views(),
+ context,
+ ignore_cache=ignore_cache)),
+ self.limit)
@portlet_config(permission=VIEW_PERMISSION)