Version 0.1.31 0.1.31
authorThierry Florac <thierry.florac@onf.fr>
Fri, 14 Dec 2018 18:38:02 +0100
changeset 1175 b851a687604d
parent 1174 f385d7d24af9
child 1176 93f228d89332
Version 0.1.31
buildout.cfg
docs/HISTORY.txt
setup.py
src/pyams_content.egg-info/PKG-INFO
src/pyams_content.egg-info/SOURCES.txt
src/pyams_content.egg-info/requires.txt
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/buildout.cfg	Fri Dec 14 18:29:23 2018 +0100
+++ b/buildout.cfg	Fri Dec 14 18:38:02 2018 +0100
@@ -86,4 +86,4 @@
 eggs = pyams_content [test]
 
 [versions]
-pyams_content = 0.1.30
+pyams_content = 0.1.31
--- a/docs/HISTORY.txt	Fri Dec 14 18:29:23 2018 +0100
+++ b/docs/HISTORY.txt	Fri Dec 14 18:38:02 2018 +0100
@@ -1,6 +1,18 @@
 History
 =======
 
+0.1.31
+------
+ - updated dynamic menus management
+ - use custom skin's stylesheet in HTML editor
+ - updated factories declarations
+ - add error message in rename form when selected URL already exists
+ - added option to force canonical URL in internal links
+ - updated views interfaces to add optional "request" argument to params and results getters methods
+ - updated views and search engines so that results displayed in a view component can be excluded from other search
+   results
+ - allow direct search by OID (prefixed by +) in front-office
+
 0.1.30
 ------
  - updated quick search engine from dashboards
--- a/setup.py	Fri Dec 14 18:29:23 2018 +0100
+++ b/setup.py	Fri Dec 14 18:38:02 2018 +0100
@@ -24,7 +24,7 @@
 README = os.path.join(DOCS, 'README.txt')
 HISTORY = os.path.join(DOCS, 'HISTORY.txt')
 
-version = '0.1.30'
+version = '0.1.31'
 long_description = open(README).read() + '\n\n' + open(HISTORY).read()
 
 tests_require = []
@@ -83,6 +83,7 @@
           'pyramid_chameleon',
           'pyramid_mailer',
           'transaction',
+          'tinycss2',
           'z3c.form',
           'z3c.table',
           'zodbupdate',
--- a/src/pyams_content.egg-info/PKG-INFO	Fri Dec 14 18:29:23 2018 +0100
+++ b/src/pyams_content.egg-info/PKG-INFO	Fri Dec 14 18:38:02 2018 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: pyams-content
-Version: 0.1.30
+Version: 0.1.31
 Summary: PyAMS base content interfaces and classes
 Home-page: http://hg.ztfy.org/pyams/pyams_content
 Author: Thierry Florac
@@ -72,6 +72,18 @@
         History
         =======
         
+        0.1.31
+        ------
+         - updated dynamic menus management
+         - use custom skin's stylesheet in HTML editor
+         - updated factories declarations
+         - add error message in rename form when selected URL already exists
+         - added option to force canonical URL in internal links
+         - updated views interfaces to add optional "request" argument to params and results getters methods
+         - updated views and search engines so that results displayed in a view component can be excluded from other search
+           results
+         - allow direct search by OID (prefixed by +) in front-office
+        
         0.1.30
         ------
          - updated quick search engine from dashboards
--- a/src/pyams_content.egg-info/SOURCES.txt	Fri Dec 14 18:29:23 2018 +0100
+++ b/src/pyams_content.egg-info/SOURCES.txt	Fri Dec 14 18:38:02 2018 +0100
@@ -178,6 +178,7 @@
 src/pyams_content/features/preview/interfaces.py
 src/pyams_content/features/preview/zmi/__init__.py
 src/pyams_content/features/preview/zmi/interfaces.py
+src/pyams_content/features/preview/zmi/templates/preview-action.pt
 src/pyams_content/features/preview/zmi/templates/preview.pt
 src/pyams_content/features/redirect/__init__.py
 src/pyams_content/features/redirect/container.py
@@ -364,6 +365,7 @@
 src/pyams_content/shared/site/zmi/folder.py
 src/pyams_content/shared/site/zmi/link.py
 src/pyams_content/shared/site/zmi/manager.py
+src/pyams_content/shared/site/zmi/templates/container-header.pt
 src/pyams_content/shared/site/zmi/widget/__init__.py
 src/pyams_content/shared/site/zmi/widget/interfaces.py
 src/pyams_content/shared/site/zmi/widget/templates/folders-input.pt
--- a/src/pyams_content.egg-info/requires.txt	Fri Dec 14 18:29:23 2018 +0100
+++ b/src/pyams_content.egg-info/requires.txt	Fri Dec 14 18:38:02 2018 +0100
@@ -23,6 +23,7 @@
 pyramid_chameleon
 pyramid_mailer
 transaction
+tinycss2
 z3c.form
 z3c.table
 zodbupdate
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	Fri Dec 14 18:29:23 2018 +0100
+++ b/src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po	Fri Dec 14 18:38:02 2018 +0100
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2018-12-14 08:57+0100\n"
+"POT-Creation-Date: 2018-12-14 14:39+0100\n"
 "PO-Revision-Date: 2015-09-10 10:42+0200\n"
 "Last-Translator: Thierry Florac <tflorac@ulthar.net>\n"
 "Language-Team: French\n"
@@ -16,67 +16,71 @@
 "Generated-By: Lingua 3.10.dev0\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: src/pyams_content/__init__.py:37
+#: src/pyams_content/__init__.py:38
 msgid "Manage site root"
 msgstr "Gérer l'ensemble du site"
 
-#: src/pyams_content/__init__.py:39
+#: src/pyams_content/__init__.py:40
 msgid "Manage site"
 msgstr "Gérer un site"
 
-#: src/pyams_content/__init__.py:41
+#: src/pyams_content/__init__.py:42
 msgid "Manage tool"
 msgstr "Gérer un outil"
 
-#: src/pyams_content/__init__.py:43
+#: src/pyams_content/__init__.py:44
 msgid "Create content"
 msgstr "Créer un contenu"
 
-#: src/pyams_content/__init__.py:45
+#: src/pyams_content/__init__.py:46
 msgid "Manage content"
 msgstr "Gérer un contenu"
 
-#: src/pyams_content/__init__.py:47
+#: src/pyams_content/__init__.py:48
+msgid "Create version"
+msgstr "Créer une nouvelle version d'un contenu"
+
+#: src/pyams_content/__init__.py:50
 msgid "Comment content"
 msgstr "Commenter un contenu"
 
-#: src/pyams_content/__init__.py:49 src/pyams_content/workflow/__init__.py:376
+#: src/pyams_content/__init__.py:52 src/pyams_content/workflow/__init__.py:372
 msgid "Publish content"
 msgstr "Publier le contenu"
 
-#: src/pyams_content/__init__.py:53
+#: src/pyams_content/__init__.py:56
 msgid "System manager (role)"
 msgstr "Administrateur (rôle)"
 
-#: src/pyams_content/__init__.py:60
+#: src/pyams_content/__init__.py:63
 msgid "Webmaster (role)"
 msgstr "Webmestre (rôle)"
 
-#: src/pyams_content/__init__.py:71
+#: src/pyams_content/__init__.py:75
 msgid "Pilot (role)"
 msgstr "Pilote (rôle)"
 
-#: src/pyams_content/__init__.py:81
+#: src/pyams_content/__init__.py:85
 msgid "Manager (role)"
 msgstr "Responsable (rôle)"
 
-#: src/pyams_content/__init__.py:90
+#: src/pyams_content/__init__.py:95
 msgid "Owner (role)"
 msgstr "Propriétaire (rôle)"
 
-#: src/pyams_content/__init__.py:95
+#: src/pyams_content/__init__.py:100
 msgid "Contributor (role)"
 msgstr "Contributeur (rôle)"
 
