src/pyams_content/component/paragraph/verbatim.py
changeset 555 8e8a14452567
parent 450 9a6afbc6ab4f
child 586 28445044f6e3
equal deleted inserted replaced
554:120ce09ade94 555:8e8a14452567
    23 from pyams_content.features.checker.interfaces import IContentChecker, MISSING_VALUE, MISSING_LANG_VALUE
    23 from pyams_content.features.checker.interfaces import IContentChecker, MISSING_VALUE, MISSING_LANG_VALUE
    24 from pyams_i18n.interfaces import II18n, II18nManager, INegotiator
    24 from pyams_i18n.interfaces import II18n, II18nManager, INegotiator
    25 
    25 
    26 # import packages
    26 # import packages
    27 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 RenderedContentMixin, IContentRenderer
    28 from pyams_content.features.renderer import RenderersVocabulary
    29 from pyams_utils.adapter import adapter_config
    29 from pyams_utils.adapter import adapter_config
       
    30 from pyams_utils.factory import factory_config
    30 from pyams_utils.registry import utility_config, get_utility
    31 from pyams_utils.registry import utility_config, get_utility
    31 from pyams_utils.request import check_request
       
    32 from pyams_utils.traversing import get_parent
    32 from pyams_utils.traversing import get_parent
    33 from pyams_utils.vocabulary import vocabulary_config
    33 from pyams_utils.vocabulary import vocabulary_config
    34 from zope.interface import implementer
    34 from zope.interface import implementer
    35 from zope.schema.fieldproperty import FieldProperty
    35 from zope.schema.fieldproperty import FieldProperty
    36 from zope.schema.vocabulary import SimpleVocabulary, SimpleTerm
       
    37 
    36 
    38 from pyams_content import _
    37 from pyams_content import _
    39 
    38 
    40 
    39 
    41 #
    40 #
    42 # Frame paragraph
    41 # Frame paragraph
    43 #
    42 #
    44 
    43 
    45 @implementer(IVerbatimParagraph, IIllustrationTarget)
    44 @implementer(IVerbatimParagraph, IIllustrationTarget)
    46 class VerbatimParagraph(RenderedContentMixin, BaseParagraph):
    45 @factory_config(provided=IVerbatimParagraph)
       
    46 class VerbatimParagraph(BaseParagraph):
    47     """Verbatim paragraph"""
    47     """Verbatim paragraph"""
    48 
    48 
    49     icon_class = 'fa-quote-right'
    49     icon_class = 'fa-quote-right'
    50     icon_hint = _("Verbatim")
    50     icon_hint = _("Verbatim")
    51 
    51 
    94                 output.append(translate(MISSING_VALUE).format(field=field_title))
    94                 output.append(translate(MISSING_VALUE).format(field=field_title))
    95         return output
    95         return output
    96 
    96 
    97 
    97 
    98 @vocabulary_config(name=VERBATIM_PARAGRAPH_RENDERERS)
    98 @vocabulary_config(name=VERBATIM_PARAGRAPH_RENDERERS)
    99 class VerbatimParagraphRendererVocabulary(SimpleVocabulary):
    99 class VerbatimParagraphRendererVocabulary(RenderersVocabulary):
   100     """Verbatim paragraph renderers vocabulary"""
   100     """Verbatim paragraph renderers vocabulary"""
   101 
   101 
   102     def __init__(self, context=None):
   102     content_interface = IVerbatimParagraph
   103         request = check_request()
       
   104         translate = request.localizer.translate
       
   105         registry = request.registry
       
   106         if not IVerbatimParagraph.providedBy(context):
       
   107             context = VerbatimParagraph()
       
   108         terms = [SimpleTerm(name, title=translate(adapter.label))
       
   109                  for name, adapter in sorted(registry.getAdapters((context, request), IContentRenderer),
       
   110                                              key=lambda x: x[1].weight)]
       
   111         super(VerbatimParagraphRendererVocabulary, self).__init__(terms)