# HG changeset patch # User Thierry Florac # Date 1537867405 -7200 # Node ID 7a95fe7d51b0037d81a66cbd189358bd281336a7 # Parent 4f1a82f040c44eb1621b8b4243ba4b49ca3eb20c Added shared content title portlet diff -r 4f1a82f040c4 -r 7a95fe7d51b0 src/pyams_content/component/paragraph/portlet/__init__.py --- a/src/pyams_content/component/paragraph/portlet/__init__.py Mon Sep 24 16:17:34 2018 +0200 +++ b/src/pyams_content/component/paragraph/portlet/__init__.py Tue Sep 25 11:23:25 2018 +0200 @@ -22,18 +22,19 @@ # import packages from pyams_content.component.paragraph import BaseParagraph # import interfaces -from pyams_content.component.paragraph.interfaces import IParagraphFactory, IParagraphContainerTarget, \ - IParagraphContainer +from pyams_content.component.paragraph.interfaces import IParagraphContainer, IParagraphContainerTarget, \ + IParagraphFactory from pyams_content.component.paragraph.portlet.interfaces import IParagraphContainerPortletSettings, \ IParagraphNavigationPortletSettings from pyams_i18n.interfaces import II18n -from pyams_portal.portlet import PortletSettings, portlet_config, Portlet +from pyams_portal.portlet import Portlet, PortletSettings, portlet_config from pyams_utils.factory import factory_config from pyams_utils.interfaces import VIEW_PERMISSION from pyams_utils.registry import get_global_registry from pyams_utils.request import check_request from pyams_utils.traversing import get_parent + # # Paragraphs container portlet # @@ -98,7 +99,6 @@ class ParagraphNavigationPortletSettings(PortletSettings): """Paragraph navigation portlet settings""" - display_title = FieldProperty(IParagraphNavigationPortletSettings['display_title']) paragraphs = FieldProperty(IParagraphNavigationPortletSettings['paragraphs']) factories = FieldProperty(IParagraphNavigationPortletSettings['factories']) anchors_only = FieldProperty(IParagraphNavigationPortletSettings['anchors_only']) diff -r 4f1a82f040c4 -r 7a95fe7d51b0 src/pyams_content/component/paragraph/portlet/interfaces/__init__.py --- a/src/pyams_content/component/paragraph/portlet/interfaces/__init__.py Mon Sep 24 16:17:34 2018 +0200 +++ b/src/pyams_content/component/paragraph/portlet/interfaces/__init__.py Tue Sep 25 11:23:25 2018 +0200 @@ -16,7 +16,7 @@ # import standard library # import packages -from zope.schema import Bool, Set, Choice, List +from zope.schema import Bool, Choice, List, Set from pyams_content import _ # import interfaces @@ -49,11 +49,6 @@ class IParagraphNavigationPortletSettings(IPortletSettings): """Paragraphs container navigation settings interface""" - display_title = Bool(title=_("Display content title?"), - description=_("If 'no', content's title will not be repeated into navigation portlet"), - required=True, - default=True) - paragraphs = List(title=_("Selected paragraphs"), description=_("List of paragraphs selected for navigation; an empty selection means that " "all paragraphs will be selectable by following filters; otherwise, " diff -r 4f1a82f040c4 -r 7a95fe7d51b0 src/pyams_content/component/paragraph/portlet/zmi/__init__.py --- a/src/pyams_content/component/paragraph/portlet/zmi/__init__.py Mon Sep 24 16:17:34 2018 +0200 +++ b/src/pyams_content/component/paragraph/portlet/zmi/__init__.py Tue Sep 25 11:23:25 2018 +0200 @@ -9,34 +9,28 @@ # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # -from pyams_content.component.paragraph.portlet import IParagraphNavigationPortletSettings __docformat__ = 'restructuredtext' - -# import standard library - -# import interfaces -from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget -from pyams_content.component.paragraph.portlet.interfaces import IParagraphContainerPortletSettings -from pyams_form.interfaces.form import IInnerTabForm -from pyams_pagelet.interfaces import IPagelet -from pyams_portal.interfaces import IPortletPreviewer -from pyams_skin.layer import IPyAMSLayer -from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION -from pyams_utils.interfaces.data import IObjectData - -# import packages -from pyams_form.form import AJAXEditForm -from pyams_pagelet.pagelet import pagelet_config -from pyams_portal.portlet import PortletPreviewer -from pyams_portal.zmi.portlet import PortletSettingsEditor, PortletSettingsPropertiesEditor -from pyams_template.template import template_config -from pyams_utils.adapter import adapter_config -from pyams_utils.traversing import get_parent from zope.interface import Interface, alsoProvides from pyams_content import _ +from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget +from pyams_content.component.paragraph.portlet import IParagraphNavigationPortletSettings +from pyams_content.component.paragraph.portlet.interfaces import IParagraphContainerPortletSettings +from pyams_form.form import AJAXEditForm +from pyams_form.interfaces.form import IInnerTabForm +from pyams_pagelet.interfaces import IPagelet +from pyams_pagelet.pagelet import pagelet_config +from pyams_portal.interfaces import IPortletPreviewer +from pyams_portal.portlet import PortletPreviewer +from pyams_portal.zmi.portlet import PortletSettingsEditor, PortletSettingsPropertiesEditor +from pyams_skin.layer import IPyAMSLayer +from pyams_template.template import template_config +from pyams_utils.adapter import adapter_config +from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION +from pyams_utils.interfaces.data import IObjectData +from pyams_utils.traversing import get_parent # diff -r 4f1a82f040c4 -r 7a95fe7d51b0 src/pyams_content/component/paragraph/portlet/zmi/templates/navigation-preview.pt --- a/src/pyams_content/component/paragraph/portlet/zmi/templates/navigation-preview.pt Mon Sep 24 16:17:34 2018 +0200 +++ b/src/pyams_content/component/paragraph/portlet/zmi/templates/navigation-preview.pt Tue Sep 25 11:23:25 2018 +0200 @@ -1,8 +1,4 @@ -
- - Display content title -
Selected paragraphs: diff -r 4f1a82f040c4 -r 7a95fe7d51b0 src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.mo Binary file src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.mo has changed diff -r 4f1a82f040c4 -r 7a95fe7d51b0 src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po --- a/src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po Mon Sep 24 16:17:34 2018 +0200 +++ b/src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po Tue Sep 25 11:23:25 2018 +0200 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE 1.0\n" -"POT-Creation-Date: 2018-09-24 16:10+0200\n" +"POT-Creation-Date: 2018-09-25 11:21+0200\n" "PO-Revision-Date: 2015-09-10 10:42+0200\n" "Last-Translator: Thierry Florac \n" "Language-Team: French\n" @@ -1008,46 +1008,42 @@ msgid "Content paragraphs" msgstr "Blocs de contenu" -#: src/pyams_content/component/paragraph/portlet/__init__.py:135 +#: src/pyams_content/component/paragraph/portlet/__init__.py:134 msgid "Paragraphs navigation anchors" msgstr "Navigation au sein des blocs" -#: src/pyams_content/component/paragraph/portlet/zmi/__init__.py:73 -#: src/pyams_content/component/paragraph/portlet/zmi/__init__.py:128 +#: src/pyams_content/component/paragraph/portlet/zmi/__init__.py:68 +#: src/pyams_content/component/paragraph/portlet/zmi/__init__.py:123 msgid "No filter, all paragraphs selected" msgstr "Pas de filtre, tous les blocs sont acceptés" -#: src/pyams_content/component/paragraph/portlet/zmi/__init__.py:80 -#: src/pyams_content/component/paragraph/portlet/zmi/__init__.py:135 +#: src/pyams_content/component/paragraph/portlet/zmi/__init__.py:75 +#: src/pyams_content/component/paragraph/portlet/zmi/__init__.py:130 msgid "No filter, all paragraph types selected" msgstr "Pas de filtre, tous les types de blocs sont acceptés" #: src/pyams_content/component/paragraph/portlet/zmi/templates/navigation-preview.pt:4 -msgid "Display content title" -msgstr "Afficher le titre" - -#: src/pyams_content/component/paragraph/portlet/zmi/templates/navigation-preview.pt:8 #: src/pyams_content/component/paragraph/portlet/zmi/templates/container-preview.pt:4 msgid "Selected paragraphs:" msgstr "Blocs sélectionnés :" -#: src/pyams_content/component/paragraph/portlet/zmi/templates/navigation-preview.pt:14 +#: src/pyams_content/component/paragraph/portlet/zmi/templates/navigation-preview.pt:10 #: src/pyams_content/component/paragraph/portlet/zmi/templates/container-preview.pt:10 msgid "Paragraphs filters:" msgstr "Filtrage des blocs :" -#: src/pyams_content/component/paragraph/portlet/zmi/templates/navigation-preview.pt:17 +#: src/pyams_content/component/paragraph/portlet/zmi/templates/navigation-preview.pt:13 #: src/pyams_content/component/paragraph/portlet/zmi/templates/container-preview.pt:13 msgid "Selected paragraph types:" msgstr "Types de blocs :" -#: src/pyams_content/component/paragraph/portlet/zmi/templates/navigation-preview.pt:22 +#: src/pyams_content/component/paragraph/portlet/zmi/templates/navigation-preview.pt:18 #: src/pyams_content/component/paragraph/portlet/zmi/templates/container-preview.pt:18 msgid "Only display anchors" msgstr "Ne sélectionner que les ancres" #: src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:30 -#: src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:57 +#: src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:52 msgid "Selected paragraphs" msgstr "Blocs sélectionnés" @@ -1063,7 +1059,7 @@ "pas appliqués" #: src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:37 -#: src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:64 +#: src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:59 msgid "Paragraph types" msgstr "Types de blocs" @@ -1076,7 +1072,7 @@ "est vide, tous les types de blocs seront pris en compte" #: src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:43 -#: src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:70 +#: src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:65 msgid "Anchors only?" msgstr "Ancres seulement ?" @@ -1086,17 +1082,7 @@ "Si 'oui', seuls les blocs définis comme ancres de navigation seront " "sélectionnés" -#: src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:52 -msgid "Display content title?" -msgstr "Afficher le titre ?" - #: src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:53 -msgid "If 'no', content's title will not be repeated into navigation portlet" -msgstr "" -"Si 'non', le titre du gabarit ne sera pas répété dans le composant de " -"navigation" - -#: src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:58 msgid "" "List of paragraphs selected for navigation; an empty selection means that " "all paragraphs will be selectable by following filters; otherwise, this " @@ -1107,7 +1093,7 @@ "dessous ; dans le cas contraire, cette sélection devient prioritaire et les " "autres filtres ne sont pas appliqués" -#: src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:65 +#: src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:60 msgid "" "Select list of paragraph types you want to use for navigation; an empty " "selection means that all paragraphs types will be selected" @@ -1116,7 +1102,7 @@ "navigation ; si la sélection est vide, tous les types de blocs seront pris " "en compte" -#: src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:71 +#: src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:66 msgid "If 'no', all paragraphs will be used as navigation anchors" msgstr "" "Si 'non', tous les blocs seront utilisés comme liens de navigation même si " @@ -3162,6 +3148,10 @@ msgid "This content is already retired and not visible." msgstr "Ce contenu est déjà retiré et n'est plus visible des internautes." +#: src/pyams_content/shared/common/portlet/title.py:39 +msgid "Content title" +msgstr "Titre du gabarit" + #: src/pyams_content/shared/common/portlet/head.py:46 msgid "Content header" msgstr "En-tête de gabarit" @@ -5961,6 +5951,18 @@ msgid "Hidden header" msgstr "Ne pas afficher d'en-tête de pages" +#~ msgid "Display content title" +#~ msgstr "Afficher le titre" + +#~ msgid "Display content title?" +#~ msgstr "Afficher le titre ?" + +#~ msgid "" +#~ "If 'no', content's title will not be repeated into navigation portlet" +#~ msgstr "" +#~ "Si 'non', le titre du gabarit ne sera pas répété dans le composant de " +#~ "navigation" + #~ msgid "({0} medias)" #~ msgstr "({0} médias dans la galerie)" @@ -6235,9 +6237,6 @@ #~ msgid "Images data" #~ msgstr "Image(s) à ajouter" -#~ msgid "Content type" -#~ msgstr "Type de contenu" - #~ msgid "A publication request has been submitted for content « {0} »" #~ msgstr "Une demande de publication a été soumise pour le contenu « {0} »" diff -r 4f1a82f040c4 -r 7a95fe7d51b0 src/pyams_content/locales/pyams_content.pot --- a/src/pyams_content/locales/pyams_content.pot Mon Sep 24 16:17:34 2018 +0200 +++ b/src/pyams_content/locales/pyams_content.pot Tue Sep 25 11:23:25 2018 +0200 @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE 1.0\n" -"POT-Creation-Date: 2018-09-24 16:10+0200\n" +"POT-Creation-Date: 2018-09-25 11:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" @@ -966,46 +966,42 @@ msgid "Content paragraphs" msgstr "" -#: ./src/pyams_content/component/paragraph/portlet/__init__.py:135 +#: ./src/pyams_content/component/paragraph/portlet/__init__.py:134 msgid "Paragraphs navigation anchors" msgstr "" -#: ./src/pyams_content/component/paragraph/portlet/zmi/__init__.py:73 -#: ./src/pyams_content/component/paragraph/portlet/zmi/__init__.py:128 +#: ./src/pyams_content/component/paragraph/portlet/zmi/__init__.py:68 +#: ./src/pyams_content/component/paragraph/portlet/zmi/__init__.py:123 msgid "No filter, all paragraphs selected" msgstr "" -#: ./src/pyams_content/component/paragraph/portlet/zmi/__init__.py:80 -#: ./src/pyams_content/component/paragraph/portlet/zmi/__init__.py:135 +#: ./src/pyams_content/component/paragraph/portlet/zmi/__init__.py:75 +#: ./src/pyams_content/component/paragraph/portlet/zmi/__init__.py:130 msgid "No filter, all paragraph types selected" msgstr "" #: ./src/pyams_content/component/paragraph/portlet/zmi/templates/navigation-preview.pt:4 -msgid "Display content title" -msgstr "" - -#: ./src/pyams_content/component/paragraph/portlet/zmi/templates/navigation-preview.pt:8 #: ./src/pyams_content/component/paragraph/portlet/zmi/templates/container-preview.pt:4 msgid "Selected paragraphs:" msgstr "" -#: ./src/pyams_content/component/paragraph/portlet/zmi/templates/navigation-preview.pt:14 +#: ./src/pyams_content/component/paragraph/portlet/zmi/templates/navigation-preview.pt:10 #: ./src/pyams_content/component/paragraph/portlet/zmi/templates/container-preview.pt:10 msgid "Paragraphs filters:" msgstr "" -#: ./src/pyams_content/component/paragraph/portlet/zmi/templates/navigation-preview.pt:17 +#: ./src/pyams_content/component/paragraph/portlet/zmi/templates/navigation-preview.pt:13 #: ./src/pyams_content/component/paragraph/portlet/zmi/templates/container-preview.pt:13 msgid "Selected paragraph types:" msgstr "" -#: ./src/pyams_content/component/paragraph/portlet/zmi/templates/navigation-preview.pt:22 +#: ./src/pyams_content/component/paragraph/portlet/zmi/templates/navigation-preview.pt:18 #: ./src/pyams_content/component/paragraph/portlet/zmi/templates/container-preview.pt:18 msgid "Only display anchors" msgstr "" #: ./src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:30 -#: ./src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:57 +#: ./src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:52 msgid "Selected paragraphs" msgstr "" @@ -1017,7 +1013,7 @@ msgstr "" #: ./src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:37 -#: ./src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:64 +#: ./src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:59 msgid "Paragraph types" msgstr "" @@ -1028,7 +1024,7 @@ msgstr "" #: ./src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:43 -#: ./src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:70 +#: ./src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:65 msgid "Anchors only?" msgstr "" @@ -1036,28 +1032,20 @@ msgid "If 'yes', only paragraphs set as 'anchors' will be selected" msgstr "" -#: ./src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:52 -msgid "Display content title?" -msgstr "" - #: ./src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:53 -msgid "If 'no', content's title will not be repeated into navigation portlet" -msgstr "" - -#: ./src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:58 msgid "" "List of paragraphs selected for navigation; an empty selection means that all" " paragraphs will be selectable by following filters; otherwise, this " "selection will have priority" msgstr "" -#: ./src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:65 +#: ./src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:60 msgid "" "Select list of paragraph types you want to use for navigation; an empty " "selection means that all paragraphs types will be selected" msgstr "" -#: ./src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:71 +#: ./src/pyams_content/component/paragraph/portlet/interfaces/__init__.py:66 msgid "If 'no', all paragraphs will be used as navigation anchors" msgstr "" @@ -2977,6 +2965,10 @@ msgid "This content is already retired and not visible." msgstr "" +#: ./src/pyams_content/shared/common/portlet/title.py:39 +msgid "Content title" +msgstr "" + #: ./src/pyams_content/shared/common/portlet/head.py:46 msgid "Content header" msgstr "" diff -r 4f1a82f040c4 -r 7a95fe7d51b0 src/pyams_content/shared/common/portlet/interfaces/__init__.py --- a/src/pyams_content/shared/common/portlet/interfaces/__init__.py Mon Sep 24 16:17:34 2018 +0200 +++ b/src/pyams_content/shared/common/portlet/interfaces/__init__.py Tue Sep 25 11:23:25 2018 +0200 @@ -15,10 +15,9 @@ from zope.interface import Interface from zope.schema import Bool +from pyams_content import _ from pyams_portal.interfaces import IPortletSettings -from pyams_content import _ - class ISharedContentHeaderPortletSettings(IPortletSettings): """Shared content header portlet settings""" @@ -47,3 +46,7 @@ class ISharedContentHeadViewletManager(Interface): """Shared content head viewlet manager marker interface""" + + +class ISharedContentTitlePortletSettings(IPortletSettings): + """Shared content title portlet settings""" diff -r 4f1a82f040c4 -r 7a95fe7d51b0 src/pyams_content/shared/common/portlet/title.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/pyams_content/shared/common/portlet/title.py Tue Sep 25 11:23:25 2018 +0200 @@ -0,0 +1,42 @@ +# +# Copyright (c) 2008-2018 Thierry Florac +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# + +__docformat__ = 'restructuredtext' + +from zope.interface import implementer + +from pyams_content import _ +from pyams_content.shared.common.portlet.interfaces import ISharedContentTitlePortletSettings +from pyams_portal.portlet import Portlet, PortletSettings, portlet_config +from pyams_utils.factory import factory_config +from pyams_utils.interfaces import VIEW_PERMISSION + + +SHARED_CONTENT_TITLE_PORTLET_NAME = 'pyams_content.portlet.shared.title' + + +@implementer(ISharedContentTitlePortletSettings) +@factory_config(provided=ISharedContentTitlePortletSettings) +class SharedContentTitlePortletSettings(PortletSettings): + """Shared content title portlet settings""" + + +@portlet_config(permission=VIEW_PERMISSION) +class SharedContentTitlePortlet(Portlet): + """Shared content title portlet""" + + name = SHARED_CONTENT_TITLE_PORTLET_NAME + label = _("Content title") + + toolbar_css_class = 'fa fa-fw fa-2x fa-bold' + + settings_factory = ISharedContentTitlePortletSettings diff -r 4f1a82f040c4 -r 7a95fe7d51b0 src/pyams_content/shared/common/portlet/zmi/templates/title-preview.pt diff -r 4f1a82f040c4 -r 7a95fe7d51b0 src/pyams_content/shared/common/portlet/zmi/title.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/pyams_content/shared/common/portlet/zmi/title.py Tue Sep 25 11:23:25 2018 +0200 @@ -0,0 +1,55 @@ +# +# Copyright (c) 2008-2018 Thierry Florac +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# + +__docformat__ = 'restructuredtext' + +from zope.interface import Interface + +from pyams_content.shared.common.portlet.interfaces import ISharedContentTitlePortletSettings +from pyams_form.form import AJAXEditForm +from pyams_form.interfaces.form import IInnerTabForm +from pyams_pagelet.interfaces import IPagelet +from pyams_pagelet.pagelet import pagelet_config +from pyams_portal.interfaces import IPortletPreviewer +from pyams_portal.portlet import PortletPreviewer +from pyams_portal.zmi.portlet import PortletSettingsEditor, PortletSettingsPropertiesEditor +from pyams_skin.layer import IPyAMSLayer +from pyams_template.template import template_config +from pyams_utils.adapter import adapter_config +from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION + + +@pagelet_config(name='properties.html', context=ISharedContentTitlePortletSettings, layer=IPyAMSLayer, + permission=VIEW_SYSTEM_PERMISSION) +class SharedContentTitlePortletSettingsEditor(PortletSettingsEditor): + """Shared content title portlet settings editor""" + + settings = ISharedContentTitlePortletSettings + + +@adapter_config(name='properties', context=(Interface, IPyAMSLayer, SharedContentTitlePortletSettingsEditor), + provides=IInnerTabForm) +class SharedContentTitlePortletSettingsPropertiesEditor(PortletSettingsPropertiesEditor): + """Shared content title portlet settings properties editor""" + + +@adapter_config(name='properties.json', context=(ISharedContentTitlePortletSettings, IPyAMSLayer), + provides=IPagelet) +class SharedContentTitlePortletAJAXEditor(AJAXEditForm, SharedContentTitlePortletSettingsEditor): + """Shared content title portlet settings editor, JSON renderer""" + + +@adapter_config(context=(Interface, IPyAMSLayer, Interface, ISharedContentTitlePortletSettings), + provides=IPortletPreviewer) +@template_config(template='templates/title-preview.pt', layer=IPyAMSLayer) +class SharedContentTitlePortletPreviewer(PortletPreviewer): + """Shared content title portlet previewer"""