-#: src/pyams_content/__init__.py:106
+#: src/pyams_content/__init__.py:111
 msgid "Reader (role)"
 msgstr "Relecteur (rôle)"
 
-#: src/pyams_content/__init__.py:116
+#: src/pyams_content/__init__.py:121
 msgid "Operator (role)"
 msgstr "Opérateur (rôle)"
 
-#: src/pyams_content/__init__.py:121
+#: src/pyams_content/__init__.py:126
 msgid "Guest user (role)"
 msgstr "Invité (rôle)"
 
@@ -193,7 +197,7 @@
 #: src/pyams_content/features/menu/portlet/navigation/interfaces/double.py:31
 #: src/pyams_content/features/search/portlet/interfaces.py:24
 #: src/pyams_content/root/zmi/templates/advanced-search.pt:197
-#: src/pyams_content/shared/view/portlet/interfaces.py:56
+#: src/pyams_content/shared/view/portlet/interfaces.py:53
 #: src/pyams_content/shared/common/zmi/dashboard.py:104
 #: src/pyams_content/shared/common/zmi/reverse.py:73
 #: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:200
@@ -923,10 +927,11 @@
 "link target in the current context; by using a canonical URL, you can "
 "display target in it's attachment context (if defined)"
 msgstr ""
-"Par défaut, les liens internes qui pointent vers des contenus partagés utilisent une URL "
-"\"relative\", qui permet d'afficher la cible du lien dans le contexte de la page courante ; "
-"en imposant l'utilisation d'une URL \"canonique\", l'URL générée permet de consulter le contenu "
-"dans le contexte de sa rubrique ou de son site de rattachement, s'ils existent"
+"Par défaut, les liens internes qui pointent vers des contenus partagés "
+"utilisent une URL \"relative\", qui permet d'afficher la cible du lien dans "
+"le contexte de la page courante ; en imposant l'utilisation d'une URL "
+"\"canonique\", l'URL générée permet de consulter le contenu dans le contexte "
+"de sa rubrique ou de son site de rattachement, s'ils existent"
 
 #: src/pyams_content/component/links/interfaces.py:68
 #: src/pyams_content/features/redirect/interfaces.py:68
@@ -1730,7 +1735,7 @@
 
 #: src/pyams_content/component/paragraph/zmi/__init__.py:210
 #: src/pyams_content/component/paragraph/zmi/__init__.py:223
-#: src/pyams_content/features/preview/zmi/__init__.py:45
+#: src/pyams_content/features/preview/zmi/__init__.py:46
 #: src/pyams_content/shared/common/zmi/templates/preview-input.pt:39
 msgid "Preview"
 msgstr "Aperçu"
@@ -2922,19 +2927,23 @@
 msgid "Edit renderer properties"
 msgstr "Propriétés de ce mode de rendu"
 
-#: src/pyams_content/features/preview/zmi/__init__.py:62
+#: src/pyams_content/features/preview/zmi/__init__.py:63
 msgid "Content preview"
 msgstr "Aperçu du contenu"
 
-#: src/pyams_content/features/preview/zmi/__init__.py:67
+#: src/pyams_content/features/preview/zmi/__init__.py:68
 #, python-format
 msgid "{title} ({preview})"
 msgstr "{title} ({preview})"
 
-#: src/pyams_content/features/preview/zmi/__init__.py:68
+#: src/pyams_content/features/preview/zmi/__init__.py:69
 msgid "preview"
 msgstr "aperçu"
 
+#: src/pyams_content/features/preview/zmi/templates/preview-action.pt:12
+msgid "Open preview in new window"
+msgstr "Ouvrir l'aperçu dans une nouvelle fenêtre"
+
 #: src/pyams_content/features/preview/zmi/templates/preview.pt:21
 msgid "Open in new window"
 msgstr "Ouvrir dans une nouvelle fenêtre"
@@ -3057,7 +3066,7 @@
 msgid "Click to see menu items"
 msgstr "Montrer ou cacher les éléments du menu"
 
-#: src/pyams_content/features/search/__init__.py:44
+#: src/pyams_content/features/search/__init__.py:46
 msgid "Search folder"
 msgstr "Moteur de recherche"
 
@@ -3162,7 +3171,7 @@
 "Types de contenus sélectionnés ; si cette sélection est vide, tous les "
 "contenus (typés ou non) seront pris en charge"
 
-#: src/pyams_content/features/search/portlet/__init__.py:84
+#: src/pyams_content/features/search/portlet/__init__.py:85
 msgid "Search results"
 msgstr "Résultats de la recherche"
 
@@ -4008,25 +4017,25 @@
 msgstr ""
 "Extraire les résultats de chaque vue, une par une (ordre des vues aléatoire)"
 
-#: src/pyams_content/shared/view/merge.py:127
+#: src/pyams_content/shared/view/merge.py:126
 msgid "Sort all results by creation date"
 msgstr ""
 "Trier tous les résultats sur la date de création (du plus récent au plus "
 "ancien)"
 
-#: src/pyams_content/shared/view/merge.py:136
+#: src/pyams_content/shared/view/merge.py:135
 msgid "Sort all results by last update date"
 msgstr ""
 "Trier tous les résultats sur la date de dernière mise à jour (du plus récent "
 "au plus ancien)"
 
-#: src/pyams_content/shared/view/merge.py:145
+#: src/pyams_content/shared/view/merge.py:144
 msgid "Sort all results by current publication date"
 msgstr ""
 "Trier tous les résultats sur la date de publication (du plus récent au plus "
 "ancien)"
 
-#: src/pyams_content/shared/view/merge.py:154
+#: src/pyams_content/shared/view/merge.py:153
 msgid "Sort all results by first publication date"
 msgstr ""
 "Trier tous les résultats sur la date de première publication (du plus récent "
@@ -4119,7 +4128,7 @@
 "récent"
 
 #: src/pyams_content/shared/view/interfaces.py:119
-#: src/pyams_content/shared/view/portlet/interfaces.py:91
+#: src/pyams_content/shared/view/portlet/interfaces.py:88
 msgid "Results count limit"
 msgstr "Limite de résultats"
 
@@ -4203,23 +4212,23 @@
 msgid "Other collections"
 msgstr "Autres collections"
 
-#: src/pyams_content/shared/view/portlet/__init__.py:86
+#: src/pyams_content/shared/view/portlet/__init__.py:96
 msgid "View items"
 msgstr "Contenu d'une vue"
 
-#: src/pyams_content/shared/view/portlet/interfaces.py:41
+#: src/pyams_content/shared/view/portlet/interfaces.py:36
 msgid "Display context"
 msgstr "Contexte d'affichage"
 
-#: src/pyams_content/shared/view/portlet/interfaces.py:42
+#: src/pyams_content/shared/view/portlet/interfaces.py:37
 msgid "Content context"
 msgstr "Contexte du contenu"
 
-#: src/pyams_content/shared/view/portlet/interfaces.py:59
+#: src/pyams_content/shared/view/portlet/interfaces.py:56
 msgid "Selected views"
 msgstr "Vue(s) sélectionnée(s)"
 
-#: src/pyams_content/shared/view/portlet/interfaces.py:60
+#: src/pyams_content/shared/view/portlet/interfaces.py:57
 msgid ""
 "Reference to the view(s) from which items are extracted; you can combine "
 "several views together and specify in which order they should be mixed"
@@ -4228,11 +4237,11 @@
 "plusieurs vues ensemble en indiquant la façon dont leurs résultats seront "
 "fusionnés"
 
-#: src/pyams_content/shared/view/portlet/interfaces.py:69
+#: src/pyams_content/shared/view/portlet/interfaces.py:66
 msgid "Views context"
 msgstr "Contexte des vues"
 
-#: src/pyams_content/shared/view/portlet/interfaces.py:70
+#: src/pyams_content/shared/view/portlet/interfaces.py:67
 msgid ""
 "When searching for items, a view receives a \"context\" which is the object "
 "from which settings can be extracted; this context can be the \"display\" "
