diff -r 5527bc086216 -r 0ef5de2d5674 src/pyams_content/component/paragraph/zmi/html.py --- a/src/pyams_content/component/paragraph/zmi/html.py Thu Feb 22 12:00:05 2018 +0100 +++ b/src/pyams_content/component/paragraph/zmi/html.py Thu Feb 22 15:58:28 2018 +0100 @@ -19,9 +19,10 @@ from pyams_content.component.association.interfaces import IAssociationTarget from pyams_content.component.association.zmi.interfaces import IAssociationsParentForm from pyams_content.component.illustration.interfaces import IIllustration -from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget, IParagraphContainer, \ - IParagraphPreview -from pyams_content.component.paragraph.interfaces.html import IHTMLParagraph, IRawParagraph +from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget, IParagraphFactorySettings, \ + IParagraphContainer, IParagraphPreview +from pyams_content.component.paragraph.interfaces.html import IHTMLParagraph, IRawParagraph, RAW_PARAGRAPH_TYPE, \ + HTML_PARAGRAPH_TYPE from pyams_content.component.paragraph.zmi.interfaces import IParagraphInnerEditor, IParagraphContainerView from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION from pyams_form.interfaces.form import IInnerForm, IEditFormButtons @@ -39,6 +40,7 @@ from pyams_content.component.paragraph.zmi.container import ParagraphContainerTable, \ ParagraphTitleToolbarViewletManager from pyams_pagelet.pagelet import pagelet_config +from pyams_skin.viewlet.menu import MenuDivider from pyams_template.template import template_config from pyams_utils.adapter import adapter_config from pyams_utils.traversing import get_parent @@ -55,6 +57,18 @@ # Raw HTML paragraph # +@viewlet_config(name='add-raw-paragraph.divider', context=IParagraphContainerTarget, view=IParagraphContainerView, + layer=IPyAMSLayer, manager=IToolbarAddingMenu, weight=990) +class RawParagraphAddMenuDivider(MenuDivider): + """Raw paragraph add menu divider""" + + def __new__(cls, context, request, view, manager): + settings = get_parent(context, IParagraphFactorySettings) + if (settings is not None) and (RawParagraphAddMenu.paragraph_type not in (settings.allowed_paragraphs or ())): + return None + return MenuDivider.__new__(cls) + + @viewlet_config(name='add-raw-paragraph.menu', context=IParagraphContainerTarget, view=IParagraphContainerView, layer=IPyAMSLayer, manager=IToolbarAddingMenu, weight=999) class RawParagraphAddMenu(BaseParagraphAddMenu): @@ -63,7 +77,7 @@ label = _("Add raw HTML paragraph...") label_css_class = 'fa fa-fw fa-code' url = 'add-raw-paragraph.html' - paragraph_type = 'raw' + paragraph_type = RAW_PARAGRAPH_TYPE @pagelet_config(name='add-raw-paragraph.html', context=IParagraphContainerTarget, layer=IPyAMSLayer, @@ -178,7 +192,7 @@ label = _("Add rich text paragraph...") label_css_class = 'fa fa-fw fa-html5' url = 'add-html-paragraph.html' - paragraph_type = 'HTML' + paragraph_type = HTML_PARAGRAPH_TYPE @pagelet_config(name='add-html-paragraph.html', context=IParagraphContainerTarget, layer=IPyAMSLayer,