# HG changeset patch # User Thierry Florac # Date 1531235038 -7200 # Node ID 90b84b6b8caf616f1e6efda349aa7262b7746159 # Parent 9563247eb2f1ab8bfe42a55f106a8da7dac49eb4# Parent 29e43fc3a6a0a51b4cedc2a6d53b2d373263fe27 Merge branch dev-dc diff -r 9563247eb2f1 -r 90b84b6b8caf src/pyams_default_theme/component/keynumber/portlet/__init__.py --- a/src/pyams_default_theme/component/keynumber/portlet/__init__.py Tue Jul 10 08:51:09 2018 +0200 +++ b/src/pyams_default_theme/component/keynumber/portlet/__init__.py Tue Jul 10 17:03:58 2018 +0200 @@ -16,9 +16,12 @@ # import standard library # import interfaces +from pyams_content.component.association.interfaces import IAssociationInfo from pyams_content.component.keynumber.portlet.interfaces import IKeyNumberPortletSettings +from pyams_content.component.links import IInternalLink from pyams_portal.interfaces import IPortalContext, IPortletRenderer from pyams_skin.layer import IPyAMSLayer +from pyams_workflow.interfaces import IWorkflowPublicationInfo # import packages from pyams_portal.portlet import PortletRenderer @@ -29,10 +32,24 @@ from pyams_default_theme import _ +class KeyNumberPortletBaseRenderer(PortletRenderer): + """Key numbers portlet default renderer""" + + def get_link_info(cls, link): + return IAssociationInfo(link) + + @classmethod + def get_link_status(cls, link): + if not IInternalLink.providedBy(link): + return True + target = link.get_target() + return (target is not None) and IWorkflowPublicationInfo(target).is_published() + + @adapter_config(context=(IPortalContext, IPyAMSLayer, Interface, IKeyNumberPortletSettings), provides=IPortletRenderer) @template_config(template='templates/horizontal-render.pt', layer=IPyAMSLayer) -class KeyNumberPortletHorizontalRenderer(PortletRenderer): +class KeyNumberPortletHorizontalRenderer(KeyNumberPortletBaseRenderer): """Key numbers portlet horizontal renderer""" label = _("Horizontal list with carousel") @@ -41,7 +58,7 @@ @adapter_config(name='vertical', context=(IPortalContext, IPyAMSLayer, Interface, IKeyNumberPortletSettings), provides=IPortletRenderer) @template_config(template='templates/vertical-render.pt', layer=IPyAMSLayer) -class KeyNumberPortletVerticalRenderer(PortletRenderer): +class KeyNumberPortletVerticalRenderer(KeyNumberPortletBaseRenderer): """Key numbers portlet vertical renderer""" label = _("Vertical list")