@@ -4251,11 +4260,11 @@
 "contenu partagé, tandis que le contexte d'affichage est le conteneur (page "
 "d'accueil, site ou rubrique) au sein duquel le contenu est affiché."
 
-#: src/pyams_content/shared/view/portlet/interfaces.py:81
+#: src/pyams_content/shared/view/portlet/interfaces.py:78
 msgid "Views merge mode"
 msgstr "Mode de fusion des vues"
 
-#: src/pyams_content/shared/view/portlet/interfaces.py:82
+#: src/pyams_content/shared/view/portlet/interfaces.py:79
 msgid ""
 "If you select several views, you can select \"merge\" mode, which is the way "
 "used to merge items from several views"
@@ -4265,23 +4274,37 @@
 "sélectionnez qu'une seule vue, car l'ordre des résultats est alors basé "
 "uniquement sur les paramètres de la vue."
 
-#: src/pyams_content/shared/view/portlet/interfaces.py:92
+#: src/pyams_content/shared/view/portlet/interfaces.py:89
 msgid ""
 "Maximum number of results that the component may extract from merged views"
 msgstr ""
 "Nombre maximal de résultats que le composant doit extraire des vues "
 "fusionnées"
 
-#: src/pyams_content/shared/view/portlet/interfaces.py:95
+#: src/pyams_content/shared/view/portlet/interfaces.py:92
 msgid "Starting from..."
 msgstr "A partir de"
 
-#: src/pyams_content/shared/view/portlet/interfaces.py:96
+#: src/pyams_content/shared/view/portlet/interfaces.py:93
 msgid "You can skip several results if specifying an integer value here..."
 msgstr ""
 "Vous pouvez écarter un certain nombre de résultats, en indiquant ici la "
 "position du premier élément à prendre en compte"
 
+#: src/pyams_content/shared/view/portlet/interfaces.py:100
+msgid "Exclude from search results"
+msgstr "Exclure des résultats de recherche"
+
+#: src/pyams_content/shared/view/portlet/interfaces.py:101
+msgid ""
+"If 'yes', and if this portlet is associated with a search engine in the same "
+"page template, items displayed by this portlet will be excluded from search "
+"results"
+msgstr ""
+"Si 'oui', et si ce composant est associé à un résultat de recherche au sein du "
+"même modèle de présentation, les contenus qu'il affiche seront exclus des résultats "
+"du moteur de recherche"
+
 #: src/pyams_content/shared/view/portlet/zmi/templates/view-items-list-preview.pt:8
 msgid "Selected views:"
 msgstr "Vue(s) sélectionnée(s) : "
@@ -5208,7 +5231,7 @@
 msgstr "Demander la publication"
 
 #: src/pyams_content/shared/common/zmi/workflow.py:207
-#: src/pyams_content/workflow/__init__.py:316
+#: src/pyams_content/workflow/__init__.py:312
 msgid "Cancel publication request"
 msgstr "Annuler la demande de publication"
 
@@ -5217,7 +5240,7 @@
 msgstr "Refuser la demande de publication"
 
 #: src/pyams_content/shared/common/zmi/workflow.py:301
-#: src/pyams_content/workflow/basic.py:197
+#: src/pyams_content/workflow/basic.py:194
 msgid "Publish"
 msgstr "Publier"
 
@@ -5234,7 +5257,7 @@
 msgstr "Retirer"
 
 #: src/pyams_content/shared/common/zmi/workflow.py:529
-#: src/pyams_content/workflow/__init__.py:437
+#: src/pyams_content/workflow/__init__.py:433
 msgid "Request archive"
 msgstr "Demander l'archivage"
 
@@ -5247,19 +5270,19 @@
 msgstr "Archiver"
 
 #: src/pyams_content/shared/common/zmi/workflow.py:653
-#: src/pyams_content/workflow/__init__.py:502
-#: src/pyams_content/workflow/__init__.py:514
-#: src/pyams_content/workflow/__init__.py:526
-#: src/pyams_content/workflow/__init__.py:538
-#: src/pyams_content/workflow/__init__.py:550
-#: src/pyams_content/workflow/basic.py:225
-#: src/pyams_content/workflow/basic.py:237
+#: src/pyams_content/workflow/__init__.py:498
+#: src/pyams_content/workflow/__init__.py:510
+#: src/pyams_content/workflow/__init__.py:522
+#: src/pyams_content/workflow/__init__.py:534
+#: src/pyams_content/workflow/__init__.py:546
+#: src/pyams_content/workflow/basic.py:222
+#: src/pyams_content/workflow/basic.py:234
 msgid "Create new version"
 msgstr "Créer une nouvelle version"
 
 #: src/pyams_content/shared/common/zmi/workflow.py:704
-#: src/pyams_content/workflow/__init__.py:562
-#: src/pyams_content/workflow/basic.py:249
+#: src/pyams_content/workflow/__init__.py:558
+#: src/pyams_content/workflow/basic.py:246
 msgid "Delete version"
 msgstr "Supprimer cette version"
 
@@ -5309,10 +5332,10 @@
 msgstr "Vous devez avoir audité ce contenu avant de pouvoir le publier !!"
 
 #: src/pyams_content/shared/common/zmi/workflow.py:80
-#: src/pyams_content/workflow/__init__.py:649
-#: src/pyams_content/workflow/__init__.py:620
-#: src/pyams_content/workflow/basic.py:316
-#: src/pyams_content/workflow/basic.py:287
+#: src/pyams_content/workflow/__init__.py:645
+#: src/pyams_content/workflow/__init__.py:616
+#: src/pyams_content/workflow/basic.py:313
+#: src/pyams_content/workflow/basic.py:284
 #, python-format
 msgid "{state} {date}"
 msgstr "{state} {date}"
@@ -6115,105 +6138,105 @@
 msgstr ""
 "Retrait automatique des contenus après la date de fin de publication :\n"
 
-#: src/pyams_content/workflow/__init__.py:70
-#: src/pyams_content/workflow/basic.py:53
+#: src/pyams_content/workflow/__init__.py:66
+#: src/pyams_content/workflow/basic.py:50
 msgid "Draft"
 msgstr "Brouillon"
 
-#: src/pyams_content/workflow/__init__.py:71
+#: src/pyams_content/workflow/__init__.py:67
 msgid "Proposed"
 msgstr "Publication demandée"
 
+#: src/pyams_content/workflow/__init__.py:68
+msgid "Canceled"
+msgstr "Annulé"
+
+#: src/pyams_content/workflow/__init__.py:69
+msgid "Refused"
+msgstr "Refusé"
+
+#: src/pyams_content/workflow/__init__.py:70
+#: src/pyams_content/workflow/basic.py:51
+msgid "Published"
+msgstr "Publié"
+
+#: src/pyams_content/workflow/__init__.py:71
+msgid "Retiring"
+msgstr "Retrait demandé"
+
 #: src/pyams_content/workflow/__init__.py:72
-msgid "Canceled"
-msgstr "Annulé"
+msgid "Retired"
+msgstr "Retiré"
 
 #: src/pyams_content/workflow/__init__.py:73
-msgid "Refused"
-msgstr "Refusé"
+msgid "Archiving"
+msgstr "Archivage demandé"
 
 #: src/pyams_content/workflow/__init__.py:74
-#: src/pyams_content/workflow/basic.py:54
-msgid "Published"
-msgstr "Publié"
+#: src/pyams_content/workflow/basic.py:52
+msgid "Archived"
+msgstr "Archivé"
 
 #: src/pyams_content/workflow/__init__.py:75
-msgid "Retiring"
-msgstr "Retrait demandé"
-
-#: src/pyams_content/workflow/__init__.py:76
-msgid "Retired"
-msgstr "Retiré"
-
-#: src/pyams_content/workflow/__init__.py:77
-msgid "Archiving"
-msgstr "Archivage demandé"
-
-#: src/pyams_content/workflow/__init__.py:78
-#: src/pyams_content/workflow/basic.py:55
-msgid "Archived"
-msgstr "Archivé"
-
-#: src/pyams_content/workflow/__init__.py:79
-#: src/pyams_content/workflow/basic.py:56
+#: src/pyams_content/workflow/basic.py:53
 msgid "Deleted"
 msgstr "Supprimé"
 
