Updated alerts schema
authorThierry Florac <thierry.florac@onf.fr>
Wed, 29 Aug 2018 10:34:03 +0200
changeset 902 e62d6ef786d0
parent 901 ec5032c0d883
child 903 18b68cac6d5a
Updated alerts schema
src/pyams_content/features/alert/__init__.py
src/pyams_content/features/alert/interfaces.py
src/pyams_content/features/alert/zmi/container.py
src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.mo
src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po
src/pyams_content/locales/pyams_content.pot
--- a/src/pyams_content/features/alert/__init__.py	Wed Aug 29 09:33:45 2018 +0200
+++ b/src/pyams_content/features/alert/__init__.py	Wed Aug 29 10:34:03 2018 +0200
@@ -19,14 +19,11 @@
 # import interfaces
 from pyams_content.features.alert.interfaces import IAlertItem
 from pyams_content.interfaces import MANAGE_SITE_ROOT_PERMISSION
-from pyams_content.reference.pictograms import IPictogramTable
 from pyams_form.interfaces.form import IFormContextPermissionChecker
 
 # import packages
 from pyams_content.component.links import InternalReferenceMixin
 from pyams_utils.adapter import adapter_config, ContextAdapter
-from pyams_utils.registry import query_utility
-from pyams_utils.zodb import volatile_property
 from zope.container.contained import Contained
 from zope.interface import implementer
 from zope.schema.fieldproperty import FieldProperty
@@ -38,29 +35,12 @@
 
     visible = FieldProperty(IAlertItem['visible'])
     gravity = FieldProperty(IAlertItem['gravity'])
-    header = FieldProperty(IAlertItem['header'])
     message = FieldProperty(IAlertItem['message'])
     reference = FieldProperty(IAlertItem['reference'])
-    _pictogram_name = FieldProperty(IAlertItem['pictogram_name'])
     start_date = FieldProperty(IAlertItem['start_date'])
     end_date = FieldProperty(IAlertItem['end_date'])
     maximum_interval = FieldProperty(IAlertItem['maximum_interval'])
 
-    @property
-    def pictogram_name(self):
-        return self._pictogram_name
-
-    @pictogram_name.setter
-    def pictogram_name(self, value):
-        if value != self._pictogram_name:
-            self._pictogram_name = value
-            del self.pictogram
-
-    @volatile_property
-    def pictogram(self):
-        table = query_utility(IPictogramTable)
-        return table.get(self.pictogram_name)
-
 
 @adapter_config(context=IAlertItem, provides=IFormContextPermissionChecker)
 class AlertitemPermissionChecker(ContextAdapter):
--- a/src/pyams_content/features/alert/interfaces.py	Wed Aug 29 09:33:45 2018 +0200
+++ b/src/pyams_content/features/alert/interfaces.py	Wed Aug 29 10:34:03 2018 +0200
@@ -18,7 +18,6 @@
 
 # import interfaces
 from pyams_content.interfaces.container import IOrderedContainer
-from pyams_content.reference.pictograms.interfaces import PICTOGRAM_VOCABULARY
 from pyams_sequence.interfaces import IInternalReference
 from zope.annotation import IAttributeAnnotatable
 
@@ -37,10 +36,11 @@
 
 
 ALERT_GRAVITY_NAMES = OrderedDict((
-    ('success', _("Success")),
+    ('alert', _("Alert")),
+    ('alert_end', _("End of alert")),
     ('info', _("Information")),
     ('warning', _("Warning")),
-    ('danger', _("Danger"))
+    ('recommend', _("Recommendation"))
 ))
 
 ALERT_GRAVITY_VOCABULARY = SimpleVocabulary([SimpleTerm(v, title=t) for v, t in ALERT_GRAVITY_NAMES.items()])
@@ -62,27 +62,16 @@
                      default='info',
                      vocabulary=ALERT_GRAVITY_VOCABULARY)
 
-    header = I18nTextLineField(title=_('alert-header', default="Heading"),
-                               description=_("Short alert header (Alert, Important...)"),
-                               required=False)
-
     message = I18nTextLineField(title=_("Message"),
                                 description=_("Alert message"),
                                 required=True)
 
     reference = InternalReferenceField(title=_("Internal reference"),
                                        description=_("Internal link target reference. You can search a reference using "
-                                                "'+' followed by internal number, of by entering text matching "
-                                                "content title."),
+                                                     "'+' followed by internal number, of by entering text matching "
+                                                     "content title."),
                                        required=False)
 
