diff -r 1643b6a9a02a -r 99a481dc4c89 src/pyams_content/shared/imagemap/zmi/container.py --- 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)