-#: src/pyams_content/workflow/__init__.py:84
-#: src/pyams_content/workflow/basic.py:61
+#: src/pyams_content/workflow/__init__.py:80
+#: src/pyams_content/workflow/basic.py:58
 msgid "draft created"
 msgstr "brouillon créé"
 
+#: src/pyams_content/workflow/__init__.py:81
+msgid "publication requested"
+msgstr "publication demandée"
+
+#: src/pyams_content/workflow/__init__.py:82
+#: src/pyams_content/workflow/basic.py:59
+msgid "published"
+msgstr "publié"
+
+#: src/pyams_content/workflow/__init__.py:83
+msgid "retiring requested"
+msgstr "retrait demandé"
+
+#: src/pyams_content/workflow/__init__.py:84
+msgid "retired"
+msgstr "retiré"
+
 #: src/pyams_content/workflow/__init__.py:85
-msgid "publication requested"
-msgstr "publication demandée"
+msgid "archiving requested"
+msgstr "archivage demandé"
 
 #: src/pyams_content/workflow/__init__.py:86
-#: src/pyams_content/workflow/basic.py:62
-msgid "published"
-msgstr "publié"
-
-#: src/pyams_content/workflow/__init__.py:87
-msgid "retiring requested"
-msgstr "retrait demandé"
-
-#: src/pyams_content/workflow/__init__.py:88
-msgid "retired"
-msgstr "retiré"
-
-#: src/pyams_content/workflow/__init__.py:89
-msgid "archiving requested"
-msgstr "archivage demandé"
-
-#: src/pyams_content/workflow/__init__.py:90
-#: src/pyams_content/workflow/basic.py:63
+#: src/pyams_content/workflow/basic.py:60
 msgid "archived"
 msgstr "archivé"
 
-#: src/pyams_content/workflow/__init__.py:280
-#: src/pyams_content/workflow/basic.py:191
+#: src/pyams_content/workflow/__init__.py:276
+#: src/pyams_content/workflow/basic.py:188
 msgid "Initialize"
 msgstr "Création"
 
-#: src/pyams_content/workflow/__init__.py:283
-#: src/pyams_content/workflow/basic.py:194
+#: src/pyams_content/workflow/__init__.py:279
+#: src/pyams_content/workflow/basic.py:191
 msgid "Draft creation"
 msgstr "Création du brouillon"
 
-#: src/pyams_content/workflow/__init__.py:286
-#: src/pyams_content/workflow/__init__.py:301
+#: src/pyams_content/workflow/__init__.py:282
+#: src/pyams_content/workflow/__init__.py:297
 msgid "Propose publication"
 msgstr "Demander la publication"
 
-#: src/pyams_content/workflow/__init__.py:293
-#: src/pyams_content/workflow/__init__.py:308
+#: src/pyams_content/workflow/__init__.py:289
+#: src/pyams_content/workflow/__init__.py:304
 msgid "Publication request"
 msgstr "Demande de publication"
 
-#: src/pyams_content/workflow/__init__.py:294
-#: src/pyams_content/workflow/__init__.py:309
-#: src/pyams_content/workflow/__init__.py:397
-#: src/pyams_content/workflow/__init__.py:444
+#: src/pyams_content/workflow/__init__.py:290
+#: src/pyams_content/workflow/__init__.py:305
+#: src/pyams_content/workflow/__init__.py:393
+#: src/pyams_content/workflow/__init__.py:440
 msgid ""
 "content managers authorized to take charge of your content are going to be "
 "notified of your request."
@@ -6221,211 +6244,211 @@
 "les responsables habilités à prendre en charge votre demande vont être "
 "sollicités."
 
-#: src/pyams_content/workflow/__init__.py:297
-#: src/pyams_content/workflow/__init__.py:312
+#: src/pyams_content/workflow/__init__.py:293
+#: src/pyams_content/workflow/__init__.py:308
 #, python-format
 msgid "submitted a publication request for content « {0} »"
 msgstr "a demandé la publication du contenu « {0} »"
 
-#: src/pyams_content/workflow/__init__.py:324
+#: src/pyams_content/workflow/__init__.py:320
 msgid "Publication request canceled"
 msgstr "Annulation de la demande de publication"
 
-#: src/pyams_content/workflow/__init__.py:326
+#: src/pyams_content/workflow/__init__.py:322
 #, python-format
 msgid "cancelled the publication request for content « {0} »"
 msgstr "a annulé la demande de publication du contenu « {0} »"
 
+#: src/pyams_content/workflow/__init__.py:326
+msgid "Reset canceled publication to draft"
+msgstr "Retour automatique en statut 'brouillon'"
+
 #: src/pyams_content/workflow/__init__.py:330
-msgid "Reset canceled publication to draft"
+#: src/pyams_content/workflow/__init__.py:360
+msgid "State reset to 'draft' (automatic)"
 msgstr "Retour automatique en statut 'brouillon'"
 
 #: src/pyams_content/workflow/__init__.py:334
-#: src/pyams_content/workflow/__init__.py:364
-msgid "State reset to 'draft' (automatic)"
-msgstr "Retour automatique en statut 'brouillon'"
+msgid "Reset canceled publication to retired"
+msgstr "Retour automatique en statut 'retiré'"
 
 #: src/pyams_content/workflow/__init__.py:338
-msgid "Reset canceled publication to retired"
+msgid "State reset to 'retired' (automatic)"
 msgstr "Retour automatique en statut 'retiré'"
 
 #: src/pyams_content/workflow/__init__.py:342
-msgid "State reset to 'retired' (automatic)"
-msgstr "Retour automatique en statut 'retiré'"
-
-#: src/pyams_content/workflow/__init__.py:346
 msgid "Refuse publication"
 msgstr "Refuser la publication"
 
-#: src/pyams_content/workflow/__init__.py:354
+#: src/pyams_content/workflow/__init__.py:350
 msgid "Publication refused"
 msgstr "Refus de publication"
 
-#: src/pyams_content/workflow/__init__.py:356
+#: src/pyams_content/workflow/__init__.py:352
 #, python-format
 msgid "refused the publication request for content « {0} »"
 msgstr "a refusé la publication du contenu « {0} »"
 
-#: src/pyams_content/workflow/__init__.py:360
+#: src/pyams_content/workflow/__init__.py:356
 msgid "Reset refused publication to draft"
 msgstr "Publication refusée"
 
+#: src/pyams_content/workflow/__init__.py:364
+msgid "Reset refused publication to retired"
+msgstr "Publication refusée"
+
 #: src/pyams_content/workflow/__init__.py:368
-msgid "Reset refused publication to retired"
-msgstr "Publication refusée"
-
-#: src/pyams_content/workflow/__init__.py:372
 msgid "State reset to 'refused' (automatic)"
 msgstr "Retour automatique en status 'refusé'"
 
-#: src/pyams_content/workflow/__init__.py:384
-#: src/pyams_content/workflow/basic.py:205
+#: src/pyams_content/workflow/__init__.py:380
+#: src/pyams_content/workflow/basic.py:202
 msgid "Content published"
 msgstr "Publication"
 
-#: src/pyams_content/workflow/__init__.py:386
-#: src/pyams_content/workflow/basic.py:207
+#: src/pyams_content/workflow/__init__.py:382
+#: src/pyams_content/workflow/basic.py:204
 #, python-format
 msgid "published the content « {0} »"
 msgstr "a publié le contenu « {0} »"
 
-#: src/pyams_content/workflow/__init__.py:390
+#: src/pyams_content/workflow/__init__.py:386
 msgid "Request retiring"
 msgstr "Demander le retrait"
 
+#: src/pyams_content/workflow/__init__.py:392
+msgid "Retire request"
+msgstr "Demande de retrait"
+
 #: src/pyams_content/workflow/__init__.py:396
