src/pyams_content/component/paragraph/zmi/html.py
changeset 407 0ef5de2d5674
parent 406 5527bc086216
child 415 43f42d74cdb8
equal deleted inserted replaced
406:5527bc086216 407:0ef5de2d5674
    17 
    17 
    18 # import interfaces
    18 # import interfaces
    19 from pyams_content.component.association.interfaces import IAssociationTarget
    19 from pyams_content.component.association.interfaces import IAssociationTarget
    20 from pyams_content.component.association.zmi.interfaces import IAssociationsParentForm
    20 from pyams_content.component.association.zmi.interfaces import IAssociationsParentForm
    21 from pyams_content.component.illustration.interfaces import IIllustration
    21 from pyams_content.component.illustration.interfaces import IIllustration
    22 from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget, IParagraphContainer, \
    22 from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget, IParagraphFactorySettings, \
    23     IParagraphPreview
    23     IParagraphContainer, IParagraphPreview
    24 from pyams_content.component.paragraph.interfaces.html import IHTMLParagraph, IRawParagraph
    24 from pyams_content.component.paragraph.interfaces.html import IHTMLParagraph, IRawParagraph, RAW_PARAGRAPH_TYPE, \
       
    25     HTML_PARAGRAPH_TYPE
    25 from pyams_content.component.paragraph.zmi.interfaces import IParagraphInnerEditor, IParagraphContainerView
    26 from pyams_content.component.paragraph.zmi.interfaces import IParagraphInnerEditor, IParagraphContainerView
    26 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
    27 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
    27 from pyams_form.interfaces.form import IInnerForm, IEditFormButtons
    28 from pyams_form.interfaces.form import IInnerForm, IEditFormButtons
    28 from pyams_i18n.interfaces import II18n
    29 from pyams_i18n.interfaces import II18n
    29 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu
    30 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu
    37 from pyams_content.component.paragraph.zmi import BaseParagraphAJAXAddForm, BaseParagraphAJAXEditForm, \
    38 from pyams_content.component.paragraph.zmi import BaseParagraphAJAXAddForm, BaseParagraphAJAXEditForm, \
    38     BaseParagraphAddMenu, BaseParagraphPropertiesEditForm
    39     BaseParagraphAddMenu, BaseParagraphPropertiesEditForm
    39 from pyams_content.component.paragraph.zmi.container import ParagraphContainerTable, \
    40 from pyams_content.component.paragraph.zmi.container import ParagraphContainerTable, \
    40     ParagraphTitleToolbarViewletManager
    41     ParagraphTitleToolbarViewletManager
    41 from pyams_pagelet.pagelet import pagelet_config
    42 from pyams_pagelet.pagelet import pagelet_config
       
    43 from pyams_skin.viewlet.menu import MenuDivider
    42 from pyams_template.template import template_config
    44 from pyams_template.template import template_config
    43 from pyams_utils.adapter import adapter_config
    45 from pyams_utils.adapter import adapter_config
    44 from pyams_utils.traversing import get_parent
    46 from pyams_utils.traversing import get_parent
    45 from pyams_viewlet.viewlet import viewlet_config, BaseContentProvider
    47 from pyams_viewlet.viewlet import viewlet_config, BaseContentProvider
    46 from pyams_zmi.form import AdminDialogAddForm
    48 from pyams_zmi.form import AdminDialogAddForm
    53 
    55 
    54 #
    56 #
    55 # Raw HTML paragraph
    57 # Raw HTML paragraph
    56 #
    58 #
    57 
    59 
       
    60 @viewlet_config(name='add-raw-paragraph.divider', context=IParagraphContainerTarget, view=IParagraphContainerView,
       
    61                 layer=IPyAMSLayer, manager=IToolbarAddingMenu, weight=990)
       
    62 class RawParagraphAddMenuDivider(MenuDivider):
       
    63     """Raw paragraph add menu divider"""
       
    64 
       
    65     def __new__(cls, context, request, view, manager):
       
    66         settings = get_parent(context, IParagraphFactorySettings)
       
    67         if (settings is not None) and (RawParagraphAddMenu.paragraph_type not in (settings.allowed_paragraphs or ())):
       
    68             return None
       
    69         return MenuDivider.__new__(cls)
       
    70 
       
    71 
    58 @viewlet_config(name='add-raw-paragraph.menu', context=IParagraphContainerTarget, view=IParagraphContainerView,
    72 @viewlet_config(name='add-raw-paragraph.menu', context=IParagraphContainerTarget, view=IParagraphContainerView,
    59                 layer=IPyAMSLayer, manager=IToolbarAddingMenu, weight=999)
    73                 layer=IPyAMSLayer, manager=IToolbarAddingMenu, weight=999)
    60 class RawParagraphAddMenu(BaseParagraphAddMenu):
    74 class RawParagraphAddMenu(BaseParagraphAddMenu):
    61     """Raw HTML paragraph add menu"""
    75     """Raw HTML paragraph add menu"""
    62 
    76 
    63     label = _("Add raw HTML paragraph...")
    77     label = _("Add raw HTML paragraph...")
    64     label_css_class = 'fa fa-fw fa-code'
    78     label_css_class = 'fa fa-fw fa-code'
    65     url = 'add-raw-paragraph.html'
    79     url = 'add-raw-paragraph.html'
    66     paragraph_type = 'raw'
    80     paragraph_type = RAW_PARAGRAPH_TYPE
    67 
    81 
    68 
    82 
    69 @pagelet_config(name='add-raw-paragraph.html', context=IParagraphContainerTarget, layer=IPyAMSLayer,
    83 @pagelet_config(name='add-raw-paragraph.html', context=IParagraphContainerTarget, layer=IPyAMSLayer,
    70                 permission=MANAGE_CONTENT_PERMISSION)
    84                 permission=MANAGE_CONTENT_PERMISSION)
    71 class RawParagraphAddForm(AdminDialogAddForm):
    85 class RawParagraphAddForm(AdminDialogAddForm):
   176     """Rich text paragraph add menu"""
   190     """Rich text paragraph add menu"""
   177 
   191 
   178     label = _("Add rich text paragraph...")
   192     label = _("Add rich text paragraph...")
   179     label_css_class = 'fa fa-fw fa-html5'
   193     label_css_class = 'fa fa-fw fa-html5'
   180     url = 'add-html-paragraph.html'
   194     url = 'add-html-paragraph.html'
   181     paragraph_type = 'HTML'
   195     paragraph_type = HTML_PARAGRAPH_TYPE
   182 
   196 
   183 
   197 
   184 @pagelet_config(name='add-html-paragraph.html', context=IParagraphContainerTarget, layer=IPyAMSLayer,
   198 @pagelet_config(name='add-html-paragraph.html', context=IParagraphContainerTarget, layer=IPyAMSLayer,
   185                 permission=MANAGE_CONTENT_PERMISSION)
   199                 permission=MANAGE_CONTENT_PERMISSION)
   186 class HTMLParagraphAddForm(AdminDialogAddForm):
   200 class HTMLParagraphAddForm(AdminDialogAddForm):