--- a/src/pyams_content/features/redirect/zmi/container.py Mon Feb 18 16:19:49 2019 +0100
+++ b/src/pyams_content/features/redirect/zmi/container.py Wed Mar 13 08:58:43 2019 +0100
@@ -9,6 +9,8 @@
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
+from pyams_workflow.interfaces import IWorkflowPublicationInfo
+
__docformat__ = 'restructuredtext'
@@ -38,7 +40,7 @@
from pyams_skin.layer import IPyAMSLayer
from pyams_skin.page import DefaultPageHeaderAdapter
from pyams_skin.skin import apply_skin
-from pyams_skin.table import AttributeSwitcherColumn, BaseTable, I18nColumn, SorterColumn, TrashColumn
+from pyams_skin.table import AttributeSwitcherColumn, BaseTable, I18nColumn, SorterColumn, TrashColumn, ImageColumn
from pyams_skin.viewlet.menu import MenuItem
from pyams_skin.viewlet.toolbar import ToolbarAction
from pyams_template.template import template_config
@@ -208,6 +210,43 @@
weight = 10
+@adapter_config(name='visible', context=(IRedirectionManagerTarget, IPyAMSLayer, RedirectionsContainerTable),
+ provides=IColumn)
+class RedirectionsContainerVisibleColumn(ImageColumn):
+ """Redirections container visible column"""
+
+ cssClasses = {'th': 'action', 'td': 'action'}
+ weight = 19
+
+ def get_icon_class(self, item):
+ if item.reference:
+ target = item.target
+ if target is not None:
+ info = IWorkflowPublicationInfo(target, None)
+ if info is not None:
+ if info.is_published():
+ return 'fa-eye'
+ else:
+ return 'fa-eye-slash text-danger'
+ return ''
+ else:
+ return 'fa-external-link'
+
+ def get_icon_hint(self, item):
+ if item.reference:
+ target = item.target
+ if target is not None:
+ info = IWorkflowPublicationInfo(target, None)
+ if info is not None:
+ if info.is_published():
+ return self.request.localizer.translate(_("Target is published"))
+ else:
+ return self.request.localizer.translate(_("Target is not published"))
+ return ''
+ else:
+ return self.request.localizer.translate(_("External link"))
+
+
@adapter_config(name='target', context=(IRedirectionManagerTarget, IPyAMSLayer, RedirectionsContainerTable),
provides=IColumn)
class RedirectionsContainerTargetColumn(I18nColumn, GetAttrColumn):