src/pyams_content/shared/view/portlet/__init__.py
changeset 796 2ef3bacda742
parent 783 e34cc04e9786
child 799 dd66696cb871
--- 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)