src/pyams_content/shared/view/portlet/__init__.py
changeset 799 dd66696cb871
parent 796 2ef3bacda742
child 821 967b4099c82e
equal deleted inserted replaced
798:754dcbb0ede9 799:dd66696cb871
     7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
     7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
     8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
     9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
    10 # FOR A PARTICULAR PURPOSE.
    10 # FOR A PARTICULAR PURPOSE.
    11 #
    11 #
    12 from pyams_portal.interfaces import PREVIEW_MODE
       
    13 
    12 
    14 __docformat__ = 'restructuredtext'
    13 __docformat__ = 'restructuredtext'
    15 
    14 
    16 
    15 
    17 # import standard library
    16 # import standard library
    18 from itertools import islice
    17 from itertools import islice
    19 
    18 
    20 # import interfaces
    19 # import interfaces
    21 from pyams_content.shared.view.interfaces import IViewsMerger
    20 from pyams_content.shared.view.interfaces import IViewsMerger
    22 from pyams_content.shared.view.portlet.interfaces import IViewItemsPortletSettings, VIEW_DISPLAY_CONTEXT
    21 from pyams_content.shared.view.portlet.interfaces import IViewItemsPortletSettings, VIEW_DISPLAY_CONTEXT
       
    22 from pyams_portal.interfaces import PREVIEW_MODE
    23 from pyams_utils.interfaces import VIEW_PERMISSION
    23 from pyams_utils.interfaces import VIEW_PERMISSION
    24 from pyams_utils.interfaces.url import DISPLAY_CONTEXT
    24 from pyams_utils.interfaces.url import DISPLAY_CONTEXT
    25 
    25 
    26 # import packages
    26 # import packages
    27 from pyams_content.workflow import PUBLISHED_STATES
    27 from pyams_content.workflow import PUBLISHED_STATES
    67             context = request.annotations.get(DISPLAY_CONTEXT, request.root)
    67             context = request.annotations.get(DISPLAY_CONTEXT, request.root)
    68         else:
    68         else:
    69             context = request.context
    69             context = request.context
    70         if not ignore_cache:
    70         if not ignore_cache:
    71             ignore_cache = request.annotations.get(PREVIEW_MODE, False)
    71             ignore_cache = request.annotations.get(PREVIEW_MODE, False)
    72         if len(self.views or ()) < 2:  # single view
    72         merger = self.get_merger(request)
    73             for view in self.get_views():
    73         if merger is not None:
    74                 if view is not None:
    74             yield from islice(unique_iter(merger.get_results(self.get_views(),
    75                     yield from islice(view.get_results(context, ignore_cache=ignore_cache),
    75                                                              context,
    76                                       self.limit)
    76                                                              ignore_cache=ignore_cache)),
    77         else:  # several views merged together
    77                               self.limit)
    78             merger = self.get_merger(request)
       
    79             if merger is not None:
       
    80                 yield from islice(unique_iter(merger.get_results(self.get_views(),
       
    81                                                                  context,
       
    82                                                                  ignore_cache=ignore_cache)),
       
    83                                   self.limit)
       
    84 
    78 
    85 
    79 
    86 @portlet_config(permission=VIEW_PERMISSION)
    80 @portlet_config(permission=VIEW_PERMISSION)
    87 class ViewItemsPortlet(Portlet):
    81 class ViewItemsPortlet(Portlet):
    88     """View items portlet"""
    82     """View items portlet"""