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