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) |
|