src/pyams_default_theme/shared/view/portlet/__init__.py
changeset 544 fed1815bb920
parent 472 ebef14b037b3
equal deleted inserted replaced
543:75d913d682d4 544:fed1815bb920
    13 from persistent import Persistent
    13 from persistent import Persistent
    14 from zope.container.contained import Contained
    14 from zope.container.contained import Contained
    15 from zope.interface import Interface
    15 from zope.interface import Interface
    16 from zope.schema.fieldproperty import FieldProperty
    16 from zope.schema.fieldproperty import FieldProperty
    17 
    17 
       
    18 from pyams_content.shared.logo import IWfLogo
    18 from pyams_content.shared.view.portlet.interfaces import IViewItemsPortletSettings
    19 from pyams_content.shared.view.portlet.interfaces import IViewItemsPortletSettings
    19 from pyams_default_theme.features.search.portlet import HIDDEN_HEADER_DISPLAY, START_HEADER_DISPLAY
    20 from pyams_default_theme.features.search.portlet import HIDDEN_HEADER_DISPLAY, START_HEADER_DISPLAY
    20 from pyams_default_theme.shared.view.portlet.interfaces import \
    21 from pyams_default_theme.shared.view.portlet.interfaces import \
    21     IViewItemsPortletHorizontalRendererSettings, IViewItemsPortletSummaryRendererSettings, \
    22     IViewItemsPortletHorizontalRendererSettings, IViewItemsPortletSummaryRendererSettings, \
    22     IViewItemsPortletVerticalRendererSettings
    23     IViewItemsPortletVerticalRendererSettings
    38 
    39 
    39 class BaseViewItemsPortletRenderer(PortletRenderer):
    40 class BaseViewItemsPortletRenderer(PortletRenderer):
    40     """Base view items portlet renderer"""
    41     """Base view items portlet renderer"""
    41 
    42 
    42     def get_url(self, target):
    43     def get_url(self, target):
       
    44         if IWfLogo.providedBy(target):
       
    45             if target.target is None:
       
    46                 return target.url
       
    47             target = target.target
    43         if self.settings.force_canonical_url:
    48         if self.settings.force_canonical_url:
    44             return canonical_url(target, self.request)
    49             return canonical_url(target, self.request)
    45         else:
    50         return relative_url(target, self.request)
    46             return relative_url(target, self.request)
       
    47 
    51 
    48     def render(self):
    52     def render(self):
    49         result = super(BaseViewItemsPortletRenderer, self).render()
    53         result = super(BaseViewItemsPortletRenderer, self).render()
    50         if self.settings.first_page_only:
    54         if self.settings.first_page_only:
    51             start = int(self.request.params.get('start', 0))
    55             start = int(self.request.params.get('start', 0))