-msgid "Retire request"
-msgstr "Demande de retrait"
-
-#: src/pyams_content/workflow/__init__.py:400
 #, python-format
 msgid "submitted a retire request for content « {0} »"
 msgstr "a demandé le retrait du contenu « {0} »"
 
-#: src/pyams_content/workflow/__init__.py:404
+#: src/pyams_content/workflow/__init__.py:400
 msgid "Retired content"
 msgstr "Contenu retiré"
 
-#: src/pyams_content/workflow/__init__.py:408
+#: src/pyams_content/workflow/__init__.py:404
 msgid "Content retired after passed expiration date"
 msgstr "Retrait automatique après la date de fin de publication"
 
-#: src/pyams_content/workflow/__init__.py:411
+#: src/pyams_content/workflow/__init__.py:407
 msgid "Cancel retiring request"
 msgstr "Annuler la demande de retrait"
 
-#: src/pyams_content/workflow/__init__.py:418
+#: src/pyams_content/workflow/__init__.py:414
 msgid "Retire request canceled"
 msgstr "Annulation de la demande de retrait"
 
-#: src/pyams_content/workflow/__init__.py:420
+#: src/pyams_content/workflow/__init__.py:416
 #, python-format
 msgid "cancelled the retiring request for content « {0} »"
 msgstr "a annulé la demande de retrait du contenu « {0} »"
 
-#: src/pyams_content/workflow/__init__.py:424
+#: src/pyams_content/workflow/__init__.py:420
 msgid "Retire content"
 msgstr "Retirer"
 
-#: src/pyams_content/workflow/__init__.py:431
+#: src/pyams_content/workflow/__init__.py:427
 msgid "Content retired"
 msgstr "Retrait"
 
-#: src/pyams_content/workflow/__init__.py:433
+#: src/pyams_content/workflow/__init__.py:429
 #, python-format
 msgid "retired content « {0} »"
 msgstr "a retiré le contenu « {0} »"
 
-#: src/pyams_content/workflow/__init__.py:443
+#: src/pyams_content/workflow/__init__.py:439
 msgid "Archive request"
 msgstr "Demande d'archivage"
 
-#: src/pyams_content/workflow/__init__.py:447
+#: src/pyams_content/workflow/__init__.py:443
 #, python-format
 msgid "submitted an archive request for content « {0} »"
 msgstr "a demandé l'archivage du contenu « {0} »"
 
-#: src/pyams_content/workflow/__init__.py:451
+#: src/pyams_content/workflow/__init__.py:447
 msgid "Cancel archiving request"
 msgstr "Annuler la demande d'archivage"
 
-#: src/pyams_content/workflow/__init__.py:458
+#: src/pyams_content/workflow/__init__.py:454
 msgid "Archive request canceled"
 msgstr "Annulation de la demande d'archivage"
 
-#: src/pyams_content/workflow/__init__.py:460
+#: src/pyams_content/workflow/__init__.py:456
 #, python-format
 msgid "cancelled the archive request for content « {0} »"
 msgstr "a annulé la demande d'archivage du contenu « {0} »"
 
-#: src/pyams_content/workflow/__init__.py:464
-#: src/pyams_content/workflow/basic.py:211
+#: src/pyams_content/workflow/__init__.py:460
+#: src/pyams_content/workflow/basic.py:208
 msgid "Archive content"
 msgstr "Archiver"
 
-#: src/pyams_content/workflow/__init__.py:472
-#: src/pyams_content/workflow/basic.py:219
+#: src/pyams_content/workflow/__init__.py:468
+#: src/pyams_content/workflow/basic.py:216
 msgid "Content archived"
 msgstr "Archivage"
 
-#: src/pyams_content/workflow/__init__.py:474
-#: src/pyams_content/workflow/basic.py:221
+#: src/pyams_content/workflow/__init__.py:470
+#: src/pyams_content/workflow/basic.py:218
 #, python-format
 msgid "archived content « {0} »"
 msgstr "a archivé le contenu « {0} »"
 
-#: src/pyams_content/workflow/__init__.py:478
+#: src/pyams_content/workflow/__init__.py:474
 msgid "Archive published content"
 msgstr "Archivage automatique d'un contenu publié"
 
+#: src/pyams_content/workflow/__init__.py:478
+#: src/pyams_content/workflow/__init__.py:486
+#: src/pyams_content/workflow/__init__.py:494
+msgid "Content archived after version publication"
+msgstr "Archivage automatique après publication"
+
 #: src/pyams_content/workflow/__init__.py:482
-#: src/pyams_content/workflow/__init__.py:490
-#: src/pyams_content/workflow/__init__.py:498
-msgid "Content archived after version publication"
-msgstr "Archivage automatique après publication"
-
-#: src/pyams_content/workflow/__init__.py:486
 msgid "Archive retiring content"
 msgstr "Archivage automatique d'un contenu en attente de retrait"
 
-#: src/pyams_content/workflow/__init__.py:494
+#: src/pyams_content/workflow/__init__.py:490
 msgid "Archive retired content"
 msgstr "Archivage automatique d'un contenu retiré"
 
-#: src/pyams_content/workflow/__init__.py:510
-#: src/pyams_content/workflow/__init__.py:522
-#: src/pyams_content/workflow/__init__.py:534
-#: src/pyams_content/workflow/__init__.py:546
-#: src/pyams_content/workflow/__init__.py:558
-#: src/pyams_content/workflow/basic.py:233
-#: src/pyams_content/workflow/basic.py:245
+#: src/pyams_content/workflow/__init__.py:506
+#: src/pyams_content/workflow/__init__.py:518
+#: src/pyams_content/workflow/__init__.py:530
+#: src/pyams_content/workflow/__init__.py:542
+#: src/pyams_content/workflow/__init__.py:554
+#: src/pyams_content/workflow/basic.py:230
+#: src/pyams_content/workflow/basic.py:242
 msgid "New version created"
 msgstr "Création d'une nouvelle version"
 
-#: src/pyams_content/workflow/__init__.py:570
-#: src/pyams_content/workflow/basic.py:257
+#: src/pyams_content/workflow/__init__.py:566
+#: src/pyams_content/workflow/basic.py:254
 msgid "Version deleted"
 msgstr "Version supprimée"
 
-#: src/pyams_content/workflow/__init__.py:623
-#: src/pyams_content/workflow/__init__.py:645
-#: src/pyams_content/workflow/basic.py:290
-#: src/pyams_content/workflow/basic.py:312
+#: src/pyams_content/workflow/__init__.py:619
+#: src/pyams_content/workflow/__init__.py:641
+#: src/pyams_content/workflow/basic.py:287
+#: src/pyams_content/workflow/basic.py:309
 msgid "Unknown state"
 msgstr "(statut inconnu)"
 
-#: src/pyams_content/workflow/__init__.py:647
-#: src/pyams_content/workflow/basic.py:314
+#: src/pyams_content/workflow/__init__.py:643
+#: src/pyams_content/workflow/basic.py:311
 msgid "publication refused"
 msgstr "publication refusée"
 
-#: src/pyams_content/workflow/__init__.py:643
-#: src/pyams_content/workflow/basic.py:310
+#: src/pyams_content/workflow/__init__.py:639
+#: src/pyams_content/workflow/basic.py:307
 msgid "new version created"
 msgstr "nouvelle version en préparation"
 
-#: src/pyams_content/workflow/__init__.py:249
-#: src/pyams_content/workflow/basic.py:160
+#: src/pyams_content/workflow/__init__.py:245
+#: src/pyams_content/workflow/basic.py:157
 #, python-format
 msgid "Published version {0}"
 msgstr "Version {0} publiée"
--- a/src/pyams_content/locales/pyams_content.pot	Fri Dec 14 18:29:23 2018 +0100
+++ b/src/pyams_content/locales/pyams_content.pot	Fri Dec 14 18:38:02 2018 +0100
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2018-12-14 08:57+0100\n"
+"POT-Creation-Date: 2018-12-14 14:39+0100\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"
@@ -16,68 +16,72 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Lingua 3.10.dev0\n"
 