-    pictogram_name = Choice(title=_("Pictogram"),
-                            description=_("Name of the pictogram to select"),
-                            required=False,
-                            vocabulary=PICTOGRAM_VOCABULARY)
-
-    pictogram = Attribute("Selected pictogram object")
-
     start_date = Datetime(title=_("Display start date"),
                           description=_("First date at which alert should be displayed"),
                           required=False)
--- a/src/pyams_content/features/alert/zmi/container.py	Wed Aug 29 09:33:45 2018 +0200
+++ b/src/pyams_content/features/alert/zmi/container.py	Wed Aug 29 10:34:03 2018 +0200
@@ -138,44 +138,13 @@
     return {'visible': alert.visible}
 
 
-@adapter_config(name='pictogram', context=(IAlertTarget, IPyAMSLayer, AlertContainerTable), provides=IColumn)
-class AlertContainerPictogramColumn(GetAttrColumn):
-    """Alert container pictogram image column"""
-
-    header = ''
-    weight = 10
-
-    cssClasses = {'td': 'text-center width-50'}
-    dt_sortable = 'false'
-
-    def getValue(self, obj):
-        pictogram = obj.pictogram
-        if pictogram is not None:
-            image = II18n(pictogram).query_attribute('image', request=self.request)
-            if image:
-                return '<img src="{0}" />'.format(absolute_url(image, self.request, '++thumb++32x32'))
-        return '--'
-
-
-@adapter_config(name='header', context=(IAlertTarget, IPyAMSLayer, AlertContainerTable), provides=IColumn)
-class AlertContainerHeaderColumn(I18nColumn, I18nAttrColumn):
-    """Alert container header column"""
-
-    _header = _('alert-header', default="Heading")
-    attrName = 'header'
-    weight = 20
-
-    def getValue(self, obj):
-        return super(AlertContainerHeaderColumn, self).getValue(obj) or '--'
-
-
 @adapter_config(name='name', context=(IAlertTarget, IPyAMSLayer, AlertContainerTable), provides=IColumn)
 class AlertContainerNameColumn(I18nColumn, I18nAttrColumn):
     """Alert container message column"""
 
     _header = _("Message")
     attrName = 'message'
-    weight = 30
+    weight = 10
 
     def getValue(self, obj):
         value = super(AlertContainerNameColumn, self).getValue(obj)
Binary file src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.mo has changed
--- a/src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po	Wed Aug 29 09:33:45 2018 +0200
+++ b/src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po	Wed Aug 29 10:34:03 2018 +0200
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2018-08-28 11:46+0200\n"
+"POT-Creation-Date: 2018-08-29 10:31+0200\n"
 "PO-Revision-Date: 2015-09-10 10:42+0200\n"
 "Last-Translator: Thierry Florac <tflorac@ulthar.net>\n"
 "Language-Team: French\n"
@@ -285,11 +285,11 @@
 #: src/pyams_content/component/paragraph/interfaces/milestone.py:45
 #: src/pyams_content/shared/common/zmi/reverse.py:73
 #: src/pyams_content/shared/common/zmi/dashboard.py:109
-#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:188
+#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:200
 #: src/pyams_content/shared/view/portlet/interfaces.py:56
 #: src/pyams_content/shared/imagemap/zmi/container.py:123
 #: src/pyams_content/shared/site/zmi/folder.py:70
-#: src/pyams_content/root/zmi/templates/advanced-search.pt:188
+#: src/pyams_content/root/zmi/templates/advanced-search.pt:197
 #: src/pyams_content/interfaces/__init__.py:101
 #: src/pyams_content/reference/pictograms/zmi/__init__.py:150
 #: src/pyams_content/features/menu/portlet/navigation/interfaces/simple.py:31
@@ -1127,12 +1127,10 @@
 #: src/pyams_content/component/paragraph/interfaces/pictogram.py:46
 #: src/pyams_content/component/links/interfaces/__init__.py:43
 #: src/pyams_content/shared/common/interfaces/types.py:75
-#: src/pyams_content/features/alert/interfaces.py:79
 msgid "Pictogram"
 msgstr "Pictogramme"
 
 #: src/pyams_content/component/paragraph/interfaces/pictogram.py:47
-#: src/pyams_content/features/alert/interfaces.py:80
 msgid "Name of the pictogram to select"
 msgstr "Sélection du pictogramme à afficher"
 
