--- a/src/pyams_content/component/extfile/__init__.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/component/extfile/__init__.py Wed Jun 06 11:20:14 2018 +0200
@@ -222,8 +222,6 @@
icon_class = 'fa-file-image-o'
icon_hint = _("Image")
- title = FieldProperty(IExtMedia['title'])
- alt_title = FieldProperty(IExtImage['alt_title'])
_data = I18nFileProperty(IExtImage['data'])
@property
@@ -254,7 +252,6 @@
icon_class = 'fa-file-video-o'
icon_hint = _("Video")
- title = FieldProperty(IExtMedia['title'])
data = I18nFileProperty(IExtVideo['data'])
register_file_factory('video', ExtVideo, _("Video"))
@@ -274,7 +271,6 @@
icon_class = 'fa-file-audio-o'
icon_hint = _("Audio file")
- title = FieldProperty(IExtMedia['title'])
data = I18nFileProperty(IExtAudio['data'])
register_file_factory('audio', ExtAudio, _("Audio file"))
--- a/src/pyams_content/component/extfile/interfaces/__init__.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/component/extfile/interfaces/__init__.py Wed Jun 06 11:20:14 2018 +0200
@@ -33,7 +33,7 @@
class IBaseExtFile(IAssociationItem):
"""Base external file interface"""
- title = I18nTextLineField(title=_("Title"),
+ title = I18nTextLineField(title=_("Alternate title"),
description=_("File title, as shown in front-office"),
required=False)
@@ -70,14 +70,6 @@
class IExtImage(IExtMedia):
"""External image file interface"""
- title = I18nTextLineField(title=_("Legend"),
- description=_("File legend, as shown in front-office"),
- required=False)
-
- alt_title = I18nTextLineField(title=_("Accessibility title"),
- description=_("Alternate title used to describe image content"),
- required=False)
-
data = I18nThumbnailImageField(title=_("Image data"),
description=_("Image content"),
required=True)
--- a/src/pyams_content/component/extfile/zmi/__init__.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/component/extfile/zmi/__init__.py Wed Jun 06 11:20:14 2018 +0200
@@ -101,7 +101,7 @@
legend = _("Add new external file")
icon_css_class = 'fa fa-fw fa-file-text-o'
- fields = field.Fields(IExtFile).select('title', 'description', 'author', 'language', 'data', 'filename')
+ fields = field.Fields(IExtFile).select('data', 'filename', 'title', 'description', 'author', 'language')
ajax_handler = 'add-extfile.json'
edit_permission = MANAGE_CONTENT_PERMISSION
@@ -142,7 +142,7 @@
icon_css_class = 'fa fa-fw fa-file-text-o'
dialog_class = 'modal-large'
- fields = field.Fields(IExtFile).select('title', 'description', 'author', 'language', 'data', 'filename')
+ fields = field.Fields(IExtFile).select('data', 'filename', 'title', 'description', 'author', 'language')
ajax_handler = 'properties.json'
edit_permission = MANAGE_CONTENT_PERMISSION
@@ -208,8 +208,7 @@
legend = _("Add new image")
icon_css_class = 'fa fa-fw fa-file-image-o'
- fields = field.Fields(IExtImage).select('title', 'alt_title', 'description', 'author',
- 'language', 'data', 'filename')
+ fields = field.Fields(IExtImage).select('data', 'filename', 'title', 'description', 'author')
ajax_handler = 'add-extimage.json'
def updateWidgets(self, prefix=None):
@@ -245,8 +244,7 @@
legend = _("Update image properties")
icon_css_class = 'fa fa-fw fa-file-image-o'
- fields = field.Fields(IExtImage).select('title', 'alt_title', 'description', 'author',
- 'language', 'data', 'filename')
+ fields = field.Fields(IExtImage).select('data', 'filename', 'title', 'description', 'author')
def updateWidgets(self, prefix=None):
super(ExtImagePropertiesEditForm, self).updateWidgets(prefix)
@@ -312,7 +310,7 @@
legend = _("Add new video")
icon_css_class = 'fa fa-fw fa-file-video-o'
- fields = field.Fields(IExtVideo).select('title', 'description', 'author', 'language', 'data', 'filename')
+ fields = field.Fields(IExtVideo).select('data', 'filename', 'title', 'description', 'author', 'language')
ajax_handler = 'add-extvideo.json'
def create(self, data):
@@ -341,7 +339,7 @@
legend = _("Update video properties")
icon_css_class = 'fa fa-fw fa-file-video-o'
- fields = field.Fields(IExtVideo).select('title', 'description', 'author', 'language', 'data', 'filename')
+ fields = field.Fields(IExtVideo).select('data', 'filename', 'title', 'description', 'author', 'language')
@view_config(name='properties.json', context=IExtVideo, request_type=IPyAMSLayer,
@@ -400,7 +398,7 @@
legend = _("Add new audio file")
icon_css_class = 'fa fa-fw fa-file-audio-o'
- fields = field.Fields(IExtAudio).select('title', 'description', 'author', 'language', 'data', 'filename')
+ fields = field.Fields(IExtAudio).select('data', 'filename', 'title', 'description', 'author', 'language')
ajax_handler = 'add-extaudio.json'
def create(self, data):
@@ -429,7 +427,7 @@
legend = _("Update audio file properties")
icon_css_class = 'fa fa-fw fa-file-audio-o'
- fields = field.Fields(IExtAudio).select('title', 'description', 'author', 'language', 'data', 'filename')
+ fields = field.Fields(IExtAudio).select('data', 'filename', 'title', 'description', 'author', 'language')
@view_config(name='properties.json', context=IExtAudio, request_type=IPyAMSLayer,
--- a/src/pyams_content/component/paragraph/contact.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/component/paragraph/contact.py Wed Jun 06 11:20:14 2018 +0200
@@ -48,14 +48,14 @@
name = FieldProperty(IContactParagraph['name'])
charge = FieldProperty(IContactParagraph['charge'])
+ contact_email = FieldProperty(IContactParagraph['contact_email'])
+ contact_form = FieldProperty(IContactParagraph['contact_form'])
_photo = FileProperty(IContactParagraph['photo'])
if have_gis:
gps_location = FieldProperty(IContactParagraph['gps_location'])
address = FieldProperty(IContactParagraph['address'])
- contact_email = FieldProperty(IContactParagraph['contact_email'])
- contact_form = FieldProperty(IContactParagraph['contact_form'])
renderer = FieldProperty(IContactParagraph['renderer'])
@property
--- a/src/pyams_content/component/paragraph/interfaces/contact.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/component/paragraph/interfaces/contact.py Wed Jun 06 11:20:14 2018 +0200
@@ -54,6 +54,15 @@
description=_("Label of contact function"),
required=False)
+ contact_email = MailAddressField(title=_("Email address"),
+ description=_("Contact email address"),
+ required=False)
+
+ contact_form = InternalReference(title=_("Contact form"),
+ description=_("Reference of contact form"),
+ required=False,
+ content_type=FORM_CONTENT_TYPE)
+
photo = ImageField(title=_("Photo"),
description=_("Use 'browse' button to select contact picture"),
required=False)
@@ -66,15 +75,6 @@
address = Text(title=_("Address"),
required=False)
- contact_email = MailAddressField(title=_("Email address"),
- description=_("Contact email address"),
- required=False)
-
- contact_form = InternalReference(title=_("Contact form"),
- description=_("Reference of contact form"),
- required=False,
- content_type=FORM_CONTENT_TYPE)
-
renderer = Choice(title=_("Contact template"),
description=_("Presentation template used for this contact"),
vocabulary=CONTACT_PARAGRAPH_RENDERERS,
--- a/src/pyams_content/component/paragraph/interfaces/pictogram.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/component/paragraph/interfaces/pictogram.py Wed Jun 06 11:20:14 2018 +0200
@@ -45,7 +45,7 @@
pictogram_name = Choice(title=_("Pictogram"),
description=_("Name of the pictogram to select"),
- required=True,
+ required=False,
vocabulary=SELECTED_PICTOGRAM_VOCABULARY)
pictogram = Attribute("Select pictogram object")
--- a/src/pyams_content/component/paragraph/zmi/keynumber.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/component/paragraph/zmi/keynumber.py Wed Jun 06 11:20:14 2018 +0200
@@ -252,6 +252,9 @@
attrName = 'label'
weight = 20
+ def getValue(self, obj):
+ return super(KeyNumbersTableLabelColumn, self).getValue(obj) or '--'
+
@adapter_config(name='text', context=(IKeyNumberContainerTarget, IPyAMSLayer, KeyNumbersTable), provides=IColumn)
class KeyNumbersTableTextColumn(I18nColumn, I18nAttrColumn):
@@ -261,6 +264,9 @@
attrName = 'text'
weight = 30
+ def getValue(self, obj):
+ return super(KeyNumbersTableTextColumn, self).getValue(obj) or '--'
+
@adapter_config(name='trash', context=(IKeyNumberContainerTarget, IPyAMSLayer, KeyNumbersTable), provides=IColumn)
class KeyNumbersTableTrashColumn(ProtectedFormObjectMixin, TrashColumn):
--- a/src/pyams_content/component/paragraph/zmi/milestone.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/component/paragraph/zmi/milestone.py Wed Jun 06 11:20:14 2018 +0200
@@ -247,6 +247,9 @@
attrName = 'title'
weight = 10
+ def getValue(self, obj):
+ return super(MilestonesTableNameColumn, self).getValue(obj) or '--'
+
@adapter_config(name='info', context=(IMilestoneContainerTarget, IPyAMSLayer, MilestonesTable), provides=IColumn)
class MilestonesTableInfoColumn(I18nColumn, I18nAttrColumn):
@@ -256,6 +259,9 @@
attrName = 'label'
weight = 20
+ def getValue(self, obj):
+ return super(MilestonesTableInfoColumn, self).getValue(obj) or '--'
+
@adapter_config(name='anchor', context=(IMilestoneContainerTarget, IPyAMSLayer, MilestonesTable), provides=IColumn)
class MilestonesTableAnchorColumn(I18nColumn, GetAttrColumn):
--- a/src/pyams_content/component/paragraph/zmi/pictogram.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/component/paragraph/zmi/pictogram.py Wed Jun 06 11:20:14 2018 +0200
@@ -23,13 +23,15 @@
from pyams_content.component.paragraph.zmi import IParagraphContainerView, IParagraphEditFormButtons
from pyams_content.component.paragraph.zmi.interfaces import IParagraphInnerEditor
from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
+from pyams_content.reference.pictograms.interfaces import IPictogramTable
from pyams_content.shared.common import IWfSharedContent
from pyams_form.interfaces.form import IInnerForm, IInnerSubForm
from pyams_i18n.interfaces import II18n
from pyams_skin.interfaces.viewlet import IToolbarAddingMenu, IWidgetTitleViewletManager
from pyams_skin.layer import IPyAMSLayer
+from pyams_utils.interfaces.data import IObjectData
from pyams_zmi.interfaces import IPropertiesEditForm
-from z3c.form.interfaces import INPUT_MODE
+from z3c.form.interfaces import INPUT_MODE, IDataExtractedEvent
from z3c.table.interfaces import IValues, IColumn
# import packages
@@ -48,6 +50,7 @@
from pyams_skin.table import BaseTable, SorterColumn, I18nColumn, TrashColumn, VisibilitySwitcherColumn
from pyams_skin.viewlet.toolbar import ToolbarAction
from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter
+from pyams_utils.registry import query_utility
from pyams_utils.text import get_text_start
from pyams_utils.traversing import get_parent
from pyams_utils.url import absolute_url
@@ -55,10 +58,11 @@
from pyams_zmi.form import AdminDialogAddForm, AdminDialogEditForm
from pyams_zmi.zmi.table import InnerTableView
from pyramid.decorator import reify
+from pyramid.events import subscriber
from pyramid.view import view_config
from z3c.form import field, button
from z3c.table.column import GetAttrColumn
-from zope.interface import implementer, Interface
+from zope.interface import implementer, alsoProvides, Interface, Invalid
from pyams_content import _
@@ -333,6 +337,22 @@
def updateWidgets(self, prefix=None):
super(PictogramAddForm, self).updateWidgets(prefix)
+ if 'pictogram_name' in self.widgets:
+ pictograms = query_utility(IPictogramTable)
+ if pictograms is not None:
+ label_id = '{0}_pictogram_label'.format(self.id)
+ widget = self.widgets['pictogram_name']
+ widget.after_widget_notice = '<span id="{0}" class="text-info">{1}</span>'.format(
+ label_id,
+ self.request.localizer.translate(_("Default header: --")))
+ widget.object_data = {
+ 'ams-change-handler': 'MyAMS.helpers.select2ChangeHelper',
+ 'ams-stop-propagation': 'true',
+ 'ams-select2-helper-type': 'html',
+ 'ams-select2-helper-url': absolute_url(pictograms, self.request, 'get-pictogram-header.html'),
+ 'ams-select2-helper-target': '#{0}'.format(label_id)
+ }
+ alsoProvides(widget, IObjectData)
if 'body' in self.widgets:
self.widgets['body'].widget_css_class = 'textarea height-100'
@@ -356,6 +376,14 @@
}
+@subscriber(IDataExtractedEvent, form_selector=PictogramAddForm)
+def handle_pictogram_add_form_data_extraction(event):
+ """Handle pictogram add form data extraction"""
+ data = event.data
+ if not data.get('pictogram_name'):
+ event.form.widgets.errors += (Invalid(_("You must select a pictogram!")), )
+
+
@pagelet_config(name='properties.html', context=IPictogramItem, layer=IPyAMSLayer, permission=MANAGE_CONTENT_PERMISSION)
class PictogramPropertiesEditForm(AdminDialogEditForm):
"""Pictogram properties edit form"""
@@ -371,6 +399,28 @@
def updateWidgets(self, prefix=None):
super(PictogramPropertiesEditForm, self).updateWidgets(prefix)
+ if 'pictogram_name' in self.widgets:
+ pictograms = query_utility(IPictogramTable)
+ if pictograms is not None:
+ pictogram = pictograms.get(self.context.pictogram_name)
+ label_id = '{0}_pictogram_label'.format(self.id)
+ widget = self.widgets['pictogram_name']
+ widget.required = True
+ if pictogram is None:
+ widget.after_widget_notice = '<span id="{0}" class="text-info">{1}</span>'.format(label_id, '--')
+ else:
+ widget.after_widget_notice = '<span id="{0}" class="text-info">{1}</span>'.format(
+ label_id,
+ self.request.localizer.translate(_("Default header: {0}")).format(
+ II18n(pictogram).query_attribute('header', request=self.request) or '--'))
+ widget.object_data = {
+ 'ams-change-handler': 'MyAMS.helpers.select2ChangeHelper',
+ 'ams-stop-propagation': 'true',
+ 'ams-select2-helper-type': 'html',
+ 'ams-select2-helper-url': absolute_url(pictograms, self.request, 'get-pictogram-header.html'),
+ 'ams-select2-helper-target': '#{0}'.format(label_id)
+ }
+ alsoProvides(widget, IObjectData)
if 'body' in self.widgets:
self.widgets['body'].widget_css_class = 'textarea height-100'
@@ -388,3 +438,11 @@
output.setdefault('events', []).append(
get_json_table_row_refresh_event(target, self.request, PictogramsTable, self.context))
return output
+
+
+@subscriber(IDataExtractedEvent, form_selector=PictogramPropertiesEditForm)
+def handle_pictogram_edit_form_data_extraction(event):
+ """Handle pictogram edit form data extraction"""
+ data = event.data
+ if not data.get('pictogram_name'):
+ event.form.widgets.errors += (Invalid(_("You must select a pictogram!")), )
--- a/src/pyams_content/features/alert/zmi/container.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/features/alert/zmi/container.py Wed Jun 06 11:20:14 2018 +0200
@@ -48,7 +48,7 @@
@viewlet_config(name='alerts.menu', context=IAlertTarget, layer=IPyAMSLayer, manager=ISiteManagementMenu,
- permission=MANAGE_SITE_ROOT_PERMISSION, weight=4)
+ permission=MANAGE_SITE_ROOT_PERMISSION, weight=30)
class AlertsMenu(MenuItem):
"""Alerts menu"""
Binary file src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.mo has changed
--- a/src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po Wed Jun 06 11:20:14 2018 +0200
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2018-05-30 11:11+0200\n"
+"POT-Creation-Date: 2018-06-06 10:19+0200\n"
"PO-Revision-Date: 2015-09-10 10:42+0200\n"
"Last-Translator: Thierry Florac <tflorac@ulthar.net>\n"
"Language-Team: French\n"
@@ -128,6 +128,16 @@
msgstr "Contenu de la galerie de médias"
#: src/pyams_content/component/gallery/zmi/interfaces.py:36
+msgid "Images or videos data"
+msgstr "Fichier (image ou vidéo)"
+
+#: src/pyams_content/component/gallery/zmi/interfaces.py:37
+msgid "You can upload a single file or choose to upload a whole ZIP archive"
+msgstr ""
+"Vous pouvez déposer les médias un par un, ou en nombre en les réunissant au "
+"préalable dans un fichier ZIP"
+
+#: src/pyams_content/component/gallery/zmi/interfaces.py:40
#: src/pyams_content/component/gallery/interfaces/__init__.py:61
#: src/pyams_content/component/extfile/interfaces/__init__.py:44
#: src/pyams_content/component/illustration/interfaces/__init__.py:56
@@ -137,7 +147,7 @@
msgid "Author"
msgstr "Auteur"
-#: src/pyams_content/component/gallery/zmi/interfaces.py:37
+#: src/pyams_content/component/gallery/zmi/interfaces.py:41
#: src/pyams_content/component/gallery/interfaces/__init__.py:62
#: src/pyams_content/component/extfile/interfaces/__init__.py:45
#: src/pyams_content/component/paragraph/interfaces/video.py:48
@@ -145,27 +155,17 @@
msgid "Name of document's author"
msgstr "Sous la forme \"Prénom Nom / Organisme\""
-#: src/pyams_content/component/gallery/zmi/interfaces.py:40
+#: src/pyams_content/component/gallery/zmi/interfaces.py:44
msgid "Author comments"
msgstr "À propos de l'auteur"
-#: src/pyams_content/component/gallery/zmi/interfaces.py:41
+#: src/pyams_content/component/gallery/zmi/interfaces.py:45
#: src/pyams_content/component/gallery/interfaces/__init__.py:66
msgid "Comments relatives to author's rights management"
msgstr ""
"Commentaires (non publiés mais à conserver) relatifs à l'auteur et à la "
"gestion de ses droits"
-#: src/pyams_content/component/gallery/zmi/interfaces.py:44
-msgid "Images or videos data"
-msgstr "Fichier (image ou vidéo)"
-
-#: src/pyams_content/component/gallery/zmi/interfaces.py:45
-msgid "You can upload a single file or choose to upload a whole ZIP archive"
-msgstr ""
-"Vous pouvez déposer les médias un par un, ou en nombre en les réunissant au "
-"préalable dans un fichier ZIP"
-
#: src/pyams_content/component/gallery/zmi/templates/gallery-medias.pt:11
msgid "Gallery medias"
msgstr "Contenu de la galerie"
@@ -179,19 +179,30 @@
msgstr "Agrandir l'image"
#: src/pyams_content/component/gallery/interfaces/__init__.py:47
-#: src/pyams_content/component/extfile/interfaces/__init__.py:73
+#: src/pyams_content/component/illustration/interfaces/__init__.py:41
+#: src/pyams_content/component/illustration/interfaces/__init__.py:76
+msgid "Image or video data"
+msgstr "Fichier (image ou vidéo)"
+
+#: src/pyams_content/component/gallery/interfaces/__init__.py:48
+#: src/pyams_content/component/illustration/interfaces/__init__.py:42
+#: src/pyams_content/component/illustration/interfaces/__init__.py:77
+msgid "Image or video content"
+msgstr ""
+"Cliquez sur le bouton 'Parcourir...' pour sélectionner un nouveau contenu..."
+
+#: src/pyams_content/component/gallery/interfaces/__init__.py:51
#: src/pyams_content/component/illustration/interfaces/__init__.py:45
msgid "Legend"
msgstr "Légende"
-#: src/pyams_content/component/gallery/interfaces/__init__.py:50
-#: src/pyams_content/component/extfile/interfaces/__init__.py:77
+#: src/pyams_content/component/gallery/interfaces/__init__.py:54
#: src/pyams_content/component/illustration/interfaces/__init__.py:48
#: src/pyams_content/reference/pictograms/interfaces/__init__.py:48
msgid "Accessibility title"
msgstr "Alternative (accessibilité)"
-#: src/pyams_content/component/gallery/interfaces/__init__.py:51
+#: src/pyams_content/component/gallery/interfaces/__init__.py:55
msgid "Alternate title used to describe media content"
msgstr ""
"Ce texte est affiché lorsque le média ne peut être téléchargé ou affiché ; "
@@ -199,19 +210,6 @@
"déficiences visuelles. Il doit donc décrire le contenu du média, pour se "
"conformer aux normes d'accessibilité."
-#: src/pyams_content/component/gallery/interfaces/__init__.py:54
-#: src/pyams_content/component/illustration/interfaces/__init__.py:41
-#: src/pyams_content/component/illustration/interfaces/__init__.py:76
-msgid "Image or video data"
-msgstr "Fichier (image ou vidéo)"
-
-#: src/pyams_content/component/gallery/interfaces/__init__.py:55
-#: src/pyams_content/component/illustration/interfaces/__init__.py:42
-#: src/pyams_content/component/illustration/interfaces/__init__.py:77
-msgid "Image or video content"
-msgstr ""
-"Cliquez sur le bouton 'Parcourir...' pour sélectionner un nouveau contenu..."
-
#: src/pyams_content/component/gallery/interfaces/__init__.py:58
#: src/pyams_content/component/gallery/interfaces/__init__.py:98
#: src/pyams_content/component/extfile/interfaces/__init__.py:40
@@ -239,7 +237,7 @@
"issue ; au besoin, préciser le nom de cette base"
#: src/pyams_content/component/gallery/interfaces/__init__.py:73
-#: src/pyams_content/component/extfile/interfaces/__init__.py:97
+#: src/pyams_content/component/extfile/interfaces/__init__.py:89
msgid "Audio data"
msgstr "Fichier"
@@ -272,7 +270,6 @@
msgstr "Si 'non', ce média ne sera pas présenté aux internautes"
#: src/pyams_content/component/gallery/interfaces/__init__.py:94
-#: src/pyams_content/component/extfile/interfaces/__init__.py:36
#: src/pyams_content/component/paragraph/zmi/milestone.py:246
#: src/pyams_content/component/paragraph/zmi/container.py:224
#: src/pyams_content/component/paragraph/interfaces/milestone.py:45
@@ -280,10 +277,10 @@
#: src/pyams_content/shared/common/zmi/dashboard.py:109
#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:188
#: src/pyams_content/shared/imagemap/zmi/container.py:123
-#: src/pyams_content/shared/site/zmi/folder.py:64
+#: src/pyams_content/shared/site/zmi/folder.py:68
#: src/pyams_content/root/zmi/templates/advanced-search.pt:188
#: src/pyams_content/interfaces/__init__.py:99
-#: src/pyams_content/reference/pictograms/zmi/__init__.py:162
+#: src/pyams_content/reference/pictograms/zmi/__init__.py:165
msgid "Title"
msgstr "Titre"
@@ -312,22 +309,22 @@
msgstr "Fichier"
#: src/pyams_content/component/extfile/__init__.py:223
-#: src/pyams_content/component/extfile/__init__.py:240
+#: src/pyams_content/component/extfile/__init__.py:238
#: src/pyams_content/shared/imagemap/interfaces/__init__.py:66
#: src/pyams_content/shared/logo/interfaces/__init__.py:46
#: src/pyams_content/reference/pictograms/interfaces/__init__.py:44
msgid "Image"
msgstr "Image"
-#: src/pyams_content/component/extfile/__init__.py:255
-#: src/pyams_content/component/extfile/__init__.py:260
-#: src/pyams_content/component/paragraph/video.py:51
-#: src/pyams_content/component/paragraph/video.py:64
+#: src/pyams_content/component/extfile/__init__.py:253
+#: src/pyams_content/component/extfile/__init__.py:257
+#: src/pyams_content/component/paragraph/video.py:49
+#: src/pyams_content/component/paragraph/video.py:62
msgid "Video"
msgstr "Vidéo"
-#: src/pyams_content/component/extfile/__init__.py:275
-#: src/pyams_content/component/extfile/__init__.py:280
+#: src/pyams_content/component/extfile/__init__.py:272
+#: src/pyams_content/component/extfile/__init__.py:276
msgid "Audio file"
msgstr "Fichier audio"
@@ -337,15 +334,15 @@
#: src/pyams_content/component/extfile/zmi/__init__.py:89
msgid "Add external file"
-msgstr "Fichier standard"
+msgstr "Fichier"
#: src/pyams_content/component/extfile/zmi/__init__.py:101
msgid "Add new external file"
-msgstr "Ajout d'un fichier standard"
+msgstr "Ajout d'un fichier"
#: src/pyams_content/component/extfile/zmi/__init__.py:141
msgid "Update file properties"
-msgstr "Propriétés du fichier standard"
+msgstr "Propriétés du fichier"
#: src/pyams_content/component/extfile/zmi/__init__.py:181
msgid "Images"
@@ -357,48 +354,55 @@
#: src/pyams_content/component/extfile/zmi/__init__.py:208
msgid "Add new image"
-msgstr "Ajout d'une image"
-
-#: src/pyams_content/component/extfile/zmi/__init__.py:245
+msgstr "Ajout d'une image téléchargeable"
+
+#: src/pyams_content/component/extfile/zmi/__init__.py:244
msgid "Update image properties"
-msgstr "Propriétés de l'image"
-
-#: src/pyams_content/component/extfile/zmi/__init__.py:285
+msgstr "Propriétés de l'image téléchargeable"
+
+#: src/pyams_content/component/extfile/zmi/__init__.py:283
msgid "Videos"
msgstr "Vidéos"
-#: src/pyams_content/component/extfile/zmi/__init__.py:300
+#: src/pyams_content/component/extfile/zmi/__init__.py:298
msgid "Add video"
msgstr "Vidéo téléchargeable"
-#: src/pyams_content/component/extfile/zmi/__init__.py:312
+#: src/pyams_content/component/extfile/zmi/__init__.py:310
msgid "Add new video"
-msgstr "Ajout d'une vidéo"
-
-#: src/pyams_content/component/extfile/zmi/__init__.py:341
+msgstr "Ajout d'une vidéo téléchargeable"
+
+#: src/pyams_content/component/extfile/zmi/__init__.py:339
msgid "Update video properties"
-msgstr "Propriétés de la vidéo"
-
-#: src/pyams_content/component/extfile/zmi/__init__.py:373
+msgstr "Propriétés de la vidéo téléchargeable"
+
+#: src/pyams_content/component/extfile/zmi/__init__.py:371
msgid "Audios files"
msgstr "Fichiers audios"
-#: src/pyams_content/component/extfile/zmi/__init__.py:388
+#: src/pyams_content/component/extfile/zmi/__init__.py:386
msgid "Add audio file"
-msgstr "Fichier audio téléchargeable"
-
-#: src/pyams_content/component/extfile/zmi/__init__.py:400
+msgstr "Audio téléchargeable"
+
+#: src/pyams_content/component/extfile/zmi/__init__.py:398
msgid "Add new audio file"
-msgstr "Ajout d'un fichier audio"
-
-#: src/pyams_content/component/extfile/zmi/__init__.py:429
+msgstr "Ajout d'un fichier audio téléchargeable"
+
+#: src/pyams_content/component/extfile/zmi/__init__.py:427
msgid "Update audio file properties"
-msgstr "Propriétés du fichier audio"
+msgstr "Propriétés du fichier audio téléchargeable"
#: src/pyams_content/component/extfile/zmi/__init__.py:50
msgid "External file type"
msgstr "Type de fichier joint"
+#: src/pyams_content/component/extfile/interfaces/__init__.py:36
+#: src/pyams_content/component/links/interfaces/__init__.py:33
+#: src/pyams_content/shared/imagemap/interfaces/__init__.py:54
+#: src/pyams_content/shared/site/interfaces/__init__.py:113
+msgid "Alternate title"
+msgstr "Titre de substitution"
+
#: src/pyams_content/component/extfile/interfaces/__init__.py:37
msgid "File title, as shown in front-office"
msgstr "Titre présenté aux internautes"
@@ -438,41 +442,27 @@
msgstr ""
"Cliquez sur le bouton 'Parcourir...' pour sélectionner un nouveau contenu"
-#: src/pyams_content/component/extfile/interfaces/__init__.py:74
-msgid "File legend, as shown in front-office"
-msgstr "Titre du fichier, tel que présenté aux internautes"
-
-#: src/pyams_content/component/extfile/interfaces/__init__.py:78
-#: src/pyams_content/component/illustration/interfaces/__init__.py:49
-#: src/pyams_content/reference/pictograms/interfaces/__init__.py:49
-msgid "Alternate title used to describe image content"
-msgstr ""
-"Ce texte est affiché lorsque le contenu ne peut être téléchargé ou affiché ; "
-"il est aussi utilisé par les navigateurs des personnes souffrant de "
-"déficiences visuelles. Il doit donc décrire le contenu, pour se conformer "
-"aux normes d'accessibilité."
-
-#: src/pyams_content/component/extfile/interfaces/__init__.py:81
+#: src/pyams_content/component/extfile/interfaces/__init__.py:73
#: src/pyams_content/shared/logo/interfaces/__init__.py:47
msgid "Image data"
msgstr "Fichier"
-#: src/pyams_content/component/extfile/interfaces/__init__.py:82
+#: src/pyams_content/component/extfile/interfaces/__init__.py:74
msgid "Image content"
msgstr ""
"Cliquez sur le bouton 'Parcourir...' pour sélectionner un nouveau contenu..."
-#: src/pyams_content/component/extfile/interfaces/__init__.py:89
+#: src/pyams_content/component/extfile/interfaces/__init__.py:81
#: src/pyams_content/component/paragraph/interfaces/video.py:51
msgid "Video data"
msgstr "Fichier"
-#: src/pyams_content/component/extfile/interfaces/__init__.py:90
+#: src/pyams_content/component/extfile/interfaces/__init__.py:82
msgid "Video content"
msgstr ""
"Cliquez sur le bouton 'Parcourir...' pour sélectionner un nouveau contenu"
-#: src/pyams_content/component/extfile/interfaces/__init__.py:98
+#: src/pyams_content/component/extfile/interfaces/__init__.py:90
msgid "Audio file content"
msgstr ""
"Cliquez sur le bouton 'Parcourir...' pour sélectionner un nouveau contenu"
@@ -501,6 +491,15 @@
msgid "Header illustration"
msgstr "Illustration d'en-tête"
+#: src/pyams_content/component/illustration/interfaces/__init__.py:49
+#: src/pyams_content/reference/pictograms/interfaces/__init__.py:49
+msgid "Alternate title used to describe image content"
+msgstr ""
+"Ce texte est affiché lorsque le contenu ne peut être téléchargé ou affiché ; "
+"il est aussi utilisé par les navigateurs des personnes souffrant de "
+"déficiences visuelles. Il doit donc décrire le contenu, pour se conformer "
+"aux normes d'accessibilité."
+
#: src/pyams_content/component/illustration/interfaces/__init__.py:57
msgid "Name of picture's author"
msgstr "Sous la forme \"Prénom Nom / Organisme\""
@@ -518,7 +517,7 @@
#: src/pyams_content/component/paragraph/milestone.py:199
#: src/pyams_content/component/paragraph/milestone.py:222
-#: src/pyams_content/component/paragraph/zmi/milestone.py:297
+#: src/pyams_content/component/paragraph/zmi/milestone.py:303
msgid "Milestones"
msgstr "Chronologie"
@@ -553,7 +552,7 @@
#: src/pyams_content/component/paragraph/pictogram.py:189
#: src/pyams_content/component/paragraph/pictogram.py:212
-#: src/pyams_content/component/paragraph/zmi/pictogram.py:301
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:305
msgid "Pictograms"
msgstr "Pictogrammes"
@@ -567,7 +566,7 @@
#: src/pyams_content/component/paragraph/keynumber.py:183
#: src/pyams_content/component/paragraph/keynumber.py:207
-#: src/pyams_content/component/paragraph/zmi/keynumber.py:276
+#: src/pyams_content/component/paragraph/zmi/keynumber.py:282
msgid "Key numbers"
msgstr "Chiffres-clés"
@@ -635,29 +634,29 @@
msgid "Edit milestone paragraph properties"
msgstr "Propriétés de la chronologie"
-#: src/pyams_content/component/paragraph/zmi/milestone.py:255
+#: src/pyams_content/component/paragraph/zmi/milestone.py:258
#: src/pyams_content/component/paragraph/interfaces/milestone.py:49
msgid "Associated label"
msgstr "Information associée"
-#: src/pyams_content/component/paragraph/zmi/milestone.py:264
+#: src/pyams_content/component/paragraph/zmi/milestone.py:270
#: src/pyams_content/component/paragraph/interfaces/milestone.py:53
msgid "Anchor"
msgstr "Ancre"
-#: src/pyams_content/component/paragraph/zmi/milestone.py:312
+#: src/pyams_content/component/paragraph/zmi/milestone.py:318
msgid "Add milestone"
msgstr "Ajouter un jalon"
-#: src/pyams_content/component/paragraph/zmi/milestone.py:323
+#: src/pyams_content/component/paragraph/zmi/milestone.py:329
msgid "Add new milestone"
msgstr "Ajout d'un jalon"
-#: src/pyams_content/component/paragraph/zmi/milestone.py:356
+#: src/pyams_content/component/paragraph/zmi/milestone.py:362
msgid "Edit milestone properties"
msgstr "Propriétés du jalon"
-#: src/pyams_content/component/paragraph/zmi/milestone.py:345
+#: src/pyams_content/component/paragraph/zmi/milestone.py:351
msgid "Milestone was correctly added"
msgstr "Le jalon a été ajouté."
@@ -769,11 +768,11 @@
#: src/pyams_content/component/paragraph/zmi/container.py:367
msgid "Links and attachments..."
-msgstr "Liens et pièces jointes"
+msgstr "Récap. liens et PJ"
#: src/pyams_content/component/paragraph/zmi/container.py:379
msgid "Content blocks links and attachments"
-msgstr "Liens et pièces jointes par bloc de contenu"
+msgstr "Récapitulatif des liens et pièces jointes par bloc de contenu"
#: src/pyams_content/component/paragraph/zmi/container.py:127
msgid "No currently defined paragraph."
@@ -793,49 +792,65 @@
"Vérifiez le paramétrage des types de blocs de contenu autorisés pour pouvoir "
"ajouter de nouveaux blocs."
-#: src/pyams_content/component/paragraph/zmi/pictogram.py:79
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:83
msgid "Pictograms..."
msgstr "Pictogrammes"
-#: src/pyams_content/component/paragraph/zmi/pictogram.py:90
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:94
msgid "Add new pictogram paragraph"
msgstr "Ajout de pictogrammes"
-#: src/pyams_content/component/paragraph/zmi/pictogram.py:122
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:126
msgid "Edit pictogram paragraph properties"
msgstr "Propriétés des pictogrammes"
#. Default: Header
-#: src/pyams_content/component/paragraph/zmi/pictogram.py:264
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:268
msgid "pictogram-item-header"
msgstr "En-tête"
-#: src/pyams_content/component/paragraph/zmi/pictogram.py:279
-#: src/pyams_content/component/paragraph/zmi/keynumber.py:260
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:283
+#: src/pyams_content/component/paragraph/zmi/keynumber.py:263
#: src/pyams_content/component/paragraph/interfaces/pictogram.py:58
#: src/pyams_content/component/paragraph/interfaces/keynumber.py:54
msgid "Associated text"
msgstr "Texte associé"
-#: src/pyams_content/component/paragraph/zmi/pictogram.py:316
-#: src/pyams_content/reference/pictograms/zmi/__init__.py:59
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:320
+#: src/pyams_content/reference/pictograms/zmi/__init__.py:62
msgid "Add pictogram"
msgstr "Ajouter un pictogramme"
-#: src/pyams_content/component/paragraph/zmi/pictogram.py:327
-#: src/pyams_content/reference/pictograms/zmi/__init__.py:70
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:331
+#: src/pyams_content/reference/pictograms/zmi/__init__.py:73
msgid "Add new pictogram"
msgstr "Ajout d'un pictogramme"
-#: src/pyams_content/component/paragraph/zmi/pictogram.py:365
-#: src/pyams_content/reference/pictograms/zmi/__init__.py:100
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:393
+#: src/pyams_content/reference/pictograms/zmi/__init__.py:103
msgid "Edit pictogram properties"
msgstr "Propriétés du pictogramme"
-#: src/pyams_content/component/paragraph/zmi/pictogram.py:354
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:374
msgid "Pictogram was correctly added"
msgstr "Le pictogramme a été ajouté."
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:384
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:448
+msgid "You must select a pictogram!"
+msgstr "Vous devez sélectionner un pictogramme !"
+
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:347
+#: src/pyams_content/reference/pictograms/zmi/__init__.py:186
+msgid "Default header: --"
+msgstr "En-tête par défaut : --"
+
+#: src/pyams_content/component/paragraph/zmi/pictogram.py:414
+#: src/pyams_content/reference/pictograms/zmi/__init__.py:190
+#, python-format
+msgid "Default header: {0}"
+msgstr "En-tête par défaut : {0}"
+
#: src/pyams_content/component/paragraph/zmi/keynumber.py:76
msgid "Key numbers..."
msgstr "Chiffres-clés"
@@ -859,19 +874,19 @@
msgid "key-number-label"
msgstr "En-tête"
-#: src/pyams_content/component/paragraph/zmi/keynumber.py:291
+#: src/pyams_content/component/paragraph/zmi/keynumber.py:297
msgid "Add keynumber"
msgstr "Ajouter un chiffre-clé"
-#: src/pyams_content/component/paragraph/zmi/keynumber.py:302
+#: src/pyams_content/component/paragraph/zmi/keynumber.py:308
msgid "Add new keynumber"
msgstr "Ajout d'un chiffre-clé"
-#: src/pyams_content/component/paragraph/zmi/keynumber.py:335
+#: src/pyams_content/component/paragraph/zmi/keynumber.py:341
msgid "Edit keynumber properties"
msgstr "Propriétés du chiffre-clé"
-#: src/pyams_content/component/paragraph/zmi/keynumber.py:324
+#: src/pyams_content/component/paragraph/zmi/keynumber.py:330
msgid "Key number was correctly added"
msgstr "Le chiffre-clé a été ajouté."
@@ -953,7 +968,7 @@
#: src/pyams_content/component/paragraph/interfaces/keynumber.py:40
#: src/pyams_content/component/association/interfaces/__init__.py:42
#: src/pyams_content/shared/form/interfaces/__init__.py:86
-#: src/pyams_content/shared/site/interfaces/__init__.py:107
+#: src/pyams_content/shared/site/interfaces/__init__.py:117
#: src/pyams_content/features/alert/interfaces.py:54
msgid "Visible?"
msgstr "Visible ?"
@@ -1184,33 +1199,33 @@
msgstr "Fonction du contact"
#: src/pyams_content/component/paragraph/interfaces/contact.py:57
-msgid "Photo"
-msgstr "Photo"
+msgid "Email address"
+msgstr "Adresse de messagerie"
#: src/pyams_content/component/paragraph/interfaces/contact.py:58
+msgid "Contact email address"
+msgstr "Adresse de messagerie \"stricte\", soit uniquement \"xxx@yyy.com\""
+
+#: src/pyams_content/component/paragraph/interfaces/contact.py:61
+msgid "Contact form"
+msgstr "Formulaire de contact"
+
+#: src/pyams_content/component/paragraph/interfaces/contact.py:62
+msgid "Reference of contact form"
+msgstr "Référence d'un formulaire de contact"
+
+#: src/pyams_content/component/paragraph/interfaces/contact.py:66
+msgid "Photo"
+msgstr "Photo"
+
+#: src/pyams_content/component/paragraph/interfaces/contact.py:67
msgid "Use 'browse' button to select contact picture"
msgstr "Utilisez le bouton 'Parcourir' pour sélectionner la photo du contact"
-#: src/pyams_content/component/paragraph/interfaces/contact.py:66
+#: src/pyams_content/component/paragraph/interfaces/contact.py:75
msgid "Address"
msgstr "Adresse"
-#: src/pyams_content/component/paragraph/interfaces/contact.py:69
-msgid "Email address"
-msgstr "Adresse de messagerie"
-
-#: src/pyams_content/component/paragraph/interfaces/contact.py:70
-msgid "Contact email address"
-msgstr "Adresse de messagerie \"stricte\", soit uniquement \"xxx@yyy.com\""
-
-#: src/pyams_content/component/paragraph/interfaces/contact.py:73
-msgid "Contact form"
-msgstr "Formulaire de contact"
-
-#: src/pyams_content/component/paragraph/interfaces/contact.py:74
-msgid "Reference of contact form"
-msgstr "Référence d'un formulaire de contact"
-
#: src/pyams_content/component/paragraph/interfaces/contact.py:78
msgid "Contact template"
msgstr "Mode de rendu"
@@ -1219,11 +1234,11 @@
msgid "Presentation template used for this contact"
msgstr "Modèle de présentation utilisé pour ce contact"
-#: src/pyams_content/component/paragraph/interfaces/contact.py:62
+#: src/pyams_content/component/paragraph/interfaces/contact.py:71
msgid "GPS location"
msgstr "Position GPS"
-#: src/pyams_content/component/paragraph/interfaces/contact.py:63
+#: src/pyams_content/component/paragraph/interfaces/contact.py:72
msgid "GPS coordinates used to locate contact"
msgstr "Coordonnées GPS de situation du contact"
@@ -1392,12 +1407,6 @@
msgid "Content's internal links"
msgstr "Autres contenus qui pointent vers ce contenu"
-#: src/pyams_content/component/links/interfaces/__init__.py:33
-#: src/pyams_content/shared/imagemap/interfaces/__init__.py:54
-#: src/pyams_content/shared/site/interfaces/__init__.py:103
-msgid "Alternate title"
-msgstr "Titre de substitution"
-
#: src/pyams_content/component/links/interfaces/__init__.py:34
msgid "Link title, as shown in front-office"
msgstr ""
@@ -1739,7 +1748,7 @@
#: src/pyams_content/shared/common/__init__.py:237
#: src/pyams_content/shared/common/zmi/properties.py:72
-#: src/pyams_content/shared/common/zmi/manager.py:90
+#: src/pyams_content/shared/common/zmi/manager.py:97
msgid "Properties"
msgstr "Propriétés"
@@ -1966,7 +1975,7 @@
msgid "Delete definitively"
msgstr "Supprimer définitivement"
-#: src/pyams_content/shared/common/zmi/workflow.py:920
+#: src/pyams_content/shared/common/zmi/workflow.py:923
msgid ""
"You must confirm that you previewed and checked this content before "
"requesting publication!!"
@@ -2058,19 +2067,15 @@
msgid "{state} since {date}, by {principal}"
msgstr "{state} depuis {date} par {principal}"
-#: src/pyams_content/shared/common/zmi/manager.py:76
-msgid "Tool management"
-msgstr "Gérer l'outil partagé"
-
-#: src/pyams_content/shared/common/zmi/manager.py:100
+#: src/pyams_content/shared/common/zmi/manager.py:107
msgid "Shared tool properties"
msgstr "Propriétés de l'outil"
-#: src/pyams_content/shared/common/zmi/manager.py:120
+#: src/pyams_content/shared/common/zmi/manager.py:132
msgid "WARNING"
msgstr "ATTENTION"
-#: src/pyams_content/shared/common/zmi/manager.py:122
+#: src/pyams_content/shared/common/zmi/manager.py:134
msgid ""
"Workflow shouldn't be modified if this tool already contains any shared "
"content!"
@@ -2078,15 +2083,15 @@
"Le workflow ne doit pas être modifié si cet outil renferme déjà des contenus "
"partagés !"
-#: src/pyams_content/shared/common/zmi/manager.py:145
+#: src/pyams_content/shared/common/zmi/manager.py:157
msgid "Languages"
msgstr "Langues"
-#: src/pyams_content/shared/common/zmi/manager.py:156
+#: src/pyams_content/shared/common/zmi/manager.py:168
msgid "Content languages"
msgstr "Langues pour la traduction de cet outil"
-#: src/pyams_content/shared/common/zmi/manager.py:173
+#: src/pyams_content/shared/common/zmi/manager.py:185
msgid ""
"Tool languages are used to translate own tool properties, and newly created "
"contents will propose these languages by default"
@@ -2095,6 +2100,14 @@
"\n"
"Les nouveaux contenus proposeront également ces langues par défaut."
+#: src/pyams_content/shared/common/zmi/manager.py:81
+msgid "Content management"
+msgstr "Gérer ce gabarit"
+
+#: src/pyams_content/shared/common/zmi/manager.py:83
+msgid "Tool management"
+msgstr "Gérer l'outil partagé"
+
#: src/pyams_content/shared/common/zmi/owner.py:51
msgid "Change owner..."
msgstr "Changer de propriétaire"
@@ -3000,14 +3013,14 @@
msgstr "Ces mots-clés seront intégrés dans les métadonnées des pages HTML"
#: src/pyams_content/shared/common/interfaces/__init__.py:155
-#: src/pyams_content/shared/site/zmi/folder.py:72
-#: src/pyams_content/shared/site/interfaces/__init__.py:56
+#: src/pyams_content/shared/site/zmi/folder.py:76
+#: src/pyams_content/shared/site/interfaces/__init__.py:66
msgid "Notepad"
msgstr "Bloc-notes"
#: src/pyams_content/shared/common/interfaces/__init__.py:156
-#: src/pyams_content/shared/site/zmi/folder.py:73
-#: src/pyams_content/shared/site/interfaces/__init__.py:57
+#: src/pyams_content/shared/site/zmi/folder.py:77
+#: src/pyams_content/shared/site/interfaces/__init__.py:67
msgid "Internal information to be known about this content"
msgstr ""
"Pour prendre note d'informations internes utiles ou importantes à propos de "
@@ -3074,8 +3087,8 @@
"If 'yes', this manager will have to confirm that contents have been "
"previewed and checked before publishing a content"
msgstr ""
-"Si 'oui', ce responsable devra confirmer qu'il a bien prévisualisé et "
-"audité chaque contenu avant de pouvoir effectuer une publication"
+"Si 'oui', ce responsable devra confirmer qu'il a bien prévisualisé et audité "
+"chaque contenu avant de pouvoir effectuer une publication"
#: src/pyams_content/shared/common/interfaces/__init__.py:283
msgid "Restricted contents"
@@ -3606,6 +3619,7 @@
msgstr "Aucune zone cliquable n'est actuellement définie."
#: src/pyams_content/shared/imagemap/zmi/container.py:175
+#: src/pyams_content/root/zmi/sites.py:170
msgid "No provided object_name argument!"
msgstr "Argument 'object_name' non fourni !"
@@ -3668,45 +3682,65 @@
msgid "Image map template"
msgstr "Mode de rendu"
-#: src/pyams_content/shared/site/zmi/folder.py:55
+#: src/pyams_content/shared/site/folder.py:58
+msgid "Site folder"
+msgstr "Rubrique"
+
+#: src/pyams_content/shared/site/link.py:46
+msgid "Content link"
+msgstr "Contenu lié"
+
+#: src/pyams_content/shared/site/zmi/folder.py:59
msgid "Add site folder..."
msgstr "Ajouter une rubrique"
-#: src/pyams_content/shared/site/zmi/folder.py:86
+#: src/pyams_content/shared/site/zmi/folder.py:90
msgid "Add site folder"
msgstr "Ajout d'une rubrique"
-#: src/pyams_content/shared/site/zmi/folder.py:65
+#: src/pyams_content/shared/site/zmi/folder.py:166
+msgid "Site folder management"
+msgstr "Gérer cette rubrique"
+
+#: src/pyams_content/shared/site/zmi/folder.py:177
+msgid "Site folder properties"
+msgstr "Propriétés de la rubrique"
+
+#: src/pyams_content/shared/site/zmi/folder.py:69
#: src/pyams_content/interfaces/__init__.py:100
msgid "Visible label used to display content"
msgstr "Le titre présenté aux internautes"
-#: src/pyams_content/shared/site/zmi/folder.py:68
-#: src/pyams_content/shared/site/zmi/__init__.py:63
+#: src/pyams_content/shared/site/zmi/folder.py:72
+#: src/pyams_content/shared/site/zmi/__init__.py:72
#: src/pyams_content/shared/site/zmi/link.py:67
msgid "Parent"
msgstr "Niveau parent"
-#: src/pyams_content/shared/site/zmi/folder.py:69
+#: src/pyams_content/shared/site/zmi/folder.py:73
#: src/pyams_content/shared/site/zmi/link.py:68
msgid "Folder's parent"
msgstr "Niveau de rattachement de cette rubrique"
-#: src/pyams_content/shared/site/zmi/folder.py:146
+#: src/pyams_content/shared/site/zmi/folder.py:150
msgid "You must provide a folder name for default server language!"
msgstr ""
"Vous devez fournir un nom pour ce dossier pour la langue par défaut du "
"serveur !"
-#: src/pyams_content/shared/site/zmi/__init__.py:54
+#: src/pyams_content/shared/site/zmi/__init__.py:55
+msgid "This topic"
+msgstr "Cet article"
+
+#: src/pyams_content/shared/site/zmi/__init__.py:63
msgid "Add topic..."
msgstr "Ajouter un article"
-#: src/pyams_content/shared/site/zmi/__init__.py:75
+#: src/pyams_content/shared/site/zmi/__init__.py:84
msgid "Add topic"
msgstr "Ajout d'un article"
-#: src/pyams_content/shared/site/zmi/__init__.py:64
+#: src/pyams_content/shared/site/zmi/__init__.py:73
msgid "Topic's parent"
msgstr "Niveau parent"
@@ -3722,86 +3756,113 @@
msgid "Edit content link properties"
msgstr "Propriétés du lien"
-#: src/pyams_content/shared/site/zmi/container.py:102
-#: src/pyams_content/shared/site/zmi/container.py:114
-#: src/pyams_content/shared/blog/zmi/manager.py:151
-#: src/pyams_content/shared/blog/zmi/manager.py:163
+#: src/pyams_content/shared/site/zmi/container.py:106
+#: src/pyams_content/shared/site/zmi/container.py:118
+#: src/pyams_content/shared/blog/zmi/manager.py:160
+#: src/pyams_content/shared/blog/zmi/manager.py:172
msgid "Publication dates..."
msgstr "Dates de publication"
-#: src/pyams_content/shared/site/zmi/container.py:127
-#: src/pyams_content/shared/blog/zmi/manager.py:176
+#: src/pyams_content/shared/site/zmi/container.py:131
+#: src/pyams_content/shared/blog/zmi/manager.py:185
msgid "Update publication dates"
msgstr "Dates de publication"
-#: src/pyams_content/shared/site/zmi/container.py:172
-#: src/pyams_content/shared/site/zmi/container.py:182
+#: src/pyams_content/shared/site/zmi/container.py:183
+#: src/pyams_content/shared/site/zmi/container.py:193
#: src/pyams_content/root/zmi/sites.py:68
msgid "Site tree"
msgstr "Arborescence du site"
-#: src/pyams_content/shared/site/zmi/container.py:301
-#: src/pyams_content/shared/site/zmi/container.py:151
+#: src/pyams_content/shared/site/zmi/container.py:312
+#: src/pyams_content/shared/site/zmi/container.py:162
msgid "Visible element?"
msgstr "Élément visible ?"
-#: src/pyams_content/shared/site/zmi/container.py:302
+#: src/pyams_content/shared/site/zmi/container.py:313
msgid "Switch element visibility"
msgstr "Cliquez pour rendre l'élément visible ou non"
-#: src/pyams_content/shared/site/zmi/container.py:363
+#: src/pyams_content/shared/site/zmi/container.py:374
msgid "Folders and topics"
-msgstr "Rubriques et articles"
-
-#: src/pyams_content/shared/site/zmi/container.py:483
+msgstr "Rubriquage"
+
+#: src/pyams_content/shared/site/zmi/container.py:410
+#: src/pyams_content/root/zmi/__init__.py:798
+msgid "Content"
+msgstr "Contenu"
+
+#: src/pyams_content/shared/site/zmi/container.py:506
msgid "Delete site item"
msgstr "Supprimer ce contenu"
-#: src/pyams_content/shared/site/zmi/container.py:372
+#: src/pyams_content/shared/site/zmi/container.py:383
msgid "Click to open/close all folders"
msgstr "Afficher/masquer toutes les rubriques"
-#: src/pyams_content/shared/site/zmi/container.py:388
+#: src/pyams_content/shared/site/zmi/container.py:399
msgid "Click to show/hide inner folders"
msgstr "Cliquer pour afficher ou cache les sous-niveaux"
-#: src/pyams_content/shared/site/zmi/container.py:258
+#: src/pyams_content/shared/site/zmi/container.py:269
msgid "Can't reparent object to one of it's children. Reloading..."
msgstr ""
"Impossible de déplacer une rubrique dans l'une de ses sous-rubriques ou "
"contenus ! Rechargement de la page..."
-#: src/pyams_content/shared/site/zmi/manager.py:80
-#: src/pyams_content/shared/site/zmi/manager.py:92
+#: src/pyams_content/shared/site/zmi/manager.py:58
+msgid "Site management"
+msgstr "Gérer ce site"
+
+#: src/pyams_content/shared/site/zmi/manager.py:88
+#: src/pyams_content/shared/site/zmi/manager.py:100
msgid "Add site manager"
msgstr "Ajouter un site"
-#: src/pyams_content/shared/site/zmi/manager.py:91
+#: src/pyams_content/shared/site/zmi/manager.py:99
msgid "Site manager"
msgstr "Site"
-#: src/pyams_content/shared/site/zmi/manager.py:123
-#: src/pyams_content/shared/blog/zmi/manager.py:117
+#: src/pyams_content/shared/site/zmi/manager.py:131
+#: src/pyams_content/shared/blog/zmi/manager.py:126
msgid "You must provide a short name for default server language!"
msgstr "Vous devez fournir un nom court pour la langue par défaut du serveur !"
-#: src/pyams_content/shared/site/zmi/manager.py:127
+#: src/pyams_content/shared/site/zmi/manager.py:135
msgid "Specified site manager name is already used!"
msgstr "Le nom indiqué pour ce site existe déjà !"
-#: src/pyams_content/shared/site/zmi/manager.py:131
+#: src/pyams_content/shared/site/zmi/manager.py:139
msgid "A site manager is already registered with this name!!"
msgstr "Un site est déjà inscrit dans le registre avec ce nom !"
-#: src/pyams_content/shared/site/interfaces/__init__.py:85
+#: src/pyams_content/shared/site/interfaces/__init__.py:95
msgid "Topic"
msgstr "Article"
-#: src/pyams_content/shared/site/interfaces/__init__.py:104
+#: src/pyams_content/shared/site/interfaces/__init__.py:58
+msgid "Heading"
+msgstr "Chapô"
+
+#: src/pyams_content/shared/site/interfaces/__init__.py:59
+msgid "Heading displayed according to presentation template"
+msgstr "Ce chapô pourra être affiché ou non en fonction du modèle de présentation retenu"
+
+#: src/pyams_content/shared/site/interfaces/__init__.py:62
+msgid "Navigation title"
+msgstr "Titre de navigation"
+
+#: src/pyams_content/shared/site/interfaces/__init__.py:63
+msgid "Title displayed in navigation items"
+msgstr ""
+"Libellé utilisé en lieu et place du titre dans les blocs de navigation, "
+"notamment dans les pages carrefours"
+
+#: src/pyams_content/shared/site/interfaces/__init__.py:114
msgid "Content title, as shown in front-office"
msgstr "Titre présenté aux internautes"
-#: src/pyams_content/shared/site/interfaces/__init__.py:108
+#: src/pyams_content/shared/site/interfaces/__init__.py:118
msgid "If 'no', link is not visible"
msgstr "Si 'non', le lien ne sera pas visible"
@@ -3888,20 +3949,24 @@
msgid "Blog post « {title} »"
msgstr "Article de blog « {title} »"
-#: src/pyams_content/shared/blog/zmi/manager.py:74
-#: src/pyams_content/shared/blog/zmi/manager.py:86
+#: src/pyams_content/shared/blog/zmi/manager.py:60
+msgid "Blog management"
+msgstr "Gérer ce blog"
+
+#: src/pyams_content/shared/blog/zmi/manager.py:83
+#: src/pyams_content/shared/blog/zmi/manager.py:95
msgid "Add blog manager"
msgstr "Ajouter un blog"
-#: src/pyams_content/shared/blog/zmi/manager.py:85
+#: src/pyams_content/shared/blog/zmi/manager.py:94
msgid "Blog manager"
msgstr "Blog"
-#: src/pyams_content/shared/blog/zmi/manager.py:121
+#: src/pyams_content/shared/blog/zmi/manager.py:130
msgid "Specified blog manager name is already used!"
msgstr "Le nom indiqué pour ce blog existe déjà !"
-#: src/pyams_content/shared/blog/zmi/manager.py:125
+#: src/pyams_content/shared/blog/zmi/manager.py:134
msgid "A blog manager is already registered with this name!!"
msgstr "Un blog est déjà inscrit dans le registre avec ce nom !"
@@ -3945,6 +4010,10 @@
msgid "Delete shared site"
msgstr "Supprimer ce site"
+#: src/pyams_content/root/zmi/sites.py:179
+msgid "Given element name doesn't exist!"
+msgstr "Le nom de l'élément indiqué n'existe pas !"
+
#: src/pyams_content/root/zmi/search.py:155
msgid "Content types"
msgstr "Types de contenus"
@@ -3953,10 +4022,6 @@
msgid "Home"
msgstr "Accueil"
-#: src/pyams_content/root/zmi/__init__.py:798
-msgid "Content"
-msgstr "Contenu"
-
#: src/pyams_content/root/zmi/templates/dashboard.pt:7
msgid "Your contents dashboard"
msgstr "Les contenus qui me concernent"
@@ -4372,6 +4437,10 @@
msgid "Edit table properties"
msgstr "Propriétés de la table"
+#: src/pyams_content/reference/zmi/table.py:173
+msgid "Table management"
+msgstr "Gérer cette table"
+
#: src/pyams_content/reference/zmi/__init__.py:51
msgid "References"
msgstr "Tables de réf."
@@ -4813,6 +4882,9 @@
msgid "Hidden header"
msgstr "Ne pas afficher d'en-tête de pages"
+#~ msgid "File legend, as shown in front-office"
+#~ msgstr "Titre du fichier, tel que présenté aux internautes"
+
#~ msgid "Check content..."
#~ msgstr "Auditer le contenu"
@@ -4858,9 +4930,6 @@
#~ msgid "Given site name doesn't exist!"
#~ msgstr "Le nom de site indiqué n'existe pas !"
-#~ msgid "Given alert name doesn't exist!"
-#~ msgstr "L'alerte indiquée n'existe pas !"
-
#~ msgid "Switch milestone visibility"
#~ msgstr "Cliquez pour rendre le jalon visible ou non"
--- a/src/pyams_content/locales/pyams_content.pot Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/locales/pyams_content.pot Wed Jun 06 11:20:14 2018 +0200
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2018-05-30 11:11+0200\n"
+"POT-Creation-Date: 2018-06-06 10:19+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -129,6 +129,14 @@
msgstr ""
#: ./src/pyams_content/component/gallery/zmi/interfaces.py:36
+msgid "Images or videos data"
+msgstr ""
+
+#: ./src/pyams_content/component/gallery/zmi/interfaces.py:37
+msgid "You can upload a single file or choose to upload a whole ZIP archive"
+msgstr ""
+
+#: ./src/pyams_content/component/gallery/zmi/interfaces.py:40
#: ./src/pyams_content/component/gallery/interfaces/__init__.py:61
#: ./src/pyams_content/component/extfile/interfaces/__init__.py:44
#: ./src/pyams_content/component/illustration/interfaces/__init__.py:56
@@ -138,7 +146,7 @@
msgid "Author"
msgstr ""
-#: ./src/pyams_content/component/gallery/zmi/interfaces.py:37
+#: ./src/pyams_content/component/gallery/zmi/interfaces.py:41
#: ./src/pyams_content/component/gallery/interfaces/__init__.py:62
#: ./src/pyams_content/component/extfile/interfaces/__init__.py:45
#: ./src/pyams_content/component/paragraph/interfaces/video.py:48
@@ -146,21 +154,13 @@
msgid "Name of document's author"
msgstr ""
-#: ./src/pyams_content/component/gallery/zmi/interfaces.py:40
+#: ./src/pyams_content/component/gallery/zmi/interfaces.py:44
msgid "Author comments"
msgstr ""
-#: ./src/pyams_content/component/gallery/zmi/interfaces.py:41
-#: ./src/pyams_content/component/gallery/interfaces/__init__.py:66
-msgid "Comments relatives to author's rights management"
-msgstr ""
-
-#: ./src/pyams_content/component/gallery/zmi/interfaces.py:44
-msgid "Images or videos data"
-msgstr ""
-
#: ./src/pyams_content/component/gallery/zmi/interfaces.py:45
-msgid "You can upload a single file or choose to upload a whole ZIP archive"
+#: ./src/pyams_content/component/gallery/interfaces/__init__.py:66
+msgid "Comments relatives to author's rights management"
msgstr ""
#: ./src/pyams_content/component/gallery/zmi/templates/gallery-medias.pt:11
@@ -176,32 +176,30 @@
msgstr ""
#: ./src/pyams_content/component/gallery/interfaces/__init__.py:47
-#: ./src/pyams_content/component/extfile/interfaces/__init__.py:73
-#: ./src/pyams_content/component/illustration/interfaces/__init__.py:45
-msgid "Legend"
-msgstr ""
-
-#: ./src/pyams_content/component/gallery/interfaces/__init__.py:50
-#: ./src/pyams_content/component/extfile/interfaces/__init__.py:77
-#: ./src/pyams_content/component/illustration/interfaces/__init__.py:48
-#: ./src/pyams_content/reference/pictograms/interfaces/__init__.py:48
-msgid "Accessibility title"
+#: ./src/pyams_content/component/illustration/interfaces/__init__.py:41
+#: ./src/pyams_content/component/illustration/interfaces/__init__.py:76
+msgid "Image or video data"
+msgstr ""
+
+#: ./src/pyams_content/component/gallery/interfaces/__init__.py:48
+#: ./src/pyams_content/component/illustration/interfaces/__init__.py:42
+#: ./src/pyams_content/component/illustration/interfaces/__init__.py:77
+msgid "Image or video content"
msgstr ""
#: ./src/pyams_content/component/gallery/interfaces/__init__.py:51
-msgid "Alternate title used to describe media content"
+#: ./src/pyams_content/component/illustration/interfaces/__init__.py:45
+msgid "Legend"
msgstr ""
#: ./src/pyams_content/component/gallery/interfaces/__init__.py:54
-#: ./src/pyams_content/component/illustration/interfaces/__init__.py:41
-#: ./src/pyams_content/component/illustration/interfaces/__init__.py:76
-msgid "Image or video data"
+#: ./src/pyams_content/component/illustration/interfaces/__init__.py:48
+#: ./src/pyams_content/reference/pictograms/interfaces/__init__.py:48
+msgid "Accessibility title"
msgstr ""
#: ./src/pyams_content/component/gallery/interfaces/__init__.py:55
-#: ./src/pyams_content/component/illustration/interfaces/__init__.py:42
-#: ./src/pyams_content/component/illustration/interfaces/__init__.py:77
-msgid "Image or video content"
+msgid "Alternate title used to describe media content"
msgstr ""
#: ./src/pyams_content/component/gallery/interfaces/__init__.py:58
@@ -229,7 +227,7 @@
msgstr ""
#: ./src/pyams_content/component/gallery/interfaces/__init__.py:73
-#: ./src/pyams_content/component/extfile/interfaces/__init__.py:97
+#: ./src/pyams_content/component/extfile/interfaces/__init__.py:89
msgid "Audio data"
msgstr ""
@@ -262,7 +260,6 @@
msgstr ""
#: ./src/pyams_content/component/gallery/interfaces/__init__.py:94
-#: ./src/pyams_content/component/extfile/interfaces/__init__.py:36
#: ./src/pyams_content/component/paragraph/zmi/milestone.py:246
#: ./src/pyams_content/component/paragraph/zmi/container.py:224
#: ./src/pyams_content/component/paragraph/interfaces/milestone.py:45
@@ -270,10 +267,10 @@
#: ./src/pyams_content/shared/common/zmi/dashboard.py:109
#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:188
#: ./src/pyams_content/shared/imagemap/zmi/container.py:123
-#: ./src/pyams_content/shared/site/zmi/folder.py:64
+#: ./src/pyams_content/shared/site/zmi/folder.py:68
#: ./src/pyams_content/root/zmi/templates/advanced-search.pt:188
#: ./src/pyams_content/interfaces/__init__.py:99
-#: ./src/pyams_content/reference/pictograms/zmi/__init__.py:162
+#: ./src/pyams_content/reference/pictograms/zmi/__init__.py:165
msgid "Title"
msgstr ""
@@ -299,22 +296,22 @@
msgstr ""
#: ./src/pyams_content/component/extfile/__init__.py:223
-#: ./src/pyams_content/component/extfile/__init__.py:240
+#: ./src/pyams_content/component/extfile/__init__.py:238
#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:66
#: ./src/pyams_content/shared/logo/interfaces/__init__.py:46
#: ./src/pyams_content/reference/pictograms/interfaces/__init__.py:44
msgid "Image"
msgstr ""
-#: ./src/pyams_content/component/extfile/__init__.py:255
-#: ./src/pyams_content/component/extfile/__init__.py:260
-#: ./src/pyams_content/component/paragraph/video.py:51
-#: ./src/pyams_content/component/paragraph/video.py:64
+#: ./src/pyams_content/component/extfile/__init__.py:253
+#: ./src/pyams_content/component/extfile/__init__.py:257
+#: ./src/pyams_content/component/paragraph/video.py:49
+#: ./src/pyams_content/component/paragraph/video.py:62
msgid "Video"
msgstr ""
-#: ./src/pyams_content/component/extfile/__init__.py:275
-#: ./src/pyams_content/component/extfile/__init__.py:280
+#: ./src/pyams_content/component/extfile/__init__.py:272
+#: ./src/pyams_content/component/extfile/__init__.py:276
msgid "Audio file"
msgstr ""
@@ -346,39 +343,39 @@
msgid "Add new image"
msgstr ""
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:245
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:244
msgid "Update image properties"
msgstr ""
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:285
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:283
msgid "Videos"
msgstr ""
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:300
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:298
msgid "Add video"
msgstr ""
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:312
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:310
msgid "Add new video"
msgstr ""
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:341
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:339
msgid "Update video properties"
msgstr ""
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:373
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:371
msgid "Audios files"
msgstr ""
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:388
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:386
msgid "Add audio file"
msgstr ""
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:400
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:398
msgid "Add new audio file"
msgstr ""
-#: ./src/pyams_content/component/extfile/zmi/__init__.py:429
+#: ./src/pyams_content/component/extfile/zmi/__init__.py:427
msgid "Update audio file properties"
msgstr ""
@@ -386,6 +383,13 @@
msgid "External file type"
msgstr ""
+#: ./src/pyams_content/component/extfile/interfaces/__init__.py:36
+#: ./src/pyams_content/component/links/interfaces/__init__.py:33
+#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:54
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:113
+msgid "Alternate title"
+msgstr ""
+
#: ./src/pyams_content/component/extfile/interfaces/__init__.py:37
msgid "File title, as shown in front-office"
msgstr ""
@@ -421,35 +425,25 @@
msgid "File content"
msgstr ""
+#: ./src/pyams_content/component/extfile/interfaces/__init__.py:73
+#: ./src/pyams_content/shared/logo/interfaces/__init__.py:47
+msgid "Image data"
+msgstr ""
+
#: ./src/pyams_content/component/extfile/interfaces/__init__.py:74
-msgid "File legend, as shown in front-office"
-msgstr ""
-
-#: ./src/pyams_content/component/extfile/interfaces/__init__.py:78
-#: ./src/pyams_content/component/illustration/interfaces/__init__.py:49
-#: ./src/pyams_content/reference/pictograms/interfaces/__init__.py:49
-msgid "Alternate title used to describe image content"
+msgid "Image content"
msgstr ""
#: ./src/pyams_content/component/extfile/interfaces/__init__.py:81
-#: ./src/pyams_content/shared/logo/interfaces/__init__.py:47
-msgid "Image data"
+#: ./src/pyams_content/component/paragraph/interfaces/video.py:51
+msgid "Video data"
msgstr ""
#: ./src/pyams_content/component/extfile/interfaces/__init__.py:82
-msgid "Image content"
-msgstr ""
-
-#: ./src/pyams_content/component/extfile/interfaces/__init__.py:89
-#: ./src/pyams_content/component/paragraph/interfaces/video.py:51
-msgid "Video data"
+msgid "Video content"
msgstr ""
#: ./src/pyams_content/component/extfile/interfaces/__init__.py:90
-msgid "Video content"
-msgstr ""
-
-#: ./src/pyams_content/component/extfile/interfaces/__init__.py:98
msgid "Audio file content"
msgstr ""
@@ -477,6 +471,11 @@
msgid "Header illustration"
msgstr ""
+#: ./src/pyams_content/component/illustration/interfaces/__init__.py:49
+#: ./src/pyams_content/reference/pictograms/interfaces/__init__.py:49
+msgid "Alternate title used to describe image content"
+msgstr ""
+
#: ./src/pyams_content/component/illustration/interfaces/__init__.py:57
msgid "Name of picture's author"
msgstr ""
@@ -491,7 +490,7 @@
#: ./src/pyams_content/component/paragraph/milestone.py:199
#: ./src/pyams_content/component/paragraph/milestone.py:222
-#: ./src/pyams_content/component/paragraph/zmi/milestone.py:297
+#: ./src/pyams_content/component/paragraph/zmi/milestone.py:303
msgid "Milestones"
msgstr ""
@@ -526,7 +525,7 @@
#: ./src/pyams_content/component/paragraph/pictogram.py:189
#: ./src/pyams_content/component/paragraph/pictogram.py:212
-#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:301
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:305
msgid "Pictograms"
msgstr ""
@@ -540,7 +539,7 @@
#: ./src/pyams_content/component/paragraph/keynumber.py:183
#: ./src/pyams_content/component/paragraph/keynumber.py:207
-#: ./src/pyams_content/component/paragraph/zmi/keynumber.py:276
+#: ./src/pyams_content/component/paragraph/zmi/keynumber.py:282
msgid "Key numbers"
msgstr ""
@@ -608,29 +607,29 @@
msgid "Edit milestone paragraph properties"
msgstr ""
-#: ./src/pyams_content/component/paragraph/zmi/milestone.py:255
+#: ./src/pyams_content/component/paragraph/zmi/milestone.py:258
#: ./src/pyams_content/component/paragraph/interfaces/milestone.py:49
msgid "Associated label"
msgstr ""
-#: ./src/pyams_content/component/paragraph/zmi/milestone.py:264
+#: ./src/pyams_content/component/paragraph/zmi/milestone.py:270
#: ./src/pyams_content/component/paragraph/interfaces/milestone.py:53
msgid "Anchor"
msgstr ""
-#: ./src/pyams_content/component/paragraph/zmi/milestone.py:312
+#: ./src/pyams_content/component/paragraph/zmi/milestone.py:318
msgid "Add milestone"
msgstr ""
-#: ./src/pyams_content/component/paragraph/zmi/milestone.py:323
+#: ./src/pyams_content/component/paragraph/zmi/milestone.py:329
msgid "Add new milestone"
msgstr ""
-#: ./src/pyams_content/component/paragraph/zmi/milestone.py:356
+#: ./src/pyams_content/component/paragraph/zmi/milestone.py:362
msgid "Edit milestone properties"
msgstr ""
-#: ./src/pyams_content/component/paragraph/zmi/milestone.py:345
+#: ./src/pyams_content/component/paragraph/zmi/milestone.py:351
msgid "Milestone was correctly added"
msgstr ""
@@ -754,49 +753,65 @@
msgid "Check allowed paragraph types to be able to create new paragraphs."
msgstr ""
-#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:79
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:83
msgid "Pictograms..."
msgstr ""
-#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:90
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:94
msgid "Add new pictogram paragraph"
msgstr ""
-#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:122
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:126
msgid "Edit pictogram paragraph properties"
msgstr ""
#. Default: Header
-#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:264
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:268
msgid "pictogram-item-header"
msgstr ""
-#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:279
-#: ./src/pyams_content/component/paragraph/zmi/keynumber.py:260
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:283
+#: ./src/pyams_content/component/paragraph/zmi/keynumber.py:263
#: ./src/pyams_content/component/paragraph/interfaces/pictogram.py:58
#: ./src/pyams_content/component/paragraph/interfaces/keynumber.py:54
msgid "Associated text"
msgstr ""
-#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:316
-#: ./src/pyams_content/reference/pictograms/zmi/__init__.py:59
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:320
+#: ./src/pyams_content/reference/pictograms/zmi/__init__.py:62
msgid "Add pictogram"
msgstr ""
-#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:327
-#: ./src/pyams_content/reference/pictograms/zmi/__init__.py:70
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:331
+#: ./src/pyams_content/reference/pictograms/zmi/__init__.py:73
msgid "Add new pictogram"
msgstr ""
-#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:365
-#: ./src/pyams_content/reference/pictograms/zmi/__init__.py:100
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:393
+#: ./src/pyams_content/reference/pictograms/zmi/__init__.py:103
msgid "Edit pictogram properties"
msgstr ""
-#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:354
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:374
msgid "Pictogram was correctly added"
msgstr ""
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:384
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:448
+msgid "You must select a pictogram!"
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:347
+#: ./src/pyams_content/reference/pictograms/zmi/__init__.py:186
+msgid "Default header: --"
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/zmi/pictogram.py:414
+#: ./src/pyams_content/reference/pictograms/zmi/__init__.py:190
+#, python-format
+msgid "Default header: {0}"
+msgstr ""
+
#: ./src/pyams_content/component/paragraph/zmi/keynumber.py:76
msgid "Key numbers..."
msgstr ""
@@ -820,19 +835,19 @@
msgid "key-number-label"
msgstr ""
-#: ./src/pyams_content/component/paragraph/zmi/keynumber.py:291
+#: ./src/pyams_content/component/paragraph/zmi/keynumber.py:297
msgid "Add keynumber"
msgstr ""
-#: ./src/pyams_content/component/paragraph/zmi/keynumber.py:302
+#: ./src/pyams_content/component/paragraph/zmi/keynumber.py:308
msgid "Add new keynumber"
msgstr ""
-#: ./src/pyams_content/component/paragraph/zmi/keynumber.py:335
+#: ./src/pyams_content/component/paragraph/zmi/keynumber.py:341
msgid "Edit keynumber properties"
msgstr ""
-#: ./src/pyams_content/component/paragraph/zmi/keynumber.py:324
+#: ./src/pyams_content/component/paragraph/zmi/keynumber.py:330
msgid "Key number was correctly added"
msgstr ""
@@ -914,7 +929,7 @@
#: ./src/pyams_content/component/paragraph/interfaces/keynumber.py:40
#: ./src/pyams_content/component/association/interfaces/__init__.py:42
#: ./src/pyams_content/shared/form/interfaces/__init__.py:86
-#: ./src/pyams_content/shared/site/interfaces/__init__.py:107
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:117
#: ./src/pyams_content/features/alert/interfaces.py:54
msgid "Visible?"
msgstr ""
@@ -1133,33 +1148,33 @@
msgstr ""
#: ./src/pyams_content/component/paragraph/interfaces/contact.py:57
-msgid "Photo"
+msgid "Email address"
msgstr ""
#: ./src/pyams_content/component/paragraph/interfaces/contact.py:58
-msgid "Use 'browse' button to select contact picture"
+msgid "Contact email address"
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/interfaces/contact.py:61
+msgid "Contact form"
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/interfaces/contact.py:62
+msgid "Reference of contact form"
msgstr ""
#: ./src/pyams_content/component/paragraph/interfaces/contact.py:66
+msgid "Photo"
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/interfaces/contact.py:67
+msgid "Use 'browse' button to select contact picture"
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/interfaces/contact.py:75
msgid "Address"
msgstr ""
-#: ./src/pyams_content/component/paragraph/interfaces/contact.py:69
-msgid "Email address"
-msgstr ""
-
-#: ./src/pyams_content/component/paragraph/interfaces/contact.py:70
-msgid "Contact email address"
-msgstr ""
-
-#: ./src/pyams_content/component/paragraph/interfaces/contact.py:73
-msgid "Contact form"
-msgstr ""
-
-#: ./src/pyams_content/component/paragraph/interfaces/contact.py:74
-msgid "Reference of contact form"
-msgstr ""
-
#: ./src/pyams_content/component/paragraph/interfaces/contact.py:78
msgid "Contact template"
msgstr ""
@@ -1168,11 +1183,11 @@
msgid "Presentation template used for this contact"
msgstr ""
-#: ./src/pyams_content/component/paragraph/interfaces/contact.py:62
+#: ./src/pyams_content/component/paragraph/interfaces/contact.py:71
msgid "GPS location"
msgstr ""
-#: ./src/pyams_content/component/paragraph/interfaces/contact.py:63
+#: ./src/pyams_content/component/paragraph/interfaces/contact.py:72
msgid "GPS coordinates used to locate contact"
msgstr ""
@@ -1341,12 +1356,6 @@
msgid "Content's internal links"
msgstr ""
-#: ./src/pyams_content/component/links/interfaces/__init__.py:33
-#: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:54
-#: ./src/pyams_content/shared/site/interfaces/__init__.py:103
-msgid "Alternate title"
-msgstr ""
-
#: ./src/pyams_content/component/links/interfaces/__init__.py:34
msgid "Link title, as shown in front-office"
msgstr ""
@@ -1658,7 +1667,7 @@
#: ./src/pyams_content/shared/common/__init__.py:237
#: ./src/pyams_content/shared/common/zmi/properties.py:72
-#: ./src/pyams_content/shared/common/zmi/manager.py:90
+#: ./src/pyams_content/shared/common/zmi/manager.py:97
msgid "Properties"
msgstr ""
@@ -1884,7 +1893,7 @@
msgid "Delete definitively"
msgstr ""
-#: ./src/pyams_content/shared/common/zmi/workflow.py:920
+#: ./src/pyams_content/shared/common/zmi/workflow.py:923
msgid ""
"You must confirm that you previewed and checked this content before "
"requesting publication!!"
@@ -1972,38 +1981,42 @@
msgid "{state} since {date}, by {principal}"
msgstr ""
-#: ./src/pyams_content/shared/common/zmi/manager.py:76
-msgid "Tool management"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/manager.py:100
+#: ./src/pyams_content/shared/common/zmi/manager.py:107
msgid "Shared tool properties"
msgstr ""
-#: ./src/pyams_content/shared/common/zmi/manager.py:120
+#: ./src/pyams_content/shared/common/zmi/manager.py:132
msgid "WARNING"
msgstr ""
-#: ./src/pyams_content/shared/common/zmi/manager.py:122
+#: ./src/pyams_content/shared/common/zmi/manager.py:134
msgid ""
"Workflow shouldn't be modified if this tool already contains any shared "
"content!"
msgstr ""
-#: ./src/pyams_content/shared/common/zmi/manager.py:145
+#: ./src/pyams_content/shared/common/zmi/manager.py:157
msgid "Languages"
msgstr ""
-#: ./src/pyams_content/shared/common/zmi/manager.py:156
+#: ./src/pyams_content/shared/common/zmi/manager.py:168
msgid "Content languages"
msgstr ""
-#: ./src/pyams_content/shared/common/zmi/manager.py:173
+#: ./src/pyams_content/shared/common/zmi/manager.py:185
msgid ""
"Tool languages are used to translate own tool properties, and newly created "
"contents will propose these languages by default"
msgstr ""
+#: ./src/pyams_content/shared/common/zmi/manager.py:81
+msgid "Content management"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/manager.py:83
+msgid "Tool management"
+msgstr ""
+
#: ./src/pyams_content/shared/common/zmi/owner.py:51
msgid "Change owner..."
msgstr ""
@@ -2832,14 +2845,14 @@
msgstr ""
#: ./src/pyams_content/shared/common/interfaces/__init__.py:155
-#: ./src/pyams_content/shared/site/zmi/folder.py:72
-#: ./src/pyams_content/shared/site/interfaces/__init__.py:56
+#: ./src/pyams_content/shared/site/zmi/folder.py:76
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:66
msgid "Notepad"
msgstr ""
#: ./src/pyams_content/shared/common/interfaces/__init__.py:156
-#: ./src/pyams_content/shared/site/zmi/folder.py:73
-#: ./src/pyams_content/shared/site/interfaces/__init__.py:57
+#: ./src/pyams_content/shared/site/zmi/folder.py:77
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:67
msgid "Internal information to be known about this content"
msgstr ""
@@ -3395,6 +3408,7 @@
msgstr ""
#: ./src/pyams_content/shared/imagemap/zmi/container.py:175
+#: ./src/pyams_content/root/zmi/sites.py:170
msgid "No provided object_name argument!"
msgstr ""
@@ -3455,43 +3469,63 @@
msgid "Image map template"
msgstr ""
-#: ./src/pyams_content/shared/site/zmi/folder.py:55
+#: ./src/pyams_content/shared/site/folder.py:58
+msgid "Site folder"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/link.py:46
+msgid "Content link"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/folder.py:59
msgid "Add site folder..."
msgstr ""
-#: ./src/pyams_content/shared/site/zmi/folder.py:86
+#: ./src/pyams_content/shared/site/zmi/folder.py:90
msgid "Add site folder"
msgstr ""
-#: ./src/pyams_content/shared/site/zmi/folder.py:65
-#: ./src/pyams_content/interfaces/__init__.py:100
-msgid "Visible label used to display content"
-msgstr ""
-
-#: ./src/pyams_content/shared/site/zmi/folder.py:68
-#: ./src/pyams_content/shared/site/zmi/__init__.py:63
-#: ./src/pyams_content/shared/site/zmi/link.py:67
-msgid "Parent"
+#: ./src/pyams_content/shared/site/zmi/folder.py:166
+msgid "Site folder management"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/folder.py:177
+msgid "Site folder properties"
msgstr ""
#: ./src/pyams_content/shared/site/zmi/folder.py:69
+#: ./src/pyams_content/interfaces/__init__.py:100
+msgid "Visible label used to display content"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/folder.py:72
+#: ./src/pyams_content/shared/site/zmi/__init__.py:72
+#: ./src/pyams_content/shared/site/zmi/link.py:67
+msgid "Parent"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/folder.py:73
#: ./src/pyams_content/shared/site/zmi/link.py:68
msgid "Folder's parent"
msgstr ""
-#: ./src/pyams_content/shared/site/zmi/folder.py:146
+#: ./src/pyams_content/shared/site/zmi/folder.py:150
msgid "You must provide a folder name for default server language!"
msgstr ""
-#: ./src/pyams_content/shared/site/zmi/__init__.py:54
+#: ./src/pyams_content/shared/site/zmi/__init__.py:55
+msgid "This topic"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/__init__.py:63
msgid "Add topic..."
msgstr ""
-#: ./src/pyams_content/shared/site/zmi/__init__.py:75
+#: ./src/pyams_content/shared/site/zmi/__init__.py:84
msgid "Add topic"
msgstr ""
-#: ./src/pyams_content/shared/site/zmi/__init__.py:64
+#: ./src/pyams_content/shared/site/zmi/__init__.py:73
msgid "Topic's parent"
msgstr ""
@@ -3507,84 +3541,109 @@
msgid "Edit content link properties"
msgstr ""
-#: ./src/pyams_content/shared/site/zmi/container.py:102
-#: ./src/pyams_content/shared/site/zmi/container.py:114
-#: ./src/pyams_content/shared/blog/zmi/manager.py:151
-#: ./src/pyams_content/shared/blog/zmi/manager.py:163
+#: ./src/pyams_content/shared/site/zmi/container.py:106
+#: ./src/pyams_content/shared/site/zmi/container.py:118
+#: ./src/pyams_content/shared/blog/zmi/manager.py:160
+#: ./src/pyams_content/shared/blog/zmi/manager.py:172
msgid "Publication dates..."
msgstr ""
-#: ./src/pyams_content/shared/site/zmi/container.py:127
-#: ./src/pyams_content/shared/blog/zmi/manager.py:176
+#: ./src/pyams_content/shared/site/zmi/container.py:131
+#: ./src/pyams_content/shared/blog/zmi/manager.py:185
msgid "Update publication dates"
msgstr ""
-#: ./src/pyams_content/shared/site/zmi/container.py:172
-#: ./src/pyams_content/shared/site/zmi/container.py:182
+#: ./src/pyams_content/shared/site/zmi/container.py:183
+#: ./src/pyams_content/shared/site/zmi/container.py:193
#: ./src/pyams_content/root/zmi/sites.py:68
msgid "Site tree"
msgstr ""
-#: ./src/pyams_content/shared/site/zmi/container.py:301
-#: ./src/pyams_content/shared/site/zmi/container.py:151
+#: ./src/pyams_content/shared/site/zmi/container.py:312
+#: ./src/pyams_content/shared/site/zmi/container.py:162
msgid "Visible element?"
msgstr ""
-#: ./src/pyams_content/shared/site/zmi/container.py:302
+#: ./src/pyams_content/shared/site/zmi/container.py:313
msgid "Switch element visibility"
msgstr ""
-#: ./src/pyams_content/shared/site/zmi/container.py:363
+#: ./src/pyams_content/shared/site/zmi/container.py:374
msgid "Folders and topics"
msgstr ""
-#: ./src/pyams_content/shared/site/zmi/container.py:483
+#: ./src/pyams_content/shared/site/zmi/container.py:410
+#: ./src/pyams_content/root/zmi/__init__.py:798
+msgid "Content"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/container.py:506
msgid "Delete site item"
msgstr ""
-#: ./src/pyams_content/shared/site/zmi/container.py:372
+#: ./src/pyams_content/shared/site/zmi/container.py:383
msgid "Click to open/close all folders"
msgstr ""
-#: ./src/pyams_content/shared/site/zmi/container.py:388
+#: ./src/pyams_content/shared/site/zmi/container.py:399
msgid "Click to show/hide inner folders"
msgstr ""
-#: ./src/pyams_content/shared/site/zmi/container.py:258
+#: ./src/pyams_content/shared/site/zmi/container.py:269
msgid "Can't reparent object to one of it's children. Reloading..."
msgstr ""
-#: ./src/pyams_content/shared/site/zmi/manager.py:80
-#: ./src/pyams_content/shared/site/zmi/manager.py:92
+#: ./src/pyams_content/shared/site/zmi/manager.py:58
+msgid "Site management"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/manager.py:88
+#: ./src/pyams_content/shared/site/zmi/manager.py:100
msgid "Add site manager"
msgstr ""
-#: ./src/pyams_content/shared/site/zmi/manager.py:91
+#: ./src/pyams_content/shared/site/zmi/manager.py:99
msgid "Site manager"
msgstr ""
-#: ./src/pyams_content/shared/site/zmi/manager.py:123
-#: ./src/pyams_content/shared/blog/zmi/manager.py:117
-msgid "You must provide a short name for default server language!"
-msgstr ""
-
-#: ./src/pyams_content/shared/site/zmi/manager.py:127
-msgid "Specified site manager name is already used!"
-msgstr ""
-
#: ./src/pyams_content/shared/site/zmi/manager.py:131
+#: ./src/pyams_content/shared/blog/zmi/manager.py:126
+msgid "You must provide a short name for default server language!"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/manager.py:135
+msgid "Specified site manager name is already used!"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/zmi/manager.py:139
msgid "A site manager is already registered with this name!!"
msgstr ""
-#: ./src/pyams_content/shared/site/interfaces/__init__.py:85
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:95
msgid "Topic"
msgstr ""
-#: ./src/pyams_content/shared/site/interfaces/__init__.py:104
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:58
+msgid "Heading"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:59
+msgid "Heading displayed according to presentation template"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:62
+msgid "Navigation title"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:63
+msgid "Title displayed in navigation items"
+msgstr ""
+
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:114
msgid "Content title, as shown in front-office"
msgstr ""
-#: ./src/pyams_content/shared/site/interfaces/__init__.py:108
+#: ./src/pyams_content/shared/site/interfaces/__init__.py:118
msgid "If 'no', link is not visible"
msgstr ""
@@ -3671,20 +3730,24 @@
msgid "Blog post « {title} »"
msgstr ""
-#: ./src/pyams_content/shared/blog/zmi/manager.py:74
-#: ./src/pyams_content/shared/blog/zmi/manager.py:86
+#: ./src/pyams_content/shared/blog/zmi/manager.py:60
+msgid "Blog management"
+msgstr ""
+
+#: ./src/pyams_content/shared/blog/zmi/manager.py:83
+#: ./src/pyams_content/shared/blog/zmi/manager.py:95
msgid "Add blog manager"
msgstr ""
-#: ./src/pyams_content/shared/blog/zmi/manager.py:85
+#: ./src/pyams_content/shared/blog/zmi/manager.py:94
msgid "Blog manager"
msgstr ""
-#: ./src/pyams_content/shared/blog/zmi/manager.py:121
+#: ./src/pyams_content/shared/blog/zmi/manager.py:130
msgid "Specified blog manager name is already used!"
msgstr ""
-#: ./src/pyams_content/shared/blog/zmi/manager.py:125
+#: ./src/pyams_content/shared/blog/zmi/manager.py:134
msgid "A blog manager is already registered with this name!!"
msgstr ""
@@ -3728,6 +3791,10 @@
msgid "Delete shared site"
msgstr ""
+#: ./src/pyams_content/root/zmi/sites.py:179
+msgid "Given element name doesn't exist!"
+msgstr ""
+
#: ./src/pyams_content/root/zmi/search.py:155
msgid "Content types"
msgstr ""
@@ -3736,10 +3803,6 @@
msgid "Home"
msgstr ""
-#: ./src/pyams_content/root/zmi/__init__.py:798
-msgid "Content"
-msgstr ""
-
#: ./src/pyams_content/root/zmi/templates/dashboard.pt:7
msgid "Your contents dashboard"
msgstr ""
@@ -4150,6 +4213,10 @@
msgid "Edit table properties"
msgstr ""
+#: ./src/pyams_content/reference/zmi/table.py:173
+msgid "Table management"
+msgstr ""
+
#: ./src/pyams_content/reference/zmi/__init__.py:51
msgid "References"
msgstr ""
--- a/src/pyams_content/reference/pictograms/zmi/__init__.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/reference/pictograms/zmi/__init__.py Wed Jun 06 11:20:14 2018 +0200
@@ -9,6 +9,7 @@
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
+from z3c.form.interfaces import NOVALUE, NO_VALUE
__docformat__ = 'restructuredtext'
@@ -43,6 +44,8 @@
from pyams_utils.url import absolute_url
from pyams_viewlet.viewlet import viewlet_config
from pyams_zmi.form import AdminDialogAddForm, AdminDialogEditForm
+from pyramid.httpexceptions import HTTPNotFound, HTTPBadRequest
+from pyramid.response import Response
from pyramid.view import view_config
from z3c.form import field
from z3c.table.column import GetAttrColumn
@@ -169,3 +172,20 @@
"""Pictograms table contents view"""
table_class = PictogramTableContentsTable
+
+
+@view_config(name='get-pictogram-header.html', context=IPictogramTable, request_type=IPyAMSLayer,
+ permission=VIEW_SYSTEM_PERMISSION)
+def get_pictogram_label(request):
+ """Get alternate label associated with a given pictogram"""
+ name = request.params.get('value')
+ if not name:
+ raise HTTPBadRequest()
+ translate = request.localizer.translate
+ if name == '--NOVALUE--':
+ return Response(translate(_("Default header: --")))
+ pictogram = request.context.get(name)
+ if pictogram is None:
+ raise HTTPNotFound()
+ return Response(translate(_("Default header: {0}")).format(
+ II18n(pictogram).query_attribute('header', request=request) or '--'))
--- a/src/pyams_content/reference/zmi/table.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/reference/zmi/table.py Wed Jun 06 11:20:14 2018 +0200
@@ -20,7 +20,7 @@
from pyams_content.reference.interfaces import IReferenceTable
from pyams_i18n.interfaces import II18n
from pyams_skin.interfaces import IInnerPage, IPageHeader
-from pyams_skin.interfaces.viewlet import IBreadcrumbItem
+from pyams_skin.interfaces.viewlet import IBreadcrumbItem, IMenuHeader
from pyams_skin.layer import IPyAMSLayer
from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
from pyams_zmi.interfaces.menu import ISiteManagementMenu, IPropertiesMenu
@@ -35,7 +35,7 @@
from pyams_skin.table import BaseTable, TrashColumn
from pyams_skin.viewlet.breadcrumb import BreadcrumbItem
from pyams_skin.viewlet.menu import MenuItem
-from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter
+from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter, ContextRequestAdapter
from pyams_utils.url import absolute_url
from pyams_viewlet.manager import viewletmanager_config
from pyams_viewlet.viewlet import viewlet_config
@@ -64,7 +64,7 @@
@viewlet_config(name='contents.menu', context=IReferenceTable, layer=IAdminLayer,
- manager=ISiteManagementMenu, permission=VIEW_SYSTEM_PERMISSION, weight=1)
+ manager=ISiteManagementMenu, permission=VIEW_SYSTEM_PERMISSION, weight=10)
@viewletmanager_config(name='contents.menu', layer=IAdminLayer, provides=IPropertiesMenu)
@implementer(IPropertiesMenu)
class ReferenceTableContentsMenu(MenuItem):
@@ -164,3 +164,10 @@
permission=MANAGE_SITE_ROOT_PERMISSION, renderer='json', xhr=True)
class ReferenceTablePropertiesAJAXEditForm(AJAXEditForm, ReferenceTablePropertiesEditForm):
"""Reference table properties edit form, JSON renderer"""
+
+
+@adapter_config(context=(IReferenceTable, ISiteManagementMenu), provides=IMenuHeader)
+class ReferenceTableSiteManagementMenuHeader(ContextRequestAdapter):
+ """Reference table site management menu header adapter"""
+
+ header = _("Table management")
--- a/src/pyams_content/root/zmi/sites.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/root/zmi/sites.py Wed Jun 06 11:20:14 2018 +0200
@@ -59,7 +59,7 @@
#
@viewlet_config(name='site-tree.menu', context=ISiteRoot, layer=IAdminLayer, manager=ISiteManagementMenu,
- permission=VIEW_SYSTEM_PERMISSION, weight=5)
+ permission=VIEW_SYSTEM_PERMISSION, weight=10)
@viewletmanager_config(name='site-tree.menu', layer=IAdminLayer, context=ISiteRoot, provides=ISiteTreeMenu)
@implementer(ISiteTreeMenu)
class SiteTreeMenu(MenuItem):
@@ -155,11 +155,32 @@
return super(SiteTreeTrashColumn, self).has_permission(item) and item.is_deletable()
-@view_config(name='delete-shared-site.json', context=ISiteRoot, request_type=IPyAMSLayer,
+@view_config(name='delete-element.json', context=ISiteRoot, request_type=IPyAMSLayer,
permission=MANAGE_SITE_ROOT_PERMISSION, renderer='json', xhr=True)
def delete_shared_site(request):
"""Delete shared site from site manager"""
- if not request.context.is_deletable():
+ translate = request.localizer.translate
+ # Get object name to be removed
+ name = request.params.get('object_name')
+ if not name:
+ return {
+ 'status': 'message',
+ 'messagebox': {
+ 'status': 'error',
+ 'content': translate(_("No provided object_name argument!"))
+ }
+ }
+ # Check context
+ if name not in request.context:
+ return {
+ 'status': 'message',
+ 'messagebox': {
+ 'status': 'error',
+ 'content': translate(_("Given element name doesn't exist!"))
+ }
+ }
+ context = request.context[name]
+ if not context.is_deletable():
raise NotFound()
return delete_container_element(request, ignore_permission=True)
--- a/src/pyams_content/shared/blog/zmi/manager.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/shared/blog/zmi/manager.py Wed Jun 06 11:20:14 2018 +0200
@@ -14,19 +14,20 @@
# import standard library
+from datetime import datetime
+
+# import interfaces
from pyams_content.interfaces import MANAGE_SITE_ROOT_PERMISSION, MANAGE_SITE_PERMISSION
from pyams_content.root.interfaces import ISiteRoot
from pyams_content.shared.blog.interfaces import IBlogManager, IBlogManagerFactory
from pyams_content.skin.zmi.interfaces import ISiteTreeTable, IUserAddingsMenuLabel
from pyams_i18n.interfaces import II18n, INegotiator
from pyams_skin.interfaces.container import ITableElementEditor
-from pyams_skin.interfaces.viewlet import IToolbarAddingMenu, ITableItemColumnActionsMenu
+from pyams_skin.interfaces.viewlet import IToolbarAddingMenu, ITableItemColumnActionsMenu, IMenuHeader
from pyams_skin.layer import IPyAMSLayer
from pyams_workflow.interfaces import IWorkflowPublicationInfo
-from pyams_zmi.interfaces.menu import IPropertiesMenu
+from pyams_zmi.interfaces.menu import IPropertiesMenu, ISiteManagementMenu
from pyams_zmi.layer import IAdminLayer
-
-# import interfaces
from z3c.form.interfaces import IDataExtractedEvent
# import packages
@@ -38,6 +39,7 @@
from pyams_skin.viewlet.toolbar import ToolbarMenuItem
from pyams_utils.adapter import adapter_config, ContextRequestAdapter
from pyams_utils.registry import query_utility
+from pyams_utils.timezone import tztime
from pyams_utils.unicode import translate_string
from pyams_utils.url import absolute_url
from pyams_viewlet.viewlet import viewlet_config
@@ -51,6 +53,13 @@
from pyams_content import _
+@adapter_config(context=(IBlogManager, ISiteManagementMenu), provides=IMenuHeader)
+class BlogManagerSiteManagementMenuHeader(ContextRequestAdapter):
+ """Blog manager site management menu header adapter"""
+
+ header = _("Blog management")
+
+
#
# Blog topic add views
#
@@ -179,6 +188,13 @@
ajax_handler = 'workflow-publication.json'
edit_permission = MANAGE_SITE_PERMISSION
+ def updateWidgets(self, prefix=None):
+ super(BlogManagerWorkflowPublicationEditForm, self).updateWidgets(prefix)
+ if 'publication_effective_date' in self.widgets:
+ widget = self.widgets['publication_effective_date']
+ if not widget.value:
+ widget.value = tztime(datetime.utcnow()).strftime('%d/%m/%y %H:%M')
+
@view_config(name='workflow-publication.json', context=IBlogManager, request_type=IPyAMSLayer,
permission=MANAGE_SITE_PERMISSION, renderer='json', xhr=True)
--- a/src/pyams_content/shared/common/zmi/manager.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/shared/common/zmi/manager.py Wed Jun 06 11:20:14 2018 +0200
@@ -23,9 +23,11 @@
from pyams_skin.interfaces import IInnerPage, IPageHeader, IContentTitle
from pyams_skin.interfaces.viewlet import IMenuHeader, IBreadcrumbItem
from pyams_skin.layer import IPyAMSLayer
+from pyams_utils.interfaces import MANAGE_SYSTEM_PERMISSION
from pyams_zmi.interfaces import IPropertiesEditForm
from pyams_zmi.interfaces.menu import IPropertiesMenu, ISiteManagementMenu
from pyams_zmi.layer import IAdminLayer
+from z3c.form.interfaces import DISPLAY_MODE
# import packages
from pyams_form.form import AJAXEditForm
@@ -73,7 +75,12 @@
class SharedToolSiteManagementMenuHeader(ContextRequestAdapter):
"""Shared tool site management menu header adapter"""
- header = _("Tool management")
+ @property
+ def header(self):
+ if self.context.shared_content_menu:
+ return _("Content management")
+ else:
+ return _("Tool management")
#
@@ -81,7 +88,7 @@
#
@viewlet_config(name='properties.menu', context=IBaseSharedTool, layer=IAdminLayer,
- manager=ISiteManagementMenu, permission=MANAGE_TOOL_PERMISSION, weight=1)
+ manager=ISiteManagementMenu, permission=MANAGE_TOOL_PERMISSION, weight=40)
@viewletmanager_config(name='properties.menu', layer=IAdminLayer, provides=IPropertiesMenu)
@implementer(IPropertiesMenu)
class SharedToolPropertiesMenu(MenuItem):
@@ -104,6 +111,11 @@
ajax_handler = 'properties.json'
edit_permission = MANAGE_TOOL_PERMISSION
+ def updateWidgets(self, prefix=None):
+ super(SharedToolPropertiesEditForm, self).updateWidgets(prefix)
+ if not self.request.has_permission(MANAGE_SYSTEM_PERMISSION, context=self.context):
+ self.widgets['shared_content_workflow'].mode = DISPLAY_MODE
+
@view_config(name='properties.json', context=IBaseSharedTool, request_type=IPyAMSLayer,
permission=MANAGE_TOOL_PERMISSION, renderer='json', xhr=True)
@@ -138,7 +150,7 @@
#
@viewlet_config(name='languages.menu', context=IBaseSharedTool, layer=IAdminLayer,
- manager=ISiteManagementMenu, permission=MANAGE_TOOL_PERMISSION, weight=10)
+ manager=ISiteManagementMenu, permission=MANAGE_TOOL_PERMISSION, weight=100)
class SharedToolLanguagesMenu(MenuItem):
"""Shared tool languages menu"""
--- a/src/pyams_content/shared/site/__init__.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/shared/site/__init__.py Wed Jun 06 11:20:14 2018 +0200
@@ -47,6 +47,8 @@
class Topic(SharedContent):
"""WOrkflow managed topic class"""
+ content_name = TOPIC_CONTENT_NAME
+
def is_deletable(self):
workflow = IWorkflow(self)
for version in IWorkflowVersions(self).get_versions():
--- a/src/pyams_content/shared/site/folder.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/shared/site/folder.py Wed Jun 06 11:20:14 2018 +0200
@@ -41,6 +41,8 @@
from zope.schema.fieldproperty import FieldProperty
from zope.schema.vocabulary import SimpleVocabulary, SimpleTerm
+from pyams_content import _
+
@implementer(IDefaultProtectionPolicy, ISiteFolder, ISiteFolderRoles,
IIllustrationTarget, IPortalContext, IPreviewTarget, IAttributeAnnotatable)
@@ -49,8 +51,12 @@
roles_interface = ISiteFolderRoles
+ heading = FieldProperty(ISiteFolder['heading'])
+ navigation_title = FieldProperty(ISiteFolder['navigation_title'])
notepad = FieldProperty(ISiteFolder['notepad'])
+ content_name = _("Site folder")
+
sequence_name = '' # use default sequence generator
sequence_prefix = ''
--- a/src/pyams_content/shared/site/interfaces/__init__.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/shared/site/interfaces/__init__.py Wed Jun 06 11:20:14 2018 +0200
@@ -24,7 +24,7 @@
# import packages
from pyams_content.shared.common.interfaces import ISharedSite, IWfSharedContent, ISharedContent, \
IBaseContentManagerRoles, IBaseSharedTool, IDeletableElement
-from pyams_i18n.schema import I18nTextLineField
+from pyams_i18n.schema import I18nTextLineField, I18nTextField
from zope.container.constraints import containers, contains
from zope.interface import Interface, Attribute
from zope.schema import Text, Bool
@@ -37,6 +37,8 @@
containers('.ISiteContainer')
+ content_name = Attribute("Content name")
+
class ISiteContainer(IContainer, IContained, IWorkflowPublicationSupport):
"""Base site container interface"""
@@ -53,6 +55,14 @@
A site folder is made to contain sub-folders and topics
"""
+ heading = I18nTextField(title=_("Heading"),
+ description=_("Heading displayed according to presentation template"),
+ required=False)
+
+ navigation_title = I18nTextLineField(title=_("Navigation title"),
+ description=_("Title displayed in navigation items"),
+ required=False)
+
notepad = Text(title=_("Notepad"),
description=_("Internal information to be known about this content"),
required=False)
--- a/src/pyams_content/shared/site/link.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/shared/site/link.py Wed Jun 06 11:20:14 2018 +0200
@@ -28,6 +28,8 @@
from zope.interface import implementer
from zope.schema.fieldproperty import FieldProperty
+from pyams_content import _
+
@implementer(IContentLink)
class ContentLink(Persistent, Contained):
@@ -41,6 +43,8 @@
alt_title = FieldProperty(IContentLink['alt_title'])
visible = FieldProperty(IContentLink['visible'])
+ content_name = _("Content link")
+
def is_deletable(self):
return True
--- a/src/pyams_content/shared/site/zmi/__init__.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/shared/site/zmi/__init__.py Wed Jun 06 11:20:14 2018 +0200
@@ -19,11 +19,12 @@
# import interfaces
from pyams_content.interfaces import CREATE_CONTENT_PERMISSION
from pyams_content.shared.common.interfaces import IWfSharedContent
-from pyams_content.shared.site.interfaces import ISiteContainer, ISiteManager
+from pyams_content.shared.site.interfaces import ISiteContainer, ISiteManager, IWfTopic
from pyams_i18n.interfaces import II18nManager
-from pyams_skin.interfaces.viewlet import IToolbarAddingMenu
+from pyams_skin.interfaces.viewlet import IToolbarAddingMenu, IMenuHeader
from pyams_skin.layer import IPyAMSLayer
from pyams_workflow.interfaces import IWorkflowInfo, IWorkflowVersions
+from pyams_zmi.interfaces.menu import IContentManagementMenu
from pyams_zmi.layer import IAdminLayer
from zope.intid.interfaces import IIntIds
@@ -32,6 +33,7 @@
from pyams_content.shared.site.zmi.widget import SiteManagerFoldersSelectorFieldWidget
from pyams_pagelet.pagelet import pagelet_config
from pyams_skin.viewlet.toolbar import ToolbarMenuItem
+from pyams_utils.adapter import adapter_config, ContextRequestAdapter
from pyams_utils.registry import get_utility
from pyams_utils.traversing import get_parent
from pyams_utils.url import absolute_url
@@ -46,6 +48,13 @@
from pyams_content import _
+@adapter_config(context=(IWfTopic, IContentManagementMenu), provides=IMenuHeader)
+class TopicContentMenuHeader(ContextRequestAdapter):
+ """Topic content menu header adapter"""
+
+ header = _("This topic")
+
+
@viewlet_config(name='add-topic.menu', context=ISiteContainer, layer=IAdminLayer, view=Interface,
manager=IToolbarAddingMenu, permission=CREATE_CONTENT_PERMISSION, weight=20)
class TopicAddMenu(ToolbarMenuItem):
--- a/src/pyams_content/shared/site/zmi/container.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/shared/site/zmi/container.py Wed Jun 06 11:20:14 2018 +0200
@@ -16,6 +16,8 @@
# import standard library
import json
+from datetime import datetime
+
# import interfaces
from pyams_content.interfaces import MANAGE_SITE_PERMISSION, MANAGE_CONTENT_PERMISSION
from pyams_content.shared.common.interfaces import ISharedContent
@@ -47,13 +49,14 @@
from pyams_skin.event import get_json_table_cell_refresh_event
from pyams_skin.page import DefaultPageHeaderAdapter
from pyams_skin.table import BaseTable, TrashColumn, DefaultElementEditorAdapter, NameColumn, SorterColumn, \
- JsActionColumn
+ JsActionColumn, I18nColumn
from pyams_skin.viewlet.breadcrumb import BreadcrumbItem
from pyams_skin.viewlet.menu import MenuItem
from pyams_skin.viewlet.toolbar import ToolbarMenuItem
from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter, ContextRequestAdapter
from pyams_utils.fanstatic import get_resource_path
from pyams_utils.registry import get_utility
+from pyams_utils.timezone import tztime
from pyams_utils.traversing import get_parent
from pyams_utils.url import absolute_url
from pyams_viewlet.manager import viewletmanager_config
@@ -64,6 +67,7 @@
from pyramid.location import lineage
from pyramid.view import view_config
from z3c.form import field
+from z3c.table.column import GetAttrColumn
from zope.interface import implementer
from zope.lifecycleevent import ObjectMovedEvent
@@ -130,6 +134,13 @@
ajax_handler = 'workflow-publication.json'
edit_permission = MANAGE_SITE_PERMISSION
+ def updateWidgets(self, prefix=None):
+ super(SiteContainerWorkflowPublicationEditForm, self).updateWidgets(prefix)
+ if 'publication_effective_date' in self.widgets:
+ widget = self.widgets['publication_effective_date']
+ if not widget.value:
+ widget.value = tztime(datetime.utcnow()).strftime('%d/%m/%y %H:%M')
+
@view_config(name='workflow-publication.json', context=ISiteContainer, request_type=IPyAMSLayer,
permission=MANAGE_SITE_PERMISSION, renderer='json', xhr=True)
@@ -163,7 +174,7 @@
#
@viewlet_config(name='site-tree.menu', layer=IAdminLayer, context=ISiteContainer, manager=ISiteManagementMenu,
- permission=VIEW_SYSTEM_PERMISSION, weight=5)
+ permission=VIEW_SYSTEM_PERMISSION, weight=10)
@viewletmanager_config(name='site-tree.menu', layer=IAdminLayer, context=ISiteContainer, provides=ISiteTreeMenu)
@implementer(ISiteTreeMenu)
class SiteContainerTreeMenu(MenuItem):
@@ -392,6 +403,18 @@
title=name or super(SiteContainerTreeNameColumn, self).renderCell(item))
+@adapter_config(name='content-type', context=(ISiteContainer, IPyAMSLayer, ISiteTreeTable), provides=IColumn)
+class SiteContainerContentTypeColumn(I18nColumn, GetAttrColumn):
+ """Site container content type column"""
+
+ _header = _("Content")
+
+ weight = 12
+
+ def getValue(self, obj):
+ return self.request.localizer.translate(obj.content_name)
+
+
@adapter_config(name='sequence', context=(ISiteContainer, IPyAMSLayer, ISiteTreeTable), provides=IColumn)
class SiteContainerTreeSequenceColumn(SharedToolDashboardSequenceColumn):
"""Site container tree OID column"""
--- a/src/pyams_content/shared/site/zmi/folder.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/shared/site/zmi/folder.py Wed Jun 06 11:20:14 2018 +0200
@@ -9,6 +9,10 @@
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
+from pyams_content.shared.common import IBaseSharedTool
+from pyams_content.shared.common.zmi.manager import SharedToolPropertiesEditForm
+from pyams_utils.adapter import adapter_config, ContextRequestAdapter
+from pyams_zmi.interfaces.menu import ISiteManagementMenu
__docformat__ = 'restructuredtext'
@@ -16,10 +20,10 @@
# import standard library
# import interfaces
-from pyams_content.interfaces import MANAGE_SITE_PERMISSION
-from pyams_content.shared.site.interfaces import ISiteContainer, ISiteManager
+from pyams_content.interfaces import MANAGE_SITE_PERMISSION, MANAGE_TOOL_PERMISSION
+from pyams_content.shared.site.interfaces import ISiteContainer, ISiteManager, ISiteFolder
from pyams_i18n.interfaces import INegotiator, II18n
-from pyams_skin.interfaces.viewlet import IToolbarAddingMenu
+from pyams_skin.interfaces.viewlet import IToolbarAddingMenu, IMenuHeader
from pyams_skin.layer import IPyAMSLayer
from pyams_zmi.layer import IAdminLayer
from z3c.form.interfaces import IDataExtractedEvent
@@ -27,7 +31,7 @@
# import packages
from pyams_content.shared.site.zmi.widget import SiteManagerFoldersSelectorFieldWidget
-from pyams_form.form import AJAXAddForm
+from pyams_form.form import AJAXAddForm, AJAXEditForm
from pyams_i18n.schema import I18nTextLineField
from pyams_pagelet.pagelet import pagelet_config
from pyams_skin.viewlet.toolbar import ToolbarMenuItem
@@ -153,3 +157,37 @@
def get_ajax_output(self, changes):
return {'status': 'reload'}
+
+
+@adapter_config(context=(ISiteFolder, ISiteManagementMenu), provides=IMenuHeader)
+class SiteFolderSiteManagementMenuHeader(ContextRequestAdapter):
+ """Site folder site management menu header adapter"""
+
+ header = _("Site folder management")
+
+
+#
+# Site folder edit form
+#
+
+@pagelet_config(name='properties.html', context=ISiteFolder, layer=IPyAMSLayer, permission=MANAGE_TOOL_PERMISSION)
+class SiteFolderPropertiesEditForm(SharedToolPropertiesEditForm):
+ """Site folder properties edit form"""
+
+ legend = _("Site folder properties")
+
+ fields = field.Fields(ISiteFolder).select('title', 'short_name', 'heading', 'navigation_title', 'notepad') + \
+ field.Fields(IBaseSharedTool).select('shared_content_workflow')
+
+ def updateWidgets(self, prefix=None):
+ super(SiteFolderPropertiesEditForm, self).updateWidgets(prefix)
+ if 'heading' in self.widgets:
+ self.widgets['heading'].widget_css_class = 'textarea'
+ if 'notepad' in self.widgets:
+ self.widgets['notepad'].widget_css_class = 'textarea'
+
+
+@view_config(name='properties.json', context=ISiteFolder, request_type=IPyAMSLayer,
+ permission=MANAGE_TOOL_PERMISSION, renderer='json', xhr=True)
+class SiteFolderPropertiesAJAXEditForm(AJAXEditForm, SiteFolderPropertiesEditForm):
+ """Site folder properties edit form, JSON renderer"""
--- a/src/pyams_content/shared/site/zmi/manager.py Wed May 30 16:36:17 2018 +0200
+++ b/src/pyams_content/shared/site/zmi/manager.py Wed Jun 06 11:20:14 2018 +0200
@@ -22,8 +22,9 @@
from pyams_content.skin.zmi.interfaces import ISiteTreeTable, IUserAddingsMenuLabel
from pyams_i18n.interfaces import II18n, INegotiator
from pyams_skin.interfaces.container import ITableElementEditor
-from pyams_skin.interfaces.viewlet import IToolbarAddingMenu, IBreadcrumbItem
+from pyams_skin.interfaces.viewlet import IToolbarAddingMenu, IBreadcrumbItem, IMenuHeader
from pyams_skin.layer import IPyAMSLayer
+from pyams_zmi.interfaces.menu import ISiteManagementMenu
from pyams_zmi.layer import IAdminLayer
from z3c.form.interfaces import IDataExtractedEvent
@@ -50,6 +51,13 @@
from pyams_content import _
+@adapter_config(context=(ISiteManager, ISiteManagementMenu), provides=IMenuHeader)
+class SiteManagerSiteManagementMenuHeader(ContextRequestAdapter):
+ """Site manager site management menu header adapter"""
+
+ header = _("Site management")
+
+
@adapter_config(context=(ISiteManager, IPyAMSLayer), provides=IBreadcrumbItem)
class SiteManagerBreadcrumbAdapter(BreadcrumbItem):
"""Site manager breadcrumb adapter"""