-#: ./src/pyams_content/__init__.py:37
+#: ./src/pyams_content/__init__.py:38
 msgid "Manage site root"
 msgstr ""
 
-#: ./src/pyams_content/__init__.py:39
+#: ./src/pyams_content/__init__.py:40
 msgid "Manage site"
 msgstr ""
 
-#: ./src/pyams_content/__init__.py:41
+#: ./src/pyams_content/__init__.py:42
 msgid "Manage tool"
 msgstr ""
 
-#: ./src/pyams_content/__init__.py:43
+#: ./src/pyams_content/__init__.py:44
 msgid "Create content"
 msgstr ""
 
-#: ./src/pyams_content/__init__.py:45
+#: ./src/pyams_content/__init__.py:46
 msgid "Manage content"
 msgstr ""
 
-#: ./src/pyams_content/__init__.py:47
+#: ./src/pyams_content/__init__.py:48
+msgid "Create version"
+msgstr ""
+
+#: ./src/pyams_content/__init__.py:50
 msgid "Comment content"
 msgstr ""
 
-#: ./src/pyams_content/__init__.py:49
-#: ./src/pyams_content/workflow/__init__.py:376
+#: ./src/pyams_content/__init__.py:52
+#: ./src/pyams_content/workflow/__init__.py:372
 msgid "Publish content"
 msgstr ""
 
-#: ./src/pyams_content/__init__.py:53
+#: ./src/pyams_content/__init__.py:56
 msgid "System manager (role)"
 msgstr ""
 
-#: ./src/pyams_content/__init__.py:60
+#: ./src/pyams_content/__init__.py:63
 msgid "Webmaster (role)"
 msgstr ""
 
-#: ./src/pyams_content/__init__.py:71
+#: ./src/pyams_content/__init__.py:75
 msgid "Pilot (role)"
 msgstr ""
 
-#: ./src/pyams_content/__init__.py:81
+#: ./src/pyams_content/__init__.py:85
 msgid "Manager (role)"
 msgstr ""
 
-#: ./src/pyams_content/__init__.py:90
-msgid "Owner (role)"
-msgstr ""
-
 #: ./src/pyams_content/__init__.py:95
+msgid "Owner (role)"
+msgstr ""
+
+#: ./src/pyams_content/__init__.py:100
 msgid "Contributor (role)"
 msgstr ""
 
-#: ./src/pyams_content/__init__.py:106
+#: ./src/pyams_content/__init__.py:111
 msgid "Reader (role)"
 msgstr ""
 
-#: ./src/pyams_content/__init__.py:116
-msgid "Operator (role)"
-msgstr ""
-
 #: ./src/pyams_content/__init__.py:121
+msgid "Operator (role)"
+msgstr ""
+
+#: ./src/pyams_content/__init__.py:126
 msgid "Guest user (role)"
 msgstr ""
 
@@ -190,7 +194,7 @@
 #: ./src/pyams_content/features/menu/portlet/navigation/interfaces/double.py:31
 #: ./src/pyams_content/features/search/portlet/interfaces.py:24
 #: ./src/pyams_content/root/zmi/templates/advanced-search.pt:197
-#: ./src/pyams_content/shared/view/portlet/interfaces.py:56
+#: ./src/pyams_content/shared/view/portlet/interfaces.py:53
 #: ./src/pyams_content/shared/common/zmi/dashboard.py:104
 #: ./src/pyams_content/shared/common/zmi/reverse.py:73
 #: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:200
@@ -1631,7 +1635,7 @@
 
 #: ./src/pyams_content/component/paragraph/zmi/__init__.py:210
 #: ./src/pyams_content/component/paragraph/zmi/__init__.py:223
-#: ./src/pyams_content/features/preview/zmi/__init__.py:45
+#: ./src/pyams_content/features/preview/zmi/__init__.py:46
 #: ./src/pyams_content/shared/common/zmi/templates/preview-input.pt:39
 msgid "Preview"
 msgstr ""
@@ -2697,19 +2701,23 @@
 msgid "Edit renderer properties"
 msgstr ""
 
-#: ./src/pyams_content/features/preview/zmi/__init__.py:62
+#: ./src/pyams_content/features/preview/zmi/__init__.py:63
 msgid "Content preview"
 msgstr ""
 
-#: ./src/pyams_content/features/preview/zmi/__init__.py:67
-#, python-format
-msgid "{title} ({preview})"
-msgstr ""
-
 #: ./src/pyams_content/features/preview/zmi/__init__.py:68
+#, python-format
+msgid "{title} ({preview})"
+msgstr ""
+
+#: ./src/pyams_content/features/preview/zmi/__init__.py:69
 msgid "preview"
 msgstr ""
 
+#: ./src/pyams_content/features/preview/zmi/templates/preview-action.pt:12
+msgid "Open preview in new window"
+msgstr ""
+
 #: ./src/pyams_content/features/preview/zmi/templates/preview.pt:21
 msgid "Open in new window"
 msgstr ""
@@ -2821,7 +2829,7 @@
 msgid "Click to see menu items"
 msgstr ""
 
-#: ./src/pyams_content/features/search/__init__.py:44
+#: ./src/pyams_content/features/search/__init__.py:46
 msgid "Search folder"
 msgstr ""
 
@@ -2911,7 +2919,7 @@
 msgid "Searched data types; leave empty for all"
 msgstr ""
 
-#: ./src/pyams_content/features/search/portlet/__init__.py:84
+#: ./src/pyams_content/features/search/portlet/__init__.py:85
 msgid "Search results"
 msgstr ""
 
@@ -3737,19 +3745,19 @@
 msgid "Take items from views one by one, in random order"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/merge.py:127
+#: ./src/pyams_content/shared/view/merge.py:126
 msgid "Sort all results by creation date"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/merge.py:136
+#: ./src/pyams_content/shared/view/merge.py:135
 msgid "Sort all results by last update date"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/merge.py:145
+#: ./src/pyams_content/shared/view/merge.py:144
 msgid "Sort all results by current publication date"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/merge.py:154
+#: ./src/pyams_content/shared/view/merge.py:153
 msgid "Sort all results by first publication date"
 msgstr ""
 
@@ -3826,7 +3834,7 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/view/interfaces.py:119
-#: ./src/pyams_content/shared/view/portlet/interfaces.py:91
+#: ./src/pyams_content/shared/view/portlet/interfaces.py:88
 msgid "Results count limit"
 msgstr ""
 
@@ -3898,33 +3906,33 @@
 msgid "Other collections"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/portlet/__init__.py:86
+#: ./src/pyams_content/shared/view/portlet/__init__.py:96
 msgid "View items"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/portlet/interfaces.py:41
+#: ./src/pyams_content/shared/view/portlet/interfaces.py:36
 msgid "Display context"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/portlet/interfaces.py:42
+#: ./src/pyams_content/shared/view/portlet/interfaces.py:37
 msgid "Content context"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/portlet/interfaces.py:59
+#: ./src/pyams_content/shared/view/portlet/interfaces.py:56
 msgid "Selected views"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/portlet/interfaces.py:60
+#: ./src/pyams_content/shared/view/portlet/interfaces.py:57
 msgid ""
 "Reference to the view(s) from which items are extracted; you can combine "
 "several views together and specify in which order they should be mixed"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/portlet/interfaces.py:69
+#: ./src/pyams_content/shared/view/portlet/interfaces.py:66
 msgid "Views context"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/portlet/interfaces.py:70
+#: ./src/pyams_content/shared/view/portlet/interfaces.py:67
 msgid ""
 "When searching for items, a view receives a \"context\" which is the object "
 "from which settings can be extracted; this context can be the \"display\" "
@@ -3935,27 +3943,38 @@
 " site manager or site folder) into which content is displayed"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/portlet/interfaces.py:81
+#: ./src/pyams_content/shared/view/portlet/interfaces.py:78
 msgid "Views merge mode"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/portlet/interfaces.py:82