@@ -1329,6 +1327,9 @@
 #: src/pyams_content/component/theme/zmi/portlet.py:40
 #: src/pyams_content/component/theme/interfaces/__init__.py:47
 #: src/pyams_content/component/theme/interfaces/__init__.py:61
+#: src/pyams_content/shared/common/zmi/search.py:189
+#: src/pyams_content/root/zmi/search.py:179
+#: src/pyams_content/root/zmi/templates/advanced-search.pt:181
 msgid "Tags"
 msgstr "Tags"
 
@@ -1336,6 +1337,7 @@
 #: src/pyams_content/component/theme/zmi/portlet.py:55
 #: src/pyams_content/component/theme/interfaces/__init__.py:88
 #: src/pyams_content/component/theme/interfaces/__init__.py:102
+#: src/pyams_content/shared/common/zmi/search.py:192
 msgid "Themes"
 msgstr "Thèmes"
 
@@ -1343,6 +1345,7 @@
 #: src/pyams_content/component/theme/zmi/portlet.py:70
 #: src/pyams_content/component/theme/interfaces/__init__.py:129
 #: src/pyams_content/component/theme/interfaces/__init__.py:143
+#: src/pyams_content/shared/common/zmi/search.py:195
 msgid "Collections"
 msgstr "Collections"
 
@@ -1889,51 +1892,51 @@
 msgstr ""
 "Le titre devrait être composé de 40 à 66 caractères ({length} actuellement)"
 
-#: src/pyams_content/shared/common/zmi/search.py:92
-#: src/pyams_content/root/zmi/search.py:91
+#: src/pyams_content/shared/common/zmi/search.py:96
+#: src/pyams_content/root/zmi/search.py:95
 msgid "Quick search results"
 msgstr "Résultats de la recherche rapide"
 
-#: src/pyams_content/shared/common/zmi/search.py:157
-#: src/pyams_content/shared/common/zmi/search.py:190
-#: src/pyams_content/root/zmi/search.py:147
-#: src/pyams_content/root/zmi/search.py:180
+#: src/pyams_content/shared/common/zmi/search.py:162
+#: src/pyams_content/shared/common/zmi/search.py:204
+#: src/pyams_content/root/zmi/search.py:152
+#: src/pyams_content/root/zmi/search.py:188
 msgid "Advanced search"
 msgstr "Recherche avancée"
 
-#: src/pyams_content/shared/common/zmi/search.py:282
-#: src/pyams_content/root/zmi/search.py:260
+#: src/pyams_content/shared/common/zmi/search.py:332
+#: src/pyams_content/root/zmi/search.py:280
 msgid "Advanced search results"
 msgstr "Résultats de la recherche avancée"
 
-#: src/pyams_content/shared/common/zmi/search.py:165
+#: src/pyams_content/shared/common/zmi/search.py:170
 #: src/pyams_content/shared/common/zmi/dashboard.py:231
-#: src/pyams_content/root/zmi/search.py:159
+#: src/pyams_content/root/zmi/search.py:164
 msgid "Owner"
 msgstr "Propriétaire"
 
-#: src/pyams_content/shared/common/zmi/search.py:168
+#: src/pyams_content/shared/common/zmi/search.py:173
 #: src/pyams_content/shared/common/zmi/dashboard.py:154
 msgid "Status"
 msgstr "Statut"
 
-#: src/pyams_content/shared/common/zmi/search.py:172
-#: src/pyams_content/root/zmi/search.py:162
+#: src/pyams_content/shared/common/zmi/search.py:177
+#: src/pyams_content/root/zmi/search.py:167
 msgid "Created after..."
 msgstr "Créé entre le"
 
-#: src/pyams_content/shared/common/zmi/search.py:175
-#: src/pyams_content/root/zmi/search.py:165
+#: src/pyams_content/shared/common/zmi/search.py:180
+#: src/pyams_content/root/zmi/search.py:170
 msgid "Created before..."
 msgstr "et le"
 
-#: src/pyams_content/shared/common/zmi/search.py:178
-#: src/pyams_content/root/zmi/search.py:168
+#: src/pyams_content/shared/common/zmi/search.py:183
+#: src/pyams_content/root/zmi/search.py:173
 msgid "Modified after..."
 msgstr "Modifié entre le"
 
-#: src/pyams_content/shared/common/zmi/search.py:181
-#: src/pyams_content/root/zmi/search.py:171
+#: src/pyams_content/shared/common/zmi/search.py:186
+#: src/pyams_content/root/zmi/search.py:176
 msgid "Modified before..."
 msgstr "et le"
 
@@ -2159,45 +2162,45 @@
 msgid "Created or modified in this version"
 msgstr "Créé ou modifié dans cette version"
 
-#: src/pyams_content/shared/common/zmi/summary.py:50
+#: src/pyams_content/shared/common/zmi/summary.py:52
 msgid "Display content summary"
 msgstr "Récapitulatif pour ce contenu"
 
-#: src/pyams_content/shared/common/zmi/summary.py:74
+#: src/pyams_content/shared/common/zmi/summary.py:76
 msgid "Identity card"
 msgstr "Carte d'identité"
 
-#: src/pyams_content/shared/common/zmi/summary.py:86
+#: src/pyams_content/shared/common/zmi/summary.py:94
 msgid "Requested action"
 msgstr "Évolution demandée"
 
-#: src/pyams_content/shared/common/zmi/summary.py:127
+#: src/pyams_content/shared/common/zmi/summary.py:135
 msgid "Publication and retire dates"
 msgstr "Dates de publication et de retrait planifiées"
 
-#: src/pyams_content/shared/common/zmi/summary.py:146
+#: src/pyams_content/shared/common/zmi/summary.py:154
 msgid "Current version"
 msgstr "À propos de cette version"
 
-#: src/pyams_content/shared/common/zmi/summary.py:176
+#: src/pyams_content/shared/common/zmi/summary.py:184
 msgid "Content history"
 msgstr "Pour mémoire"
 
-#: src/pyams_content/shared/common/zmi/summary.py:117
+#: src/pyams_content/shared/common/zmi/summary.py:125
 msgid "Associated comment"
 msgstr "Commentaire associé"
 
-#: src/pyams_content/shared/common/zmi/summary.py:158
+#: src/pyams_content/shared/common/zmi/summary.py:166
 #: src/pyams_content/shared/common/zmi/dashboard.py:198
 msgid "Version"
 msgstr "Version"
 
-#: src/pyams_content/shared/common/zmi/summary.py:107
+#: src/pyams_content/shared/common/zmi/summary.py:115
 #, python-format
 msgid "{state} {date} by {principal}"
 msgstr "{state} {date} par {principal}"
 
-#: src/pyams_content/shared/common/zmi/summary.py:164
+#: src/pyams_content/shared/common/zmi/summary.py:172
 #, python-format
 msgid "{state} since {date}, by {principal}"
 msgstr "{state} depuis {date} par {principal}"
@@ -2879,25 +2882,25 @@
 "Un numéro unique lui sera également attribué ; ce numéro sera conservé "
 "pendant toute la vie du contenu, quelle que soit la version."
 
-#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:128
-#: src/pyams_content/root/zmi/templates/advanced-search.pt:128
+#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:130
+#: src/pyams_content/root/zmi/templates/advanced-search.pt:130
 msgid "Created between"
 msgstr "Créé entre le"
 
-#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:140
-#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:166
-#: src/pyams_content/root/zmi/templates/advanced-search.pt:140
-#: src/pyams_content/root/zmi/templates/advanced-search.pt:166
+#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:142
+#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:168
+#: src/pyams_content/root/zmi/templates/advanced-search.pt:142
+#: src/pyams_content/root/zmi/templates/advanced-search.pt:168
 msgid "and"
 msgstr "et le"
 
-#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:154
-#: src/pyams_content/root/zmi/templates/advanced-search.pt:154
+#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:156
+#: src/pyams_content/root/zmi/templates/advanced-search.pt:156
 msgid "Modified between"
 msgstr "Modifié entre le"
 
-#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:202
-#: src/pyams_content/root/zmi/templates/advanced-search.pt:202
+#: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:214
+#: src/pyams_content/root/zmi/templates/advanced-search.pt:211
 msgid "Tab label"
 msgstr "Libellé de l'onglet"
 
@@ -4075,7 +4078,7 @@
 msgstr "Liste des zones cliquables définies sur l'image"
 
 #: src/pyams_content/shared/imagemap/interfaces/__init__.py:96
-#: src/pyams_content/features/alert/interfaces.py:73
+#: src/pyams_content/features/alert/interfaces.py:69
 #: src/pyams_content/features/menu/interfaces/__init__.py:68
 msgid "Internal reference"
 msgstr "Référence interne"
@@ -4442,7 +4445,7 @@
 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
+#: src/pyams_content/root/zmi/search.py:160
 msgid "Content types"
 msgstr "Types de contenus"
 
@@ -4973,8 +4976,12 @@
 msgid "preview"
 msgstr "aperçu"
 
+#: src/pyams_content/features/alert/interfaces.py:39
+msgid "Alert"
+msgstr "Alerte"
+
 #: src/pyams_content/features/alert/interfaces.py:40
-msgid "Success"
+msgid "End of alert"
 msgstr "Levée d'alerte"
 
 #: src/pyams_content/features/alert/interfaces.py:41
@@ -4986,8 +4993,8 @@
 msgstr "Avertissement"
 
 #: src/pyams_content/features/alert/interfaces.py:43
-msgid "Danger"
-msgstr "Danger !"
+msgid "Recommendation"
+msgstr "Recommandation"
 
 #: src/pyams_content/features/alert/interfaces.py:55
 msgid "Is this alert visible in front-office?"
@@ -5001,26 +5008,16 @@
 msgid "Alert gravity will affect rendered alert style"
 msgstr "Le niveau de gravité choisi affectera le style de rendu de l'alerte"
 
-#. Default: Heading
 #: src/pyams_content/features/alert/interfaces.py:65
-#: src/pyams_content/features/alert/zmi/container.py:164
-msgid "alert-header"
-msgstr "En-tête"
+#: src/pyams_content/features/alert/zmi/container.py:145
+msgid "Message"
+msgstr "Message"
 
 #: src/pyams_content/features/alert/interfaces.py:66
-msgid "Short alert header (Alert, Important...)"
-msgstr "En-tête de l'alerte (« Alerte », « Important », « Prudence »...)"
-
-#: src/pyams_content/features/alert/interfaces.py:69
-#: src/pyams_content/features/alert/zmi/container.py:176
-msgid "Message"
-msgstr "Message"
+msgid "Alert message"
+msgstr "Le message d'alerte doit être assez court et explicite"
 
 #: src/pyams_content/features/alert/interfaces.py:70
-msgid "Alert message"
-msgstr "Le message d'alerte doit être assez court et explicite"
-
-#: src/pyams_content/features/alert/interfaces.py:74
 msgid ""
 "Internal link target reference. You can search a reference using '+' "
 "followed by internal number, of by entering text matching content title."
@@ -5029,31 +5026,31 @@
 "mots de son titre, ou par son numéro interne (précédé d'un '+') ; le titre "
 "d'origine peut être modifié en utilisant le titre de substitution."
 
-#: src/pyams_content/features/alert/interfaces.py:86
+#: src/pyams_content/features/alert/interfaces.py:75
 msgid "Display start date"
 msgstr "Date d'affichage"
 
-#: src/pyams_content/features/alert/interfaces.py:87
+#: src/pyams_content/features/alert/interfaces.py:76
 msgid "First date at which alert should be displayed"
 msgstr ""
 "Première date à laquelle l'alerte sera affichée. Laissez la zone vide pour "
 "qu'elle soit affichée immédiatement."
 
-#: src/pyams_content/features/alert/interfaces.py:90
+#: src/pyams_content/features/alert/interfaces.py:79
 msgid "Display end date"
 msgstr "Date de retrait"
 
-#: src/pyams_content/features/alert/interfaces.py:91
+#: src/pyams_content/features/alert/interfaces.py:80
 msgid "Last date at which alert should be displayed"
 msgstr ""
 "Dernière date à laquelle l'alerte sera affichée. Laissez la zone vide pour "
 "qu'elle ne soit pas retirée."
 
-#: src/pyams_content/features/alert/interfaces.py:94
+#: src/pyams_content/features/alert/interfaces.py:83
 msgid "Maximum interval"
 msgstr "Intervalle d'affichage"
 
-#: src/pyams_content/features/alert/interfaces.py:95
+#: src/pyams_content/features/alert/interfaces.py:84
 msgid ""
 "Maximum interval between alert displays on a given device, given in hours; "
 "set to 0 to always display the alert"
@@ -5078,7 +5075,7 @@
 msgid "Alerts"
 msgstr "Alertes"
 
-#: src/pyams_content/features/alert/zmi/container.py:198
+#: src/pyams_content/features/alert/zmi/container.py:167
 msgid "Alert list"
 msgstr "Liste des alertes"
 
@@ -5654,6 +5651,18 @@
 msgid "Hidden header"
 msgstr "Ne pas afficher d'en-tête de pages"
 
+#~ msgid "Success"
+#~ msgstr "Levée d'alerte"
+
+#~ msgid "Danger"
+#~ msgstr "Danger !"
+
+#~ msgid "alert-header"
+#~ msgstr "En-tête"
+
+#~ msgid "Short alert header (Alert, Important...)"
+#~ msgstr "En-tête de l'alerte (« Alerte », « Important », « Prudence »...)"
+
 #~ msgid "Header..."
 #~ msgstr "Chapô"
 
--- a/src/pyams_content/locales/pyams_content.pot	Wed Aug 29 09:33:45 2018 +0200
+++ b/src/pyams_content/locales/pyams_content.pot	Wed Aug 29 10:34:03 2018 +0200
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2018-08-28 11:46+0200\n"
+"POT-Creation-Date: 2018-08-29 10:31+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -275,11 +275,11 @@
 #: ./src/pyams_content/component/paragraph/interfaces/milestone.py:45
 #: ./src/pyams_content/shared/common/zmi/reverse.py:73
 #: ./src/pyams_content/shared/common/zmi/dashboard.py:109
-#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:188
+#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:200
 #: ./src/pyams_content/shared/view/portlet/interfaces.py:56
 #: ./src/pyams_content/shared/imagemap/zmi/container.py:123
 #: ./src/pyams_content/shared/site/zmi/folder.py:70
-#: ./src/pyams_content/root/zmi/templates/advanced-search.pt:188
+#: ./src/pyams_content/root/zmi/templates/advanced-search.pt:197
 #: ./src/pyams_content/interfaces/__init__.py:101
 #: ./src/pyams_content/reference/pictograms/zmi/__init__.py:150
 #: ./src/pyams_content/features/menu/portlet/navigation/interfaces/simple.py:31
@@ -1079,12 +1079,10 @@
 #: ./src/pyams_content/component/paragraph/interfaces/pictogram.py:46
 #: ./src/pyams_content/component/links/interfaces/__init__.py:43
 #: ./src/pyams_content/shared/common/interfaces/types.py:75
-#: ./src/pyams_content/features/alert/interfaces.py:79
 msgid "Pictogram"
 msgstr ""
 
 #: ./src/pyams_content/component/paragraph/interfaces/pictogram.py:47
-#: ./src/pyams_content/features/alert/interfaces.py:80
 msgid "Name of the pictogram to select"
 msgstr ""
 
@@ -1277,6 +1275,9 @@
 #: ./src/pyams_content/component/theme/zmi/portlet.py:40
 #: ./src/pyams_content/component/theme/interfaces/__init__.py:47
 #: ./src/pyams_content/component/theme/interfaces/__init__.py:61
+#: ./src/pyams_content/shared/common/zmi/search.py:189
+#: ./src/pyams_content/root/zmi/search.py:179
+#: ./src/pyams_content/root/zmi/templates/advanced-search.pt:181
 msgid "Tags"
 msgstr ""
 
@@ -1284,6 +1285,7 @@
 #: ./src/pyams_content/component/theme/zmi/portlet.py:55
 #: ./src/pyams_content/component/theme/interfaces/__init__.py:88
 #: ./src/pyams_content/component/theme/interfaces/__init__.py:102
+#: ./src/pyams_content/shared/common/zmi/search.py:192
 msgid "Themes"
 msgstr ""
 
@@ -1291,6 +1293,7 @@
 #: ./src/pyams_content/component/theme/zmi/portlet.py:70
 #: ./src/pyams_content/component/theme/interfaces/__init__.py:129
 #: ./src/pyams_content/component/theme/interfaces/__init__.py:143
+#: ./src/pyams_content/shared/common/zmi/search.py:195
 msgid "Collections"
 msgstr ""
 
@@ -1804,51 +1807,51 @@
 msgid "title length should be between 40 and 66 characters ({length} actually)"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/search.py:92
-#: ./src/pyams_content/root/zmi/search.py:91
+#: ./src/pyams_content/shared/common/zmi/search.py:96
+#: ./src/pyams_content/root/zmi/search.py:95
 msgid "Quick search results"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/search.py:157
-#: ./src/pyams_content/shared/common/zmi/search.py:190
-#: ./src/pyams_content/root/zmi/search.py:147
-#: ./src/pyams_content/root/zmi/search.py:180
+#: ./src/pyams_content/shared/common/zmi/search.py:162
+#: ./src/pyams_content/shared/common/zmi/search.py:204
+#: ./src/pyams_content/root/zmi/search.py:152
+#: ./src/pyams_content/root/zmi/search.py:188
 msgid "Advanced search"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/search.py:282
-#: ./src/pyams_content/root/zmi/search.py:260
+#: ./src/pyams_content/shared/common/zmi/search.py:332
+#: ./src/pyams_content/root/zmi/search.py:280
 msgid "Advanced search results"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/search.py:165
+#: ./src/pyams_content/shared/common/zmi/search.py:170
 #: ./src/pyams_content/shared/common/zmi/dashboard.py:231
-#: ./src/pyams_content/root/zmi/search.py:159
+#: ./src/pyams_content/root/zmi/search.py:164
 msgid "Owner"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/search.py:168
+#: ./src/pyams_content/shared/common/zmi/search.py:173
 #: ./src/pyams_content/shared/common/zmi/dashboard.py:154
 msgid "Status"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/search.py:172
-#: ./src/pyams_content/root/zmi/search.py:162
+#: ./src/pyams_content/shared/common/zmi/search.py:177
+#: ./src/pyams_content/root/zmi/search.py:167
 msgid "Created after..."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/search.py:175
-#: ./src/pyams_content/root/zmi/search.py:165
+#: ./src/pyams_content/shared/common/zmi/search.py:180
+#: ./src/pyams_content/root/zmi/search.py:170
 msgid "Created before..."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/search.py:178
-#: ./src/pyams_content/root/zmi/search.py:168
+#: ./src/pyams_content/shared/common/zmi/search.py:183
+#: ./src/pyams_content/root/zmi/search.py:173
 msgid "Modified after..."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/search.py:181
-#: ./src/pyams_content/root/zmi/search.py:171
+#: ./src/pyams_content/shared/common/zmi/search.py:186
+#: ./src/pyams_content/root/zmi/search.py:176
 msgid "Modified before..."
 msgstr ""
 
@@ -2070,45 +2073,45 @@
 msgid "Created or modified in this version"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/summary.py:50
+#: ./src/pyams_content/shared/common/zmi/summary.py:52
 msgid "Display content summary"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/summary.py:74
+#: ./src/pyams_content/shared/common/zmi/summary.py:76
 msgid "Identity card"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/summary.py:86
+#: ./src/pyams_content/shared/common/zmi/summary.py:94
 msgid "Requested action"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/summary.py:127
+#: ./src/pyams_content/shared/common/zmi/summary.py:135
 msgid "Publication and retire dates"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/summary.py:146
+#: ./src/pyams_content/shared/common/zmi/summary.py:154
 msgid "Current version"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/summary.py:176
+#: ./src/pyams_content/shared/common/zmi/summary.py:184
 msgid "Content history"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/summary.py:117
+#: ./src/pyams_content/shared/common/zmi/summary.py:125
 msgid "Associated comment"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/summary.py:158
+#: ./src/pyams_content/shared/common/zmi/summary.py:166
 #: ./src/pyams_content/shared/common/zmi/dashboard.py:198
 msgid "Version"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/summary.py:107
+#: ./src/pyams_content/shared/common/zmi/summary.py:115
 #, python-format
 msgid "{state} {date} by {principal}"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/summary.py:164
+#: ./src/pyams_content/shared/common/zmi/summary.py:172
 #, python-format
 msgid "{state} since {date}, by {principal}"
 msgstr ""
@@ -2734,25 +2737,25 @@
 "shared by all content's versions."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:128
-#: ./src/pyams_content/root/zmi/templates/advanced-search.pt:128
+#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:130
+#: ./src/pyams_content/root/zmi/templates/advanced-search.pt:130
 msgid "Created between"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:140
-#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:166
-#: ./src/pyams_content/root/zmi/templates/advanced-search.pt:140
-#: ./src/pyams_content/root/zmi/templates/advanced-search.pt:166
+#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:142
+#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:168
+#: ./src/pyams_content/root/zmi/templates/advanced-search.pt:142
+#: ./src/pyams_content/root/zmi/templates/advanced-search.pt:168
 msgid "and"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:154
-#: ./src/pyams_content/root/zmi/templates/advanced-search.pt:154
+#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:156
+#: ./src/pyams_content/root/zmi/templates/advanced-search.pt:156
 msgid "Modified between"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:202
-#: ./src/pyams_content/root/zmi/templates/advanced-search.pt:202
+#: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:214
+#: ./src/pyams_content/root/zmi/templates/advanced-search.pt:211
 msgid "Tab label"
 msgstr ""
 
@@ -3806,7 +3809,7 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/imagemap/interfaces/__init__.py:96
-#: ./src/pyams_content/features/alert/interfaces.py:73
+#: ./src/pyams_content/features/alert/interfaces.py:69
 #: ./src/pyams_content/features/menu/interfaces/__init__.py:68
 msgid "Internal reference"
 msgstr ""
@@ -4161,7 +4164,7 @@
 msgid "Given element name doesn't exist!"
 msgstr ""
 
-#: ./src/pyams_content/root/zmi/search.py:155
+#: ./src/pyams_content/root/zmi/search.py:160
 msgid "Content types"
 msgstr ""
 
@@ -4684,8 +4687,12 @@
 msgid "preview"
 msgstr ""
 
+#: ./src/pyams_content/features/alert/interfaces.py:39
+msgid "Alert"
+msgstr ""
+
 #: ./src/pyams_content/features/alert/interfaces.py:40
-msgid "Success"
+msgid "End of alert"
 msgstr ""
 
 #: ./src/pyams_content/features/alert/interfaces.py:41
@@ -4697,7 +4704,7 @@
 msgstr ""
 
 #: ./src/pyams_content/features/alert/interfaces.py:43
-msgid "Danger"
+msgid "Recommendation"
 msgstr ""
 
 #: ./src/pyams_content/features/alert/interfaces.py:55
@@ -4712,52 +4719,42 @@
 msgid "Alert gravity will affect rendered alert style"
 msgstr ""
 
-#. Default: Heading
 #: ./src/pyams_content/features/alert/interfaces.py:65
-#: ./src/pyams_content/features/alert/zmi/container.py:164
-msgid "alert-header"
+#: ./src/pyams_content/features/alert/zmi/container.py:145
+msgid "Message"
 msgstr ""
 
 #: ./src/pyams_content/features/alert/interfaces.py:66
-msgid "Short alert header (Alert, Important...)"
-msgstr ""
-
-#: ./src/pyams_content/features/alert/interfaces.py:69
-#: ./src/pyams_content/features/alert/zmi/container.py:176
-msgid "Message"
+msgid "Alert message"
 msgstr ""
 
 #: ./src/pyams_content/features/alert/interfaces.py:70
-msgid "Alert message"
-msgstr ""
-
-#: ./src/pyams_content/features/alert/interfaces.py:74
 msgid ""
 "Internal link target reference. You can search a reference using '+' followed"
 " by internal number, of by entering text matching content title."
 msgstr ""
 
-#: ./src/pyams_content/features/alert/interfaces.py:86
+#: ./src/pyams_content/features/alert/interfaces.py:75
 msgid "Display start date"
 msgstr ""
 
-#: ./src/pyams_content/features/alert/interfaces.py:87
+#: ./src/pyams_content/features/alert/interfaces.py:76
 msgid "First date at which alert should be displayed"
 msgstr ""
 
-#: ./src/pyams_content/features/alert/interfaces.py:90
+#: ./src/pyams_content/features/alert/interfaces.py:79
 msgid "Display end date"
 msgstr ""
 
-#: ./src/pyams_content/features/alert/interfaces.py:91
+#: ./src/pyams_content/features/alert/interfaces.py:80
 msgid "Last date at which alert should be displayed"
 msgstr ""
 
-#: ./src/pyams_content/features/alert/interfaces.py:94
+#: ./src/pyams_content/features/alert/interfaces.py:83
 msgid "Maximum interval"
 msgstr ""
 
-#: ./src/pyams_content/features/alert/interfaces.py:95
+#: ./src/pyams_content/features/alert/interfaces.py:84
 msgid ""
 "Maximum interval between alert displays on a given device, given in hours; "
 "set to 0 to always display the alert"
@@ -4779,7 +4776,7 @@
 msgid "Alerts"
 msgstr ""
 
-#: ./src/pyams_content/features/alert/zmi/container.py:198
+#: ./src/pyams_content/features/alert/zmi/container.py:167
 msgid "Alert list"
 msgstr ""