src/pyams_content/shared/imagemap/zmi/container.py
changeset 70 ba26f4023bc2
parent 69 8c5bbc396670
child 139 99a481dc4c89
--- a/src/pyams_content/shared/imagemap/zmi/container.py	Fri Jan 20 15:42:51 2017 +0100
+++ b/src/pyams_content/shared/imagemap/zmi/container.py	Wed Jan 25 11:26:00 2017 +0100
@@ -14,8 +14,10 @@
 
 
 # import standard library
+import html
 
 # import interfaces
+from pyams_content.component.links.interfaces import ILinkContainer, IInternalLink
 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
 from pyams_content.shared.imagemap.interfaces import IWfImageMap
 from pyams_i18n.interfaces import II18n
@@ -31,6 +33,7 @@
 from pyams_content.shared.common.zmi import WfModifiedContentColumnMixin
 from pyams_form.security import ProtectedFormObjectMixin
 from pyams_pagelet.pagelet import pagelet_config
+from pyams_sequence.utility import get_sequence_dict
 from pyams_skin.table import BaseTable, I18nColumn, TrashColumn
 from pyams_skin.viewlet.menu import MenuItem
 from pyams_template.template import template_config
@@ -123,6 +126,25 @@
         return II18n(obj).query_attribute('title', request=self.request)
 
 
+@adapter_config(name='target', context=(IWfImageMap, IPyAMSLayer, ImagemapAreasTable), provides=IColumn)
+class ImagemapAreasContainerTargetColumn(I18nColumn, GetAttrColumn):
+    """Image map areas container target URL column"""
+
+    _header = _("Link target")
+
+    weight = 20
+
+    def getValue(self, obj):
+        link = ILinkContainer(self.context).get(obj.link)
+        if link is None:
+            return '--'
+        if IInternalLink.providedBy(link):
+            mapping = get_sequence_dict(link.get_target())
+            return mapping['text']
+        else:
+            return html.escape(link.get_url(self.request))
+
+
 @adapter_config(name='trash', context=(IWfImageMap, IPyAMSLayer, ImagemapAreasTable), provides=IColumn)
 class ImagemapAreasContainerTrashColumn(ProtectedFormObjectMixin, TrashColumn):
     """Image map areas container trash column"""