+#: ./src/pyams_content/shared/view/portlet/interfaces.py:79
 msgid ""
 "If you select several views, you can select \"merge\" mode, which is the way "
 "used to merge items from several views"
 msgstr ""
 
+#: ./src/pyams_content/shared/view/portlet/interfaces.py:89
+msgid ""
+"Maximum number of results that the component may extract from merged views"
+msgstr ""
+
 #: ./src/pyams_content/shared/view/portlet/interfaces.py:92
+msgid "Starting from..."
+msgstr ""
+
+#: ./src/pyams_content/shared/view/portlet/interfaces.py:93
+msgid "You can skip several results if specifying an integer value here..."
+msgstr ""
+
+#: ./src/pyams_content/shared/view/portlet/interfaces.py:100
+msgid "Exclude from search results"
+msgstr ""
+
+#: ./src/pyams_content/shared/view/portlet/interfaces.py:101
 msgid ""
-"Maximum number of results that the component may extract from merged views"
-msgstr ""
-
-#: ./src/pyams_content/shared/view/portlet/interfaces.py:95
-msgid "Starting from..."
-msgstr ""
-
-#: ./src/pyams_content/shared/view/portlet/interfaces.py:96
-msgid "You can skip several results if specifying an integer value here..."
+"If 'yes', and if this portlet is associated with a search engine in the same "
+"page template, items displayed by this portlet will be excluded from search "
+"results"
 msgstr ""
 
 #: ./src/pyams_content/shared/view/portlet/zmi/templates/view-items-list-preview.pt:8
@@ -4794,7 +4813,7 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/workflow.py:207
-#: ./src/pyams_content/workflow/__init__.py:316
+#: ./src/pyams_content/workflow/__init__.py:312
 msgid "Cancel publication request"
 msgstr ""
 
@@ -4803,7 +4822,7 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/workflow.py:301
-#: ./src/pyams_content/workflow/basic.py:197
+#: ./src/pyams_content/workflow/basic.py:194
 msgid "Publish"
 msgstr ""
 
@@ -4820,7 +4839,7 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/workflow.py:529
-#: ./src/pyams_content/workflow/__init__.py:437
+#: ./src/pyams_content/workflow/__init__.py:433
 msgid "Request archive"
 msgstr ""
 
@@ -4833,19 +4852,19 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/workflow.py:653
-#: ./src/pyams_content/workflow/__init__.py:502
-#: ./src/pyams_content/workflow/__init__.py:514
-#: ./src/pyams_content/workflow/__init__.py:526
-#: ./src/pyams_content/workflow/__init__.py:538
-#: ./src/pyams_content/workflow/__init__.py:550
-#: ./src/pyams_content/workflow/basic.py:225
-#: ./src/pyams_content/workflow/basic.py:237
+#: ./src/pyams_content/workflow/__init__.py:498
+#: ./src/pyams_content/workflow/__init__.py:510
+#: ./src/pyams_content/workflow/__init__.py:522
+#: ./src/pyams_content/workflow/__init__.py:534
+#: ./src/pyams_content/workflow/__init__.py:546
+#: ./src/pyams_content/workflow/basic.py:222
+#: ./src/pyams_content/workflow/basic.py:234
 msgid "Create new version"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/workflow.py:704
-#: ./src/pyams_content/workflow/__init__.py:562
-#: ./src/pyams_content/workflow/basic.py:249
+#: ./src/pyams_content/workflow/__init__.py:558
+#: ./src/pyams_content/workflow/basic.py:246
 msgid "Delete version"
 msgstr ""
 
@@ -4893,10 +4912,10 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/workflow.py:80
-#: ./src/pyams_content/workflow/__init__.py:649
-#: ./src/pyams_content/workflow/__init__.py:620
-#: ./src/pyams_content/workflow/basic.py:316
-#: ./src/pyams_content/workflow/basic.py:287
+#: ./src/pyams_content/workflow/__init__.py:645
+#: ./src/pyams_content/workflow/__init__.py:616
+#: ./src/pyams_content/workflow/basic.py:313
+#: ./src/pyams_content/workflow/basic.py:284
 #, python-format
 msgid "{state} {date}"
 msgstr ""
@@ -5627,315 +5646,315 @@
 msgid "Automatic contents withdrawal:\n"
 msgstr ""
 
+#: ./src/pyams_content/workflow/__init__.py:66
+#: ./src/pyams_content/workflow/basic.py:50
+msgid "Draft"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:67
+msgid "Proposed"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:68
+msgid "Canceled"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:69
+msgid "Refused"
+msgstr ""
+
 #: ./src/pyams_content/workflow/__init__.py:70
-#: ./src/pyams_content/workflow/basic.py:53
-msgid "Draft"
+#: ./src/pyams_content/workflow/basic.py:51
+msgid "Published"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:71
-msgid "Proposed"
+msgid "Retiring"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:72
-msgid "Canceled"
+msgid "Retired"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:73
-msgid "Refused"
+msgid "Archiving"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:74
-#: ./src/pyams_content/workflow/basic.py:54
-msgid "Published"
+#: ./src/pyams_content/workflow/basic.py:52
+msgid "Archived"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:75
-msgid "Retiring"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:76
-msgid "Retired"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:77
-msgid "Archiving"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:78
-#: ./src/pyams_content/workflow/basic.py:55
-msgid "Archived"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:79
-#: ./src/pyams_content/workflow/basic.py:56
+#: ./src/pyams_content/workflow/basic.py:53
 msgid "Deleted"
 msgstr ""
 
+#: ./src/pyams_content/workflow/__init__.py:80
+#: ./src/pyams_content/workflow/basic.py:58
+msgid "draft created"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:81
+msgid "publication requested"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:82
+#: ./src/pyams_content/workflow/basic.py:59
+msgid "published"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:83
+msgid "retiring requested"
+msgstr ""
+
 #: ./src/pyams_content/workflow/__init__.py:84
-#: ./src/pyams_content/workflow/basic.py:61
-msgid "draft created"
+msgid "retired"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:85
-msgid "publication requested"
+msgid "archiving requested"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:86
-#: ./src/pyams_content/workflow/basic.py:62
-msgid "published"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:87
-msgid "retiring requested"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:88
-msgid "retired"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:89
-msgid "archiving requested"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:90
-#: ./src/pyams_content/workflow/basic.py:63
+#: ./src/pyams_content/workflow/basic.py:60
 msgid "archived"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:280
-#: ./src/pyams_content/workflow/basic.py:191
+#: ./src/pyams_content/workflow/__init__.py:276
+#: ./src/pyams_content/workflow/basic.py:188
 msgid "Initialize"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:283
-#: ./src/pyams_content/workflow/basic.py:194
+#: ./src/pyams_content/workflow/__init__.py:279
+#: ./src/pyams_content/workflow/basic.py:191
 msgid "Draft creation"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:286
-#: ./src/pyams_content/workflow/__init__.py:301
+#: ./src/pyams_content/workflow/__init__.py:282
+#: ./src/pyams_content/workflow/__init__.py:297
 msgid "Propose publication"
 msgstr ""
 
+#: ./src/pyams_content/workflow/__init__.py:289
+#: ./src/pyams_content/workflow/__init__.py:304
+msgid "Publication request"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:290
+#: ./src/pyams_content/workflow/__init__.py:305
+#: ./src/pyams_content/workflow/__init__.py:393
+#: ./src/pyams_content/workflow/__init__.py:440
+msgid ""
+"content managers authorized to take charge of your content are going to be "
+"notified of your request."
+msgstr ""
+
 #: ./src/pyams_content/workflow/__init__.py:293
 #: ./src/pyams_content/workflow/__init__.py:308
-msgid "Publication request"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:294
-#: ./src/pyams_content/workflow/__init__.py:309
-#: ./src/pyams_content/workflow/__init__.py:397
-#: ./src/pyams_content/workflow/__init__.py:444
-msgid ""
-"content managers authorized to take charge of your content are going to be "
-"notified of your request."
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:297
-#: ./src/pyams_content/workflow/__init__.py:312
 #, python-format
 msgid "submitted a publication request for content « {0} »"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:324
+#: ./src/pyams_content/workflow/__init__.py:320
 msgid "Publication request canceled"
 msgstr ""
 
+#: ./src/pyams_content/workflow/__init__.py:322
+#, python-format
+msgid "cancelled the publication request for content « {0} »"
+msgstr ""
+
 #: ./src/pyams_content/workflow/__init__.py:326
-#, python-format
-msgid "cancelled the publication request for content « {0} »"
+msgid "Reset canceled publication to draft"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:330
-msgid "Reset canceled publication to draft"
+#: ./src/pyams_content/workflow/__init__.py:360
+msgid "State reset to 'draft' (automatic)"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:334
-#: ./src/pyams_content/workflow/__init__.py:364
-msgid "State reset to 'draft' (automatic)"
+msgid "Reset canceled publication to retired"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:338
-msgid "Reset canceled publication to retired"
+msgid "State reset to 'retired' (automatic)"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:342
-msgid "State reset to 'retired' (automatic)"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:346
 msgid "Refuse publication"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:354
+#: ./src/pyams_content/workflow/__init__.py:350
 msgid "Publication refused"
 msgstr ""
 
+#: ./src/pyams_content/workflow/__init__.py:352
+#, python-format
+msgid "refused the publication request for content « {0} »"
+msgstr ""
+
 #: ./src/pyams_content/workflow/__init__.py:356
-#, python-format
-msgid "refused the publication request for content « {0} »"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:360
 msgid "Reset refused publication to draft"
 msgstr ""
 
+#: ./src/pyams_content/workflow/__init__.py:364
+msgid "Reset refused publication to retired"
+msgstr ""
+
 #: ./src/pyams_content/workflow/__init__.py:368
-msgid "Reset refused publication to retired"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:372
 msgid "State reset to 'refused' (automatic)"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:384
-#: ./src/pyams_content/workflow/basic.py:205
+#: ./src/pyams_content/workflow/__init__.py:380
+#: ./src/pyams_content/workflow/basic.py:202
 msgid "Content published"
 msgstr ""
 
+#: ./src/pyams_content/workflow/__init__.py:382
+#: ./src/pyams_content/workflow/basic.py:204
+#, python-format
+msgid "published the content « {0} »"
+msgstr ""
+
 #: ./src/pyams_content/workflow/__init__.py:386
-#: ./src/pyams_content/workflow/basic.py:207
-#, python-format
-msgid "published the content « {0} »"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:390
 msgid "Request retiring"
 msgstr ""
 
+#: ./src/pyams_content/workflow/__init__.py:392
+msgid "Retire request"
+msgstr ""
+
 #: ./src/pyams_content/workflow/__init__.py:396
-msgid "Retire request"
+#, python-format
+msgid "submitted a retire request for content « {0} »"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:400
-#, python-format
-msgid "submitted a retire request for content « {0} »"
+msgid "Retired content"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:404
-msgid "Retired content"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:408
 msgid "Content retired after passed expiration date"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:411
+#: ./src/pyams_content/workflow/__init__.py:407
 msgid "Cancel retiring request"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:418
+#: ./src/pyams_content/workflow/__init__.py:414
 msgid "Retire request canceled"
 msgstr ""
 
+#: ./src/pyams_content/workflow/__init__.py:416
+#, python-format
+msgid "cancelled the retiring request for content « {0} »"
+msgstr ""
+
 #: ./src/pyams_content/workflow/__init__.py:420
-#, python-format
-msgid "cancelled the retiring request for content « {0} »"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:424
 msgid "Retire content"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:431
+#: ./src/pyams_content/workflow/__init__.py:427
 msgid "Content retired"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:433
+#: ./src/pyams_content/workflow/__init__.py:429
 #, python-format
 msgid "retired content « {0} »"
 msgstr ""
 
+#: ./src/pyams_content/workflow/__init__.py:439
+msgid "Archive request"
+msgstr ""
+
 #: ./src/pyams_content/workflow/__init__.py:443
-msgid "Archive request"
+#, python-format
+msgid "submitted an archive request for content « {0} »"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:447
+msgid "Cancel archiving request"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:454
+msgid "Archive request canceled"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:456
 #, python-format
-msgid "submitted an archive request for content « {0} »"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:451
-msgid "Cancel archiving request"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:458
-msgid "Archive request canceled"
+msgid "cancelled the archive request for content « {0} »"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:460
+#: ./src/pyams_content/workflow/basic.py:208
+msgid "Archive content"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:468
+#: ./src/pyams_content/workflow/basic.py:216
+msgid "Content archived"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:470
+#: ./src/pyams_content/workflow/basic.py:218
 #, python-format
-msgid "cancelled the archive request for content « {0} »"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:464
-#: ./src/pyams_content/workflow/basic.py:211
-msgid "Archive content"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:472
-#: ./src/pyams_content/workflow/basic.py:219
-msgid "Content archived"
+msgid "archived content « {0} »"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:474
-#: ./src/pyams_content/workflow/basic.py:221
-#, python-format
-msgid "archived content « {0} »"
+msgid "Archive published content"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:478
-msgid "Archive published content"
+#: ./src/pyams_content/workflow/__init__.py:486
+#: ./src/pyams_content/workflow/__init__.py:494
+msgid "Content archived after version publication"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:482
+msgid "Archive retiring content"
+msgstr ""
+
 #: ./src/pyams_content/workflow/__init__.py:490
-#: ./src/pyams_content/workflow/__init__.py:498
-msgid "Content archived after version publication"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:486
-msgid "Archive retiring content"
-msgstr ""
-
-#: ./src/pyams_content/workflow/__init__.py:494
 msgid "Archive retired content"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:510
-#: ./src/pyams_content/workflow/__init__.py:522
-#: ./src/pyams_content/workflow/__init__.py:534
-#: ./src/pyams_content/workflow/__init__.py:546
-#: ./src/pyams_content/workflow/__init__.py:558
-#: ./src/pyams_content/workflow/basic.py:233
-#: ./src/pyams_content/workflow/basic.py:245
+#: ./src/pyams_content/workflow/__init__.py:506
+#: ./src/pyams_content/workflow/__init__.py:518
+#: ./src/pyams_content/workflow/__init__.py:530
+#: ./src/pyams_content/workflow/__init__.py:542
+#: ./src/pyams_content/workflow/__init__.py:554
+#: ./src/pyams_content/workflow/basic.py:230
+#: ./src/pyams_content/workflow/basic.py:242
 msgid "New version created"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:570
-#: ./src/pyams_content/workflow/basic.py:257
+#: ./src/pyams_content/workflow/__init__.py:566
+#: ./src/pyams_content/workflow/basic.py:254
 msgid "Version deleted"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:623
-#: ./src/pyams_content/workflow/__init__.py:645
-#: ./src/pyams_content/workflow/basic.py:290
-#: ./src/pyams_content/workflow/basic.py:312
+#: ./src/pyams_content/workflow/__init__.py:619
+#: ./src/pyams_content/workflow/__init__.py:641
+#: ./src/pyams_content/workflow/basic.py:287
+#: ./src/pyams_content/workflow/basic.py:309
 msgid "Unknown state"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:647
-#: ./src/pyams_content/workflow/basic.py:314
-msgid "publication refused"
-msgstr ""
-
 #: ./src/pyams_content/workflow/__init__.py:643
-#: ./src/pyams_content/workflow/basic.py:310
+#: ./src/pyams_content/workflow/basic.py:311
+msgid "publication refused"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:639
+#: ./src/pyams_content/workflow/basic.py:307
 msgid "new version created"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:249
-#: ./src/pyams_content/workflow/basic.py:160
+#: ./src/pyams_content/workflow/__init__.py:245
+#: ./src/pyams_content/workflow/basic.py:157
 #, python-format
 msgid "Published version {0}"
 msgstr ""