diff -r 120ce09ade94 -r 8e8a14452567 src/pyams_content/component/paragraph/html.py --- a/src/pyams_content/component/paragraph/html.py Thu May 24 10:51:45 2018 +0200 +++ b/src/pyams_content/component/paragraph/html.py Fri May 25 08:03:41 2018 +0200 @@ -9,7 +9,6 @@ # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # -from pyams_sequence.interfaces import ISequentialIntIds __docformat__ = 'restructuredtext' @@ -24,19 +23,23 @@ from pyams_content.component.links.interfaces import ILinkContainerTarget, IInternalLink, IExternalLink, IMailtoLink from pyams_content.component.paragraph.interfaces import IParagraphFactory from pyams_content.component.paragraph.interfaces.html import RAW_PARAGRAPH_TYPE, IRawParagraph, HTML_PARAGRAPH_TYPE, \ - IHTMLParagraph + IHTMLParagraph, RAW_PARAGRAPH_RENDERERS, HTML_PARAGRAPH_RENDERERS from pyams_content.features.checker.interfaces import IContentChecker, MISSING_VALUE, MISSING_LANG_VALUE from pyams_i18n.interfaces import II18n, II18nManager, INegotiator +from pyams_sequence.interfaces import ISequentialIntIds from zope.lifecycleevent.interfaces import IObjectAddedEvent, IObjectModifiedEvent # import packages from pyams_content.component.links import InternalLink, ExternalLink, MailtoLink from pyams_content.component.paragraph import BaseParagraph, BaseParagraphContentChecker, BaseParagraphFactory +from pyams_content.features.renderer import RenderersVocabulary from pyams_utils.adapter import adapter_config +from pyams_utils.factory import factory_config from pyams_utils.registry import utility_config, get_utility from pyams_utils.request import check_request from pyams_utils.traversing import get_parent from pyams_utils.url import absolute_url +from pyams_utils.vocabulary import vocabulary_config from pyquery import PyQuery from pyramid.events import subscriber from pyramid.threadlocal import get_current_registry @@ -52,6 +55,7 @@ # @implementer(IRawParagraph) +@factory_config(provided=IRawParagraph) class RawParagraph(BaseParagraph): """Raw HTML paragraph""" @@ -59,6 +63,7 @@ icon_hint = _("Raw HTML ") body = FieldProperty(IRawParagraph['body']) + renderer = FieldProperty(IRawParagraph['renderer']) @utility_config(name=RAW_PARAGRAPH_TYPE, provides=IParagraphFactory) @@ -94,11 +99,19 @@ return output +@vocabulary_config(name=RAW_PARAGRAPH_RENDERERS) +class RawParagraphRendererVocabulary(RenderersVocabulary): + """Raw HTML paragraph renderers vocabulary""" + + content_interface = IRawParagraph + + # # HTML paragraph # @implementer(IHTMLParagraph, IIllustrationTarget, IExtFileContainerTarget, ILinkContainerTarget) +@factory_config(provided=IHTMLParagraph) class HTMLParagraph(BaseParagraph): """HTML paragraph""" @@ -106,6 +119,7 @@ icon_hint = _("Rich text") body = FieldProperty(IHTMLParagraph['body']) + renderer = FieldProperty(IHTMLParagraph['renderer']) @utility_config(name=HTML_PARAGRAPH_TYPE, provides=IParagraphFactory) @@ -223,3 +237,10 @@ else: output.append(translate(MISSING_LANG_VALUE).format(field=field_title, lang=lang)) return output + + +@vocabulary_config(name=HTML_PARAGRAPH_RENDERERS) +class HTMLParagraphRendererVocabulary(RenderersVocabulary): + """HTML paragraph renderers vocabulary""" + + content_interface = IHTMLParagraph