src/pyams_content/shared/imagemap/paragraph.py
changeset 555 8e8a14452567
parent 407 0ef5de2d5674
child 586 28445044f6e3
equal deleted inserted replaced
554:120ce09ade94 555:8e8a14452567
    16 # import standard library
    16 # import standard library
    17 
    17 
    18 # import interfaces
    18 # import interfaces
    19 from pyams_content.component.paragraph.interfaces import IParagraphFactory
    19 from pyams_content.component.paragraph.interfaces import IParagraphFactory
    20 from pyams_content.features.checker.interfaces import IContentChecker, ERROR_VALUE, MISSING_VALUE, MISSING_LANG_VALUE
    20 from pyams_content.features.checker.interfaces import IContentChecker, ERROR_VALUE, MISSING_VALUE, MISSING_LANG_VALUE
    21 from pyams_content.shared.imagemap.interfaces import IImageMapParagraph, IMAGEMAP_PARAGRAPH_TYPE
    21 from pyams_content.shared.imagemap.interfaces import IImageMapParagraph, IMAGEMAP_PARAGRAPH_TYPE, \
       
    22     IMAGEMAP_PARAGRAPH_RENDERERS
    22 from pyams_i18n.interfaces import II18nManager, INegotiator, II18n
    23 from pyams_i18n.interfaces import II18nManager, INegotiator, II18n
    23 from pyams_workflow.interfaces import IWorkflow, IWorkflowState
    24 from pyams_workflow.interfaces import IWorkflow, IWorkflowState
    24 
    25 
    25 # import packages
    26 # import packages
    26 from pyams_content.component.paragraph import BaseParagraph, BaseParagraphContentChecker, BaseParagraphFactory
    27 from pyams_content.component.paragraph import BaseParagraph, BaseParagraphContentChecker, BaseParagraphFactory
       
    28 from pyams_content.features.renderer import RenderersVocabulary
    27 from pyams_sequence.utility import get_reference_target
    29 from pyams_sequence.utility import get_reference_target
    28 from pyams_utils.adapter import adapter_config
    30 from pyams_utils.adapter import adapter_config
       
    31 from pyams_utils.factory import factory_config
    29 from pyams_utils.registry import utility_config, get_utility
    32 from pyams_utils.registry import utility_config, get_utility
    30 from pyams_utils.traversing import get_parent
    33 from pyams_utils.traversing import get_parent
       
    34 from pyams_utils.vocabulary import vocabulary_config
    31 from zope.interface import implementer
    35 from zope.interface import implementer
    32 from zope.schema.fieldproperty import FieldProperty
    36 from zope.schema.fieldproperty import FieldProperty
    33 
    37 
    34 from pyams_content import _
    38 from pyams_content import _
    35 
    39 
    36 
    40 
    37 @implementer(IImageMapParagraph)
    41 @implementer(IImageMapParagraph)
       
    42 @factory_config(provided=IImageMapParagraph)
    38 class ImageMapParagraph(BaseParagraph):
    43 class ImageMapParagraph(BaseParagraph):
    39     """Image map paragraph"""
    44     """Image map paragraph"""
    40 
    45 
    41     icon_class = 'fa-location-arrow'
    46     icon_class = 'fa-location-arrow'
    42     icon_hint = _("Image map")
    47     icon_hint = _("Image map")
    43 
    48 
    44     reference = FieldProperty(IImageMapParagraph['reference'])
    49     reference = FieldProperty(IImageMapParagraph['reference'])
       
    50     renderer = FieldProperty(IImageMapParagraph['renderer'])
    45 
    51 
    46     def get_target(self, state=None):
    52     def get_target(self, state=None):
    47         return get_reference_target(self.reference, state)
    53         return get_reference_target(self.reference, state)
    48 
    54 
    49 
    55 
    97                         output.append(translate(ERROR_VALUE).format(
   103                         output.append(translate(ERROR_VALUE).format(
    98                             field=field_title,
   104                             field=field_title,
    99                             message=translate(_("image map '{0}' is not published")).format(
   105                             message=translate(_("image map '{0}' is not published")).format(
   100                                 II18n(target).query_attribute('title', request=request))))
   106                                 II18n(target).query_attribute('title', request=request))))
   101         return output
   107         return output
       
   108 
       
   109 
       
   110 @vocabulary_config(name=IMAGEMAP_PARAGRAPH_RENDERERS)
       
   111 class ImageMapParagraphRendererVocabulary(RenderersVocabulary):
       
   112     """Image map paragraph renderers vocabulary"""
       
   113 
       
   114     content_interface = IImageMapParagraph