diff -r d282eb691486 -r 2ef3bacda742 src/pyams_content/shared/view/portlet/__init__.py --- 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)