# HG changeset patch # User Thierry Florac # Date 1548269390 -3600 # Node ID fcc70be2fc8081da7743d10077deb8b31b63c19c # Parent 54d4b7b7c996fd7ff645547428ec5b56a5bc40bd Added method to use canonical or relative URL according to portlet settings diff -r 54d4b7b7c996 -r fcc70be2fc80 src/pyams_default_theme/shared/view/portlet/__init__.py --- a/src/pyams_default_theme/shared/view/portlet/__init__.py Wed Jan 23 18:46:33 2019 +0100 +++ b/src/pyams_default_theme/shared/view/portlet/__init__.py Wed Jan 23 19:49:50 2019 +0100 @@ -18,16 +18,26 @@ from zope.schema.fieldproperty import FieldProperty from pyams_content.shared.view.portlet.interfaces import IViewItemsPortletSettings -from pyams_default_theme.shared.view.portlet.interfaces import IViewItemsPortletVerticalRendererSettings, \ - IViewItemsPortletHorizontalRendererSettings +from pyams_default_theme import _ +from pyams_default_theme.shared.view.portlet.interfaces import IViewItemsPortletHorizontalRendererSettings, \ + IViewItemsPortletVerticalRendererSettings from pyams_portal.interfaces import IPortalContext, IPortletRenderer from pyams_portal.portlet import PortletRenderer from pyams_skin.layer import IPyAMSLayer from pyams_template.template import template_config from pyams_utils.adapter import adapter_config from pyams_utils.factory import factory_config +from pyams_utils.url import canonical_url, relative_url -from pyams_default_theme import _ + +class BaseViewItemsPortletRenderer(PortletRenderer): + """Base view items portlet renderer""" + + def get_url(self, target): + if self.settings.force_canonical_url: + return canonical_url(target, self.request) + else: + return relative_url(target, self.request) # @@ -49,7 +59,7 @@ @adapter_config(context=(IPortalContext, IPyAMSLayer, Interface, IViewItemsPortletSettings), provides=IPortletRenderer) @template_config(template='templates/view-items-list.pt', layer=IPyAMSLayer) -class ViewItemsPortletVerticalRenderer(PortletRenderer): +class ViewItemsPortletVerticalRenderer(BaseViewItemsPortletRenderer): """View items portlet vertical renderer""" label = _("Simple vertical view") @@ -73,7 +83,7 @@ context=(IPortalContext, IPyAMSLayer, Interface, IViewItemsPortletSettings), provides=IPortletRenderer) @template_config(template='templates/view-items-horiz-list.pt', layer=IPyAMSLayer) -class ViewItemsPortletHorizontalRenderer(PortletRenderer): +class ViewItemsPortletHorizontalRenderer(BaseViewItemsPortletRenderer): """View items portlet horizontal renderer""" label = _("Simple horizontal thumbnails view") diff -r 54d4b7b7c996 -r fcc70be2fc80 src/pyams_default_theme/shared/view/portlet/templates/view-items-horiz-list.pt --- a/src/pyams_default_theme/shared/view/portlet/templates/view-items-horiz-list.pt Wed Jan 23 18:46:33 2019 +0100 +++ b/src/pyams_default_theme/shared/view/portlet/templates/view-items-horiz-list.pt Wed Jan 23 19:49:50 2019 +0100 @@ -12,7 +12,7 @@