src/pyams_content/shared/imagemap/zmi/container.py
changeset 139 99a481dc4c89
parent 70 ba26f4023bc2
child 374 4d7a326b3434
--- a/src/pyams_content/shared/imagemap/zmi/container.py	Mon Sep 11 14:52:15 2017 +0200
+++ b/src/pyams_content/shared/imagemap/zmi/container.py	Mon Sep 11 14:53:15 2017 +0200
@@ -14,10 +14,9 @@
 
 
 # import standard library
-import html
 
 # import interfaces
-from pyams_content.component.links.interfaces import ILinkContainer, IInternalLink
+from pyams_content.component.association.interfaces import IAssociationContainer, IAssociationInfo
 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
 from pyams_content.shared.imagemap.interfaces import IWfImageMap
 from pyams_i18n.interfaces import II18n
@@ -33,7 +32,6 @@
 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
@@ -49,7 +47,7 @@
 
 
 @viewlet_config(name='areas.submenu', context=IWfImageMap, layer=IAdminLayer,
-                manager=IPropertiesMenu, permission=MANAGE_CONTENT_PERMISSION, weight=20)
+                manager=IPropertiesMenu, permission=MANAGE_CONTENT_PERMISSION, weight=30)
 class ImagemapAreasMenu(MenuItem):
     """Image map areas menu"""
 
@@ -123,7 +121,12 @@
     weight = 10
 
     def getValue(self, obj):
-        return II18n(obj).query_attribute('title', request=self.request)
+        title = II18n(obj).query_attribute('title', request=self.request)
+        if not title:
+            item = IAssociationContainer(self.context).get(obj.link)
+            if item is not None:
+                title = IAssociationInfo(item).user_title
+        return title
 
 
 @adapter_config(name='target', context=(IWfImageMap, IPyAMSLayer, ImagemapAreasTable), provides=IColumn)
@@ -135,14 +138,9 @@
     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))
+        item = IAssociationContainer(self.context).get(obj.link)
+        if item is not None:
+            return IAssociationInfo(item).inner_title
 
 
 @adapter_config(name='trash', context=(IWfImageMap, IPyAMSLayer, ImagemapAreasTable), provides=IColumn)