# HG changeset patch # User Damien Correia # Date 1528276814 -7200 # Node ID 652a551b127eccff07d51375b2a6257f9b2c4023 # Parent 0abdc1492e036ef04e958f7ecb70eff4561b9585# Parent a3df1b69616bffc5cd967df5f4dbdbdebaa4b290 merge default diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/component/extfile/__init__.py --- 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")) diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/component/extfile/interfaces/__init__.py --- 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) diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/component/extfile/zmi/__init__.py --- 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, diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/component/paragraph/contact.py --- 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 diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/component/paragraph/interfaces/contact.py --- 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, diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/component/paragraph/interfaces/pictogram.py --- 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") diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/component/paragraph/zmi/keynumber.py --- 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): diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/component/paragraph/zmi/milestone.py --- 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): diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/component/paragraph/zmi/pictogram.py --- 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 = '{1}'.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 = '{1}'.format(label_id, '--') + else: + widget.after_widget_notice = '{1}'.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!")), ) diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/features/alert/zmi/container.py --- 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""" diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.mo Binary file src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.mo has changed diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po --- 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 \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" diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/locales/pyams_content.pot --- 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 \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 "" diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/reference/pictograms/zmi/__init__.py --- 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 '--')) diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/reference/zmi/table.py --- 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") diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/root/zmi/sites.py --- 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) diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/shared/blog/zmi/manager.py --- 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) diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/shared/common/zmi/manager.py --- 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""" diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/shared/site/__init__.py --- 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(): diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/shared/site/folder.py --- 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 = '' diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/shared/site/interfaces/__init__.py --- 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) diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/shared/site/link.py --- 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 diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/shared/site/zmi/__init__.py --- 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): diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/shared/site/zmi/container.py --- 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""" diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/shared/site/zmi/folder.py --- 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""" diff -r 0abdc1492e03 -r 652a551b127e src/pyams_content/shared/site/zmi/manager.py --- 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"""