src/pyams_content/shared/imagemap/zmi/container.py
changeset 70 ba26f4023bc2
parent 69 8c5bbc396670
child 139 99a481dc4c89
equal deleted inserted replaced
69:8c5bbc396670 70:ba26f4023bc2
    12 
    12 
    13 __docformat__ = 'restructuredtext'
    13 __docformat__ = 'restructuredtext'
    14 
    14 
    15 
    15 
    16 # import standard library
    16 # import standard library
       
    17 import html
    17 
    18 
    18 # import interfaces
    19 # import interfaces
       
    20 from pyams_content.component.links.interfaces import ILinkContainer, IInternalLink
    19 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
    21 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
    20 from pyams_content.shared.imagemap.interfaces import IWfImageMap
    22 from pyams_content.shared.imagemap.interfaces import IWfImageMap
    21 from pyams_i18n.interfaces import II18n
    23 from pyams_i18n.interfaces import II18n
    22 from pyams_skin.interfaces import IInnerPage
    24 from pyams_skin.interfaces import IInnerPage
    23 from pyams_skin.layer import IPyAMSLayer
    25 from pyams_skin.layer import IPyAMSLayer
    29 
    31 
    30 # import packages
    32 # import packages
    31 from pyams_content.shared.common.zmi import WfModifiedContentColumnMixin
    33 from pyams_content.shared.common.zmi import WfModifiedContentColumnMixin
    32 from pyams_form.security import ProtectedFormObjectMixin
    34 from pyams_form.security import ProtectedFormObjectMixin
    33 from pyams_pagelet.pagelet import pagelet_config
    35 from pyams_pagelet.pagelet import pagelet_config
       
    36 from pyams_sequence.utility import get_sequence_dict
    34 from pyams_skin.table import BaseTable, I18nColumn, TrashColumn
    37 from pyams_skin.table import BaseTable, I18nColumn, TrashColumn
    35 from pyams_skin.viewlet.menu import MenuItem
    38 from pyams_skin.viewlet.menu import MenuItem
    36 from pyams_template.template import template_config
    39 from pyams_template.template import template_config
    37 from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter
    40 from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter
    38 from pyams_utils.url import absolute_url
    41 from pyams_utils.url import absolute_url
   121 
   124 
   122     def getValue(self, obj):
   125     def getValue(self, obj):
   123         return II18n(obj).query_attribute('title', request=self.request)
   126         return II18n(obj).query_attribute('title', request=self.request)
   124 
   127 
   125 
   128 
       
   129 @adapter_config(name='target', context=(IWfImageMap, IPyAMSLayer, ImagemapAreasTable), provides=IColumn)
       
   130 class ImagemapAreasContainerTargetColumn(I18nColumn, GetAttrColumn):
       
   131     """Image map areas container target URL column"""
       
   132 
       
   133     _header = _("Link target")
       
   134 
       
   135     weight = 20
       
   136 
       
   137     def getValue(self, obj):
       
   138         link = ILinkContainer(self.context).get(obj.link)
       
   139         if link is None:
       
   140             return '--'
       
   141         if IInternalLink.providedBy(link):
       
   142             mapping = get_sequence_dict(link.get_target())
       
   143             return mapping['text']
       
   144         else:
       
   145             return html.escape(link.get_url(self.request))
       
   146 
       
   147 
   126 @adapter_config(name='trash', context=(IWfImageMap, IPyAMSLayer, ImagemapAreasTable), provides=IColumn)
   148 @adapter_config(name='trash', context=(IWfImageMap, IPyAMSLayer, ImagemapAreasTable), provides=IColumn)
   127 class ImagemapAreasContainerTrashColumn(ProtectedFormObjectMixin, TrashColumn):
   149 class ImagemapAreasContainerTrashColumn(ProtectedFormObjectMixin, TrashColumn):
   128     """Image map areas container trash column"""
   150     """Image map areas container trash column"""
   129 
   151 
   130 
   152