# HG changeset patch # User Damien Correia # Date 1531218013 -7200 # Node ID 29e43fc3a6a0a51b4cedc2a6d53b2d373263fe27 # Parent 170cf23172b4435726f1c9d5da0ad634e2270d07 Added default keynumber portlet renderer diff -r 170cf23172b4 -r 29e43fc3a6a0 src/pyams_default_theme/component/keynumber/portlet/__init__.py --- a/src/pyams_default_theme/component/keynumber/portlet/__init__.py Tue Jul 10 12:17:34 2018 +0200 +++ b/src/pyams_default_theme/component/keynumber/portlet/__init__.py Tue Jul 10 12:20:13 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 KeyNumberPortletDefaultRenderer(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(KeyNumberPortletDefaultRenderer): """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(KeyNumberPortletDefaultRenderer): """Key numbers portlet vertical renderer""" label = _("Vertical list")