Version 0.1.2 0.1.2
authorThierry Florac <thierry.florac@onf.fr>
Mon, 18 Jan 2016 17:45:47 +0100
changeset 19 25e455568b00
parent 18 4c1e7b57e124
child 20 b2284a8b9014
Version 0.1.2
buildout.cfg
docs/HISTORY.txt
setup.py
src/pyams_content.egg-info/PKG-INFO
src/pyams_content.egg-info/SOURCES.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
src/pyams_content/skin/resources/js/pyams_content.js
src/pyams_content/skin/resources/js/pyams_content.min.js
--- a/buildout.cfg	Mon Jan 18 17:44:37 2016 +0100
+++ b/buildout.cfg	Mon Jan 18 17:45:47 2016 +0100
@@ -87,4 +87,4 @@
 eggs = pyams_content [test]
 
 [versions]
-pyams_content = 0.1.1
+pyams_content = 0.1.2
--- a/docs/HISTORY.txt	Mon Jan 18 17:44:37 2016 +0100
+++ b/docs/HISTORY.txt	Mon Jan 18 17:45:47 2016 +0100
@@ -1,6 +1,15 @@
 History
 =======
 
+0.1.2
+-----
+ - added favorites contents in user's profile with dedicated dashboard
+ - added publication fields in shared content base class
+ - updated management interface
+ - updated administration profile
+ - updated workflow states labels
+ - changed inner forms base class
+
 0.1.1
 -----
  - updated shared content header
--- a/setup.py	Mon Jan 18 17:44:37 2016 +0100
+++ b/setup.py	Mon Jan 18 17:45:47 2016 +0100
@@ -22,7 +22,7 @@
 README = os.path.join(DOCS, 'README.txt')
 HISTORY = os.path.join(DOCS, 'HISTORY.txt')
 
-version = '0.1.1'
+version = '0.1.2'
 long_description = open(README).read() + '\n\n' + open(HISTORY).read()
 
 tests_require = []
--- a/src/pyams_content.egg-info/PKG-INFO	Mon Jan 18 17:44:37 2016 +0100
+++ b/src/pyams_content.egg-info/PKG-INFO	Mon Jan 18 17:45:47 2016 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: pyams-content
-Version: 0.1.1
+Version: 0.1.2
 Summary: PyAMS base content interfaces and classes
 Home-page: http://hg.ztfy.org/pyams/pyams_content
 Author: Thierry Florac
@@ -11,6 +11,14 @@
         History
         =======
         
+        0.1.2
+        -----
+         - added favorites contents in user's profile with dedicated dashboard
+         - added publication fields in shared content base class
+         - updated administration profile
+         - updated workflow states labels
+         - changed inner forms base class
+        
         0.1.1
         -----
          - updated shared content header
--- a/src/pyams_content.egg-info/SOURCES.txt	Mon Jan 18 17:44:37 2016 +0100
+++ b/src/pyams_content.egg-info/SOURCES.txt	Mon Jan 18 17:45:47 2016 +0100
@@ -56,6 +56,7 @@
 src/pyams_content/component/paragraph/zmi/container.py
 src/pyams_content/component/paragraph/zmi/html.py
 src/pyams_content/component/paragraph/zmi/illustration.py
+src/pyams_content/component/paragraph/zmi/interfaces.py
 src/pyams_content/component/paragraph/zmi/summary.py
 src/pyams_content/component/paragraph/zmi/templates/container.pt
 src/pyams_content/component/paragraph/zmi/templates/html-summary.pt
@@ -64,9 +65,11 @@
 src/pyams_content/component/paragraph/zmi/templates/illustration.pt
 src/pyams_content/component/paragraph/zmi/templates/summary.pt
 src/pyams_content/component/theme/__init__.py
+src/pyams_content/component/theme/portlet.py
 src/pyams_content/component/theme/interfaces/__init__.py
 src/pyams_content/component/theme/zmi/__init__.py
 src/pyams_content/component/theme/zmi/manager.py
+src/pyams_content/component/theme/zmi/portlet.py
 src/pyams_content/component/theme/zmi/templates/themes-info.pt
 src/pyams_content/doctests/README.txt
 src/pyams_content/generations/__init__.py
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	Mon Jan 18 17:44:37 2016 +0100
+++ b/src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po	Mon Jan 18 17:45:47 2016 +0100
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2015-10-07 15:42+0200\n"
+"POT-Creation-Date: 2016-01-18 14:12+0100\n"
 "PO-Revision-Date: 2015-09-10 10:42+0200\n"
 "Last-Translator: Thierry Florac <tflorac@ulthar.net>\n"
 "Language-Team: French\n"
@@ -40,7 +40,7 @@
 msgid "Comment content"
 msgstr "Commenter un contenu"
 
-#: src/pyams_content/__init__.py:45 src/pyams_content/workflow/__init__.py:305
+#: src/pyams_content/__init__.py:45 src/pyams_content/workflow/__init__.py:308
 msgid "Publish content"
 msgstr "Publier le contenu"
 
@@ -83,7 +83,7 @@
 
 #: src/pyams_content/component/gallery/zmi/__init__.py:66
 msgid "Add new images gallery"
-msgstr "Ajout d'une galerie d'images"
+msgstr "Ajouter une galerie d'images"
 
 #: src/pyams_content/component/gallery/zmi/__init__.py:159
 msgid "Update gallery properties"
@@ -97,29 +97,30 @@
 msgid "Galleries list"
 msgstr "Liste des galeries d'images"
 
-#: src/pyams_content/component/gallery/zmi/container.py:121
+#: src/pyams_content/component/gallery/zmi/container.py:122
+msgid "Display gallery contents"
+msgstr "Contenu de la galerie"
+
+#: src/pyams_content/component/gallery/zmi/container.py:135
 #: src/pyams_content/component/gallery/interfaces/__init__.py:46
 #: src/pyams_content/component/gallery/interfaces/__init__.py:86
 #: src/pyams_content/component/extfile/zmi/container.py:167
 #: src/pyams_content/component/extfile/interfaces/__init__.py:41
-#: src/pyams_content/component/paragraph/zmi/container.py:200
-#: src/pyams_content/component/paragraph/interfaces/__init__.py:41
+#: src/pyams_content/component/paragraph/zmi/container.py:272
+#: src/pyams_content/component/paragraph/interfaces/__init__.py:46
 #: src/pyams_content/component/links/zmi/container.py:144
 #: src/pyams_content/component/links/interfaces/__init__.py:42
+#: src/pyams_content/shared/common/zmi/dashboard.py:104
 #: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:187
 #: src/pyams_content/interfaces/__init__.py:54
 msgid "Title"
 msgstr "Titre"
 
-#: src/pyams_content/component/gallery/zmi/container.py:133
+#: src/pyams_content/component/gallery/zmi/container.py:147
 #: src/pyams_content/component/extfile/zmi/container.py:112
 msgid "Images"
 msgstr "Images"
 
-#: src/pyams_content/component/gallery/zmi/container.py:146
-msgid "Display gallery contents"
-msgstr "Contenu de la galerie"
-
 #: src/pyams_content/component/gallery/zmi/container.py:186
 msgid "Edit galleries links"
 msgstr "Galeries d'images associées"
@@ -191,7 +192,7 @@
 #: src/pyams_content/component/gallery/interfaces/__init__.py:90
 #: src/pyams_content/component/extfile/interfaces/__init__.py:45
 #: src/pyams_content/component/links/interfaces/__init__.py:46
-#: src/pyams_content/shared/common/interfaces/__init__.py:103
+#: src/pyams_content/shared/common/interfaces/__init__.py:116
 msgid "Description"
 msgstr "Description"
 
@@ -319,7 +320,7 @@
 
 #: src/pyams_content/component/extfile/zmi/container.py:111
 #: src/pyams_content/component/extfile/interfaces/__init__.py:101
-#: src/pyams_content/component/paragraph/zmi/container.py:144
+#: src/pyams_content/component/paragraph/zmi/container.py:189
 msgid "External files"
 msgstr "Fichiers joints"
 
@@ -357,7 +358,7 @@
 "Cliquez sur le bouton 'Parcourir...' pour sélectionner un nouveau contenu..."
 
 #: src/pyams_content/component/extfile/interfaces/__init__.py:69
-#: src/pyams_content/component/paragraph/interfaces/__init__.py:86
+#: src/pyams_content/component/paragraph/interfaces/__init__.py:91
 msgid "Image data"
 msgstr "Contenu de l'image"
 
@@ -374,87 +375,119 @@
 msgid "Paragraphs"
 msgstr "Paragraphes"
 
-#: src/pyams_content/component/paragraph/zmi/container.py:58
+#: src/pyams_content/component/paragraph/zmi/container.py:61
 msgid "Paragraphs..."
 msgstr "Paragraphes..."
 
-#: src/pyams_content/component/paragraph/zmi/container.py:73
+#: src/pyams_content/component/paragraph/zmi/container.py:77
 msgid "Paragraphs list"
 msgstr "Liste des paragraphes"
 
-#: src/pyams_content/component/paragraph/zmi/container.py:130
-msgid "Paragraph properties"
-msgstr "Propriétés"
+#: src/pyams_content/component/paragraph/zmi/container.py:139
+msgid "Click and drag to sort paragraphs..."
+msgstr "Utilisez le glisser/déposer pour ordonner les paragraphes..."
 
-#: src/pyams_content/component/paragraph/zmi/container.py:163
+#: src/pyams_content/component/paragraph/zmi/container.py:157
+msgid "Switch paragraph visibility"
+msgstr "Cliquez pour modifier la visibilité du paragraphe..."
+
+#: src/pyams_content/component/paragraph/zmi/container.py:217
 msgid "Useful links"
 msgstr "Liens utiles"
 
-#: src/pyams_content/component/paragraph/zmi/container.py:182
+#: src/pyams_content/component/paragraph/zmi/container.py:245
 msgid "Images galleries"
 msgstr "Galeries d'images"
 
-#: src/pyams_content/component/paragraph/zmi/container.py:120
+#: src/pyams_content/component/paragraph/zmi/container.py:126
 msgid "No currently defined paragraph."
 msgstr "Aucun paragraphe associé à ce contenu."
 
-#: src/pyams_content/component/paragraph/zmi/illustration.py:54
+#: src/pyams_content/component/paragraph/zmi/container.py:282
+msgid "Click to open/close all paragraphs editors"
+msgstr "Afficher/masquer tous les paragraphes"
+
+#: src/pyams_content/component/paragraph/zmi/container.py:291
+msgid "Click to open/close paragraph editor"
+msgstr "Afficher/masquer ce paragraphe"
+
+#: src/pyams_content/component/paragraph/zmi/illustration.py:59
 msgid "Add illustration..."
 msgstr "Illustration..."
 
-#: src/pyams_content/component/paragraph/zmi/illustration.py:65
+#: src/pyams_content/component/paragraph/zmi/illustration.py:70
 msgid "Add new illustration"
-msgstr "Ajout d'une illustration"
+msgstr "Ajouter une illustration"
 
-#: src/pyams_content/component/paragraph/zmi/illustration.py:100
+#: src/pyams_content/component/paragraph/zmi/illustration.py:105
 msgid "Edit illustration properties"
 msgstr "Modifier les propriétés d'une illustration"
 
-#: src/pyams_content/component/paragraph/zmi/illustration.py:173
+#: src/pyams_content/component/paragraph/zmi/illustration.py:120
+msgid "Illustration properties"
+msgstr "Propriétés d'une illustration"
+
+#: src/pyams_content/component/paragraph/zmi/illustration.py:188
 msgid "Centered illustration"
 msgstr "Illustration centrée"
 
-#: src/pyams_content/component/paragraph/zmi/illustration.py:181
+#: src/pyams_content/component/paragraph/zmi/illustration.py:197
 msgid "Small illustration on the left with zoom"
 msgstr "Petite illustration sur la gauche avec zoom"
 
-#: src/pyams_content/component/paragraph/zmi/illustration.py:189
+#: src/pyams_content/component/paragraph/zmi/illustration.py:206
 msgid "Small illustration on the right with zoom"
 msgstr "Petite illustration sur la droite avec zoom"
 
-#: src/pyams_content/component/paragraph/zmi/html.py:54
+#: src/pyams_content/component/paragraph/zmi/html.py:59
 msgid "Add HTML paragraph..."
 msgstr "Paragraphe HTML..."
 
-#: src/pyams_content/component/paragraph/zmi/html.py:65
+#: src/pyams_content/component/paragraph/zmi/html.py:70
 msgid "Add new HTML paragraph"
-msgstr "Ajout d'un paragraphe HTML"
+msgstr "Ajouter un paragraphe HTML"
 
-#: src/pyams_content/component/paragraph/zmi/html.py:106
+#: src/pyams_content/component/paragraph/zmi/html.py:111
 msgid "Edit paragraph properties"
 msgstr "Modifier les propriétés d'un paragraphe"
 
+#: src/pyams_content/component/paragraph/zmi/html.py:135
+msgid "HTML paragraph properties"
+msgstr "Propriétés d'un paragraphe HTML"
+
 #: src/pyams_content/component/paragraph/zmi/templates/summary.pt:7
 #: src/pyams_content/component/paragraph/zmi/templates/summary.pt:30
 msgid "This content doesn't contain any paragraph."
 msgstr "Aucun paragraphe n'est associé à ce contenu."
 
+#: src/pyams_content/component/paragraph/interfaces/__init__.py:41
+msgid "Visible?"
+msgstr "Visible ?"
+
 #: src/pyams_content/component/paragraph/interfaces/__init__.py:42
+msgid "Is this paragraph visible in front-office?"
+msgstr "Si 'non', ce paragraphe ne sera pas affiché en front-office"
+
+#: src/pyams_content/component/paragraph/interfaces/__init__.py:47
 msgid "Paragraph title"
 msgstr "Titre du paragraphe"
 
-#: src/pyams_content/component/paragraph/interfaces/__init__.py:69
+#: src/pyams_content/component/paragraph/interfaces/__init__.py:74
 msgid "Body"
 msgstr "Contenu HTML"
 
-#: src/pyams_content/component/paragraph/interfaces/__init__.py:89
+#: src/pyams_content/component/paragraph/interfaces/__init__.py:94
 msgid "Legend"
 msgstr "Légende"
 
-#: src/pyams_content/component/paragraph/interfaces/__init__.py:92
+#: src/pyams_content/component/paragraph/interfaces/__init__.py:97
 msgid "Image style"
 msgstr "Style de l'image"
 
+#: src/pyams_content/component/theme/zmi/portlet.py:39
+msgid "Themes"
+msgstr "Thèmes"
+
 #: src/pyams_content/component/theme/zmi/__init__.py:52
 #: src/pyams_content/component/theme/zmi/manager.py:45
 msgid "Themes..."
@@ -478,7 +511,7 @@
 
 #: src/pyams_content/component/links/zmi/__init__.py:64
 msgid "Add new internal link"
-msgstr "Ajout d'un lien interne"
+msgstr "Ajouter un lien interne"
 
 #: src/pyams_content/component/links/zmi/__init__.py:122
 #: src/pyams_content/component/links/zmi/__init__.py:227
@@ -491,7 +524,7 @@
 
 #: src/pyams_content/component/links/zmi/__init__.py:169
 msgid "Add new External link"
-msgstr "Ajuout d'un lien externe"
+msgstr "Ajouter un lien externe"
 
 #: src/pyams_content/component/links/zmi/container.py:63
 msgid "Useful links..."
@@ -574,6 +607,11 @@
 msgid "List of internal or external links linked to this object"
 msgstr "Liste des liens internes ou externes associés à cet objet"
 
+#: src/pyams_content/shared/common/__init__.py:100
+#, python-format
+msgid "{date} by {principal}"
+msgstr "{date} par {principal}"
+
 #: src/pyams_content/shared/common/zmi/search.py:73
 msgid "Quick search results"
 msgstr "Résultats de la recherche rapide"
@@ -587,12 +625,12 @@
 msgstr "Résultats de la recherche avancée"
 
 #: src/pyams_content/shared/common/zmi/search.py:118
-#: src/pyams_content/shared/common/zmi/dashboard.py:191
+#: src/pyams_content/shared/common/zmi/dashboard.py:185
 msgid "Owner"
 msgstr "Propriétaire"
 
 #: src/pyams_content/shared/common/zmi/search.py:121
-#: src/pyams_content/shared/common/zmi/dashboard.py:153
+#: src/pyams_content/shared/common/zmi/dashboard.py:144
 msgid "Status"
 msgstr "Statut"
 
@@ -612,165 +650,189 @@
 msgid "Modified before..."
 msgstr "et le"
 
-#: src/pyams_content/shared/common/zmi/properties.py:54
+#: src/pyams_content/shared/common/zmi/properties.py:55
 msgid "Composition"
 msgstr "Composition"
 
-#: src/pyams_content/shared/common/zmi/properties.py:64
-#: src/pyams_content/shared/common/zmi/manager.py:78
+#: src/pyams_content/shared/common/zmi/properties.py:65
+#: src/pyams_content/shared/common/zmi/properties.py:112
+#: src/pyams_content/shared/common/zmi/manager.py:90
 msgid "Properties"
 msgstr "Propriétés"
 
-#: src/pyams_content/shared/common/zmi/properties.py:75
+#: src/pyams_content/shared/common/zmi/properties.py:76
+#: src/pyams_content/shared/common/zmi/properties.py:134
 msgid "Content properties"
-msgstr "Propriétés du contenu"
+msgstr "Propriétés élémentaires"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:66
+#: src/pyams_content/shared/common/zmi/workflow.py:68
 msgid "Workflow"
 msgstr "Workflow"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:164
-#: src/pyams_content/shared/common/zmi/workflow.py:235
-#: src/pyams_content/shared/common/zmi/workflow.py:280
-#: src/pyams_content/shared/common/zmi/workflow.py:338
-#: src/pyams_content/shared/common/zmi/workflow.py:411
-#: src/pyams_content/shared/common/zmi/workflow.py:471
-#: src/pyams_content/shared/common/zmi/workflow.py:516
-#: src/pyams_content/shared/common/zmi/workflow.py:562
-#: src/pyams_content/shared/common/zmi/workflow.py:622
-#: src/pyams_content/shared/common/zmi/workflow.py:667
-#: src/pyams_content/shared/common/zmi/workflow.py:713
-#: src/pyams_content/shared/common/zmi/workflow.py:765
-#: src/pyams_content/shared/common/zmi/__init__.py:225
+#: src/pyams_content/shared/common/zmi/workflow.py:79
+msgid "Workflow details"
+msgstr "Détails du workflow"
+
+#: src/pyams_content/shared/common/zmi/workflow.py:171
+#: src/pyams_content/shared/common/zmi/workflow.py:243
+#: src/pyams_content/shared/common/zmi/workflow.py:288
+#: src/pyams_content/shared/common/zmi/workflow.py:346
+#: src/pyams_content/shared/common/zmi/workflow.py:420
+#: src/pyams_content/shared/common/zmi/workflow.py:480
+#: src/pyams_content/shared/common/zmi/workflow.py:525
+#: src/pyams_content/shared/common/zmi/workflow.py:571
+#: src/pyams_content/shared/common/zmi/workflow.py:631
+#: src/pyams_content/shared/common/zmi/workflow.py:676
+#: src/pyams_content/shared/common/zmi/workflow.py:722
+#: src/pyams_content/shared/common/zmi/workflow.py:775
+#: src/pyams_content/shared/common/zmi/__init__.py:240
 #: src/pyams_content/shared/common/zmi/owner.py:74
 msgid "Cancel"
 msgstr "Annuler"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:165
+#: src/pyams_content/shared/common/zmi/workflow.py:172
 msgid "Request publication"
 msgstr "Demander la publication"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:236
-#: src/pyams_content/workflow/__init__.py:251
+#: src/pyams_content/shared/common/zmi/workflow.py:244
+#: src/pyams_content/workflow/__init__.py:254
 msgid "Cancel publication request"
 msgstr "Annuler la demande de publication"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:281
+#: src/pyams_content/shared/common/zmi/workflow.py:289
 msgid "Refuse publication request"
 msgstr "Refuser la demande de publication"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:339
+#: src/pyams_content/shared/common/zmi/workflow.py:347
 msgid "Publish"
 msgstr "Publier"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:412
+#: src/pyams_content/shared/common/zmi/workflow.py:421
 msgid "Request retire"
 msgstr "Demander le retrait"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:472
+#: src/pyams_content/shared/common/zmi/workflow.py:481
 msgid "Cancel retire request"
 msgstr "Annuler la demande de retrait"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:517
+#: src/pyams_content/shared/common/zmi/workflow.py:526
 msgid "Retire"
 msgstr "Retirer"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:563
-#: src/pyams_content/workflow/__init__.py:351
+#: src/pyams_content/shared/common/zmi/workflow.py:572
+#: src/pyams_content/workflow/__init__.py:354
 msgid "Request archive"
 msgstr "Demander l'archivage"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:623
+#: src/pyams_content/shared/common/zmi/workflow.py:632
 msgid "Cancel archive request"
 msgstr "Annuler la demande d'archivage"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:668
+#: src/pyams_content/shared/common/zmi/workflow.py:677
 msgid "Archive"
 msgstr "Archiver"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:714
-#: src/pyams_content/workflow/__init__.py:410
-#: src/pyams_content/workflow/__init__.py:422
-#: src/pyams_content/workflow/__init__.py:434
-#: src/pyams_content/workflow/__init__.py:446
-#: src/pyams_content/workflow/__init__.py:458
+#: src/pyams_content/shared/common/zmi/workflow.py:723
+#: src/pyams_content/workflow/__init__.py:413
+#: src/pyams_content/workflow/__init__.py:425
+#: src/pyams_content/workflow/__init__.py:437
+#: src/pyams_content/workflow/__init__.py:449
+#: src/pyams_content/workflow/__init__.py:461
 msgid "Create new version"
 msgstr "Créer une nouvelle version"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:766
-#: src/pyams_content/workflow/__init__.py:470
+#: src/pyams_content/shared/common/zmi/workflow.py:776
+#: src/pyams_content/workflow/__init__.py:473
 msgid "Delete version"
 msgstr "Supprimer cette version"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:203
-#: src/pyams_content/shared/common/zmi/workflow.py:381
+#: src/pyams_content/shared/common/zmi/workflow.py:211
+#: src/pyams_content/shared/common/zmi/workflow.py:390
 msgid "Publication start date is required"
 msgstr "La date de début de publication est obligatoire"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:206
-#: src/pyams_content/shared/common/zmi/workflow.py:308
-#: src/pyams_content/shared/common/zmi/workflow.py:442
-#: src/pyams_content/shared/common/zmi/workflow.py:593
+#: src/pyams_content/shared/common/zmi/workflow.py:214
+#: src/pyams_content/shared/common/zmi/workflow.py:316
+#: src/pyams_content/shared/common/zmi/workflow.py:451
+#: src/pyams_content/shared/common/zmi/workflow.py:602
 msgid "A comment is required"
 msgstr "Le commentaire est obligatoire"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:130
+#: src/pyams_content/shared/common/zmi/workflow.py:792
+msgid "Delete definitively"
+msgstr "Supprimer définitivement"
+
+#: src/pyams_content/shared/common/zmi/workflow.py:136
+#, python-format
+msgid "{state} | by {principal}"
+msgstr "{state} | par {principal}"
+
+#: src/pyams_content/shared/common/zmi/workflow.py:132
+#: src/pyams_content/workflow/__init__.py:528
+#: src/pyams_content/workflow/__init__.py:551
 #, python-format
 msgid "{state} {date}"
 msgstr "{state} {date}"
 
-#: src/pyams_content/shared/common/zmi/workflow.py:127
-#, python-format
-msgid "{state} by {principal}"
-msgstr "{state} par {principal}"
-
-#: src/pyams_content/shared/common/zmi/__init__.py:174
-msgid "Manage this content"
-msgstr "Gérer ce contenu"
-
-#: src/pyams_content/shared/common/zmi/__init__.py:215
+#: src/pyams_content/shared/common/zmi/__init__.py:230
 msgid "Duplicate content..."
 msgstr "Dupliquer le contenu..."
 
-#: src/pyams_content/shared/common/zmi/__init__.py:234
-#: src/pyams_content/shared/common/zmi/__init__.py:226
+#: src/pyams_content/shared/common/zmi/__init__.py:249
 msgid "Duplicate content"
-msgstr "Duplication d'un contenu"
+msgstr "Dupliquer ce contenu"
+
+#: src/pyams_content/shared/common/zmi/__init__.py:78
+msgid "This title can be modified afterwards"
+msgstr "Le titre pourra être modifié ultérieurement"
 
-#: src/pyams_content/shared/common/zmi/__init__.py:273
+#: src/pyams_content/shared/common/zmi/__init__.py:241
+msgid "Duplicate this content"
+msgstr "Dupliquer ce contenu"
+
+#: src/pyams_content/shared/common/zmi/__init__.py:290
 #, python-format
 msgid "Duplicate content ({oid})"
 msgstr "Contenu dupliqué ({oid})"
 
-#: src/pyams_content/shared/common/zmi/__init__.py:318
+#: src/pyams_content/shared/common/zmi/__init__.py:336
 msgid "Created or modified in this version"
 msgstr "Créé ou modifié dans cette version"
 
-#: src/pyams_content/shared/common/zmi/summary.py:57
-msgid "Summary"
-msgstr "Récapitulatif"
+#: src/pyams_content/shared/common/zmi/summary.py:51
+msgid "Display content summary"
+msgstr "Récapitulatif pour ce contenu"
 
-#: src/pyams_content/shared/common/zmi/summary.py:67
-msgid "Display content summary"
-msgstr "Récapitulatif des propriétés du contenu"
-
-#: src/pyams_content/shared/common/zmi/summary.py:91
+#: src/pyams_content/shared/common/zmi/summary.py:75
 msgid "Identity card"
 msgstr "Carte d'identité"
 
-#: src/pyams_content/shared/common/zmi/manager.py:64
+#: src/pyams_content/shared/common/zmi/summary.py:87
+msgid "About this version"
+msgstr "À propos de cette version"
+
+#: src/pyams_content/shared/common/zmi/summary.py:125
+msgid "Content history"
+msgstr "Historique de ce contenu"
+
+#: src/pyams_content/shared/common/zmi/summary.py:110
+#: src/pyams_content/shared/common/zmi/dashboard.py:133
+msgid "Version"
+msgstr "Version"
+
+#: 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:88
+#: src/pyams_content/shared/common/zmi/manager.py:100
 msgid "Shared tool properties"
 msgstr "Propriétés de l'outil"
 
-#: src/pyams_content/shared/common/zmi/manager.py:107
+#: src/pyams_content/shared/common/zmi/manager.py:119
 msgid "WARNING"
 msgstr "ATTENTION"
 
-#: src/pyams_content/shared/common/zmi/manager.py:109
+#: src/pyams_content/shared/common/zmi/manager.py:121
 msgid ""
 "Workflow shouldn't be modified if this tool already contains any shared "
 "content!"
@@ -778,11 +840,11 @@
 "Le workflow ne devrait pas être modifié si cet outil renferme déjà des "
 "contenus partagés !"
 
-#: src/pyams_content/shared/common/zmi/manager.py:132
+#: src/pyams_content/shared/common/zmi/manager.py:144
 msgid "Content languages"
 msgstr "Langues proposées"
 
-#: src/pyams_content/shared/common/zmi/manager.py:149
+#: src/pyams_content/shared/common/zmi/manager.py:161
 msgid ""
 "Tool languages are used to translate own tool properties, and newly created "
 "contents will propose these languages by default"
@@ -829,163 +891,274 @@
 msgid "Change owner"
 msgstr "Changer le propriétaire"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:108
+#: src/pyams_content/shared/common/zmi/dashboard.py:120
 msgid "Unique ID"
 msgstr "N° IN"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:121
-msgid "Version"
-msgstr "Version"
-
-#: src/pyams_content/shared/common/zmi/dashboard.py:133
-msgid "Urgent request !"
-msgstr "Sollicitation urgente !"
-
-#: src/pyams_content/shared/common/zmi/dashboard.py:166
+#: src/pyams_content/shared/common/zmi/dashboard.py:160
 msgid "Status date"
 msgstr "En date du"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:178
+#: src/pyams_content/shared/common/zmi/dashboard.py:172
 msgid "Status principal"
 msgstr "Intervenant"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:203
+#: src/pyams_content/shared/common/zmi/dashboard.py:197
 msgid "Last modification"
 msgstr "Dernière modification"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:221
-#: src/pyams_content/root/zmi/__init__.py:75
+#: src/pyams_content/shared/common/zmi/dashboard.py:215
+#: src/pyams_content/root/zmi/__init__.py:88
 msgid "Dashboard"
 msgstr "Tableau de bord"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:232
+#: src/pyams_content/shared/common/zmi/dashboard.py:226
 msgid "Contents dashboard"
-msgstr "Tableau de bord des contenus"
+msgstr "Les contenus qui me concernent"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:266
-#: src/pyams_content/root/zmi/__init__.py:121
+#: src/pyams_content/shared/common/zmi/dashboard.py:260
+#: src/pyams_content/root/zmi/__init__.py:134
 #, python-format
-msgid "MANAGER - {0} content(s) waiting for your action"
-msgstr "RESPONSABLE - {0} contenu(s) en attente de votre intervention"
+msgid "MANAGER - {0} content waiting for your action"
+msgstr "RESPONSABLE - {0} contenu en attente de votre intervention"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:261
+#: src/pyams_content/root/zmi/__init__.py:135
+#, python-format
+msgid "MANAGER - {0} contents waiting for your action"
+msgstr "RESPONSABLE - {0} contenus en attente de votre intervention"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:307
-#: src/pyams_content/root/zmi/__init__.py:165
+#: src/pyams_content/shared/common/zmi/dashboard.py:302
+#: src/pyams_content/root/zmi/__init__.py:179
 #, python-format
-msgid "CONTRIBUTOR - Your {0} content(s) waiting for action"
-msgstr "CONTRIBUTEUR - {0} contenu(s) soumi(s) à un responsable"
+msgid "CONTRIBUTOR - {0} content waiting for action"
+msgstr "CONTRIBUTEUR - {0} contenu soumis à un responsable"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:337
-#: src/pyams_content/root/zmi/__init__.py:198
+#: src/pyams_content/shared/common/zmi/dashboard.py:303
+#: src/pyams_content/root/zmi/__init__.py:180
 #, python-format
-msgid "CONTRIBUTOR - Your last modified contents (limited to {0})"
-msgstr "CONTRIBUTEUR - Vos derniers contenus modifiés (dans la limite de {0})"
+msgid "CONTRIBUTOR - {0} contents waiting for action"
+msgstr "CONTRIBUTEUR - {0} contenus soumis à un responsable"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:369
-#: src/pyams_content/root/zmi/__init__.py:232
+#: src/pyams_content/shared/common/zmi/dashboard.py:333
+#: src/pyams_content/root/zmi/__init__.py:213
+#, python-format
+msgid "CONTRIBUTOR - {0} modified content"
+msgstr "CONTRIBUTEUR - {0} contenu retiré"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:372
+#: src/pyams_content/root/zmi/__init__.py:254
 msgid "My contents"
 msgstr "Tous mes contenus"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:384
-#: src/pyams_content/root/zmi/__init__.py:247
+#: src/pyams_content/shared/common/zmi/dashboard.py:387
+#: src/pyams_content/root/zmi/__init__.py:269
+msgid "My favorites"
+msgstr "Mes favoris"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:396
+#: src/pyams_content/root/zmi/__init__.py:278
+#, python-format
+msgid "CONTRIBUTOR - {0} favorite"
+msgstr "CONTRIBUTEUR - {0} contenu favori"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:397
+#: src/pyams_content/root/zmi/__init__.py:279
+#, python-format
+msgid "CONTRIBUTOR - {0} favorites"
+msgstr "CONTRIBUTEUR - {0} contenus favoris"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:409
+#: src/pyams_content/shared/common/zmi/templates/header.pt:24
+msgid "Add/remove from favorites"
+msgstr "Ajouter/enlever des favoris"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:470
+#: src/pyams_content/root/zmi/__init__.py:315
+msgid "Your favorites"
+msgstr "Mes favoris"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:483
+#: src/pyams_content/root/zmi/__init__.py:328
 msgid "My preparations"
 msgstr "Mes préparations"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:393
-#: src/pyams_content/root/zmi/__init__.py:256
+#: src/pyams_content/shared/common/zmi/dashboard.py:492
+#: src/pyams_content/root/zmi/__init__.py:337
 #, python-format
-msgid "CONTRIBUTOR - Your {0} prepared contents"
-msgstr "CONTRIBUTEUR - {0} contenu(s) en préparation"
+msgid "CONTRIBUTOR - {0} prepared content"
+msgstr "CONTRIBUTEUR - {0} contenu en préparation"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:432
-#: src/pyams_content/root/zmi/__init__.py:293
+#: src/pyams_content/shared/common/zmi/dashboard.py:493
+#: src/pyams_content/root/zmi/__init__.py:338
+#, python-format
+msgid "CONTRIBUTOR - {0} prepared contents"
+msgstr "CONTRIBUTEUR - {0} contenus en préparation"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:532
+#: src/pyams_content/root/zmi/__init__.py:375
 msgid "Your prepared contents"
 msgstr "Mes contenus en préparation"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:445
-#: src/pyams_content/root/zmi/__init__.py:306
+#: src/pyams_content/shared/common/zmi/dashboard.py:545
+#: src/pyams_content/root/zmi/__init__.py:388
+msgid "My submissions"
+msgstr "Mes soumissions"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:554
+#: src/pyams_content/root/zmi/__init__.py:397
+#, python-format
+msgid "CONTRIBUTOR - {0} submitted content"
+msgstr "CONTRIBUTEUR - {0} contenu soumis à un responsable"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:555
+#: src/pyams_content/root/zmi/__init__.py:398
+#, python-format
+msgid "CONTRIBUTOR - {0} submitted contents"
+msgstr "CONTRIBUTEUR - {0} contenus soumis à un responsable"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:594
+#: src/pyams_content/root/zmi/__init__.py:435
+msgid "Your submitted contents"
+msgstr "Mes contenus soumis à un responsable"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:607
+#: src/pyams_content/root/zmi/__init__.py:448
 msgid "My publications"
 msgstr "Mes publications"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:454
-#: src/pyams_content/root/zmi/__init__.py:315
+#: src/pyams_content/shared/common/zmi/dashboard.py:616
+#: src/pyams_content/root/zmi/__init__.py:457
 #, python-format
-msgid "CONTRIBUTOR - Your {0} published contents"
-msgstr "CONTRIBUTEUR - {0} contenu(s) publié(s)"
+msgid "CONTRIBUTOR - {0} published content"
+msgstr "CONTRIBUTEUR - {0} contenu publié"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:493
-#: src/pyams_content/root/zmi/__init__.py:352
+#: src/pyams_content/shared/common/zmi/dashboard.py:617
+#: src/pyams_content/root/zmi/__init__.py:458
+#, python-format
+msgid "CONTRIBUTOR - {0} published contents"
+msgstr "CONTRIBUTEUR - {0} contenus publiés"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:656
+#: src/pyams_content/root/zmi/__init__.py:495
 msgid "Your published contents"
 msgstr "Mes contenus publiés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:506
-#: src/pyams_content/root/zmi/__init__.py:365
+#: src/pyams_content/shared/common/zmi/dashboard.py:669
+#: src/pyams_content/root/zmi/__init__.py:508
 msgid "My retired contents"
 msgstr "Mes contenus retirés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:515
-#: src/pyams_content/root/zmi/__init__.py:374
+#: src/pyams_content/shared/common/zmi/dashboard.py:678
+#: src/pyams_content/root/zmi/__init__.py:517
 #, python-format
-msgid "CONTRIBUTOR - Your {0} retired contents"
-msgstr "CONTRIBUTEUR - {0} contenu(s) retiré(s)"
+msgid "CONTRIBUTOR - {0} retired content"
+msgstr "CONTRIBUTEUR - {0} contenu retiré"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:555
-#: src/pyams_content/root/zmi/__init__.py:412
+#: src/pyams_content/shared/common/zmi/dashboard.py:679
+#: src/pyams_content/root/zmi/__init__.py:518
+#, python-format
+msgid "CONTRIBUTOR - {0} retired contents"
+msgstr "CONTRIBUTEUR - {0} contenus retirés"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:719
+#: src/pyams_content/root/zmi/__init__.py:556
 msgid "Your retired contents"
 msgstr "Mes contenus retirés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:568
-#: src/pyams_content/root/zmi/__init__.py:425
+#: src/pyams_content/shared/common/zmi/dashboard.py:732
+#: src/pyams_content/root/zmi/__init__.py:569
 msgid "My archived contents"
 msgstr "Mes contenus archivés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:577
-#: src/pyams_content/root/zmi/__init__.py:434
+#: src/pyams_content/shared/common/zmi/dashboard.py:741
+#: src/pyams_content/root/zmi/__init__.py:578
 #, python-format
-msgid "CONTRIBUTOR - Your {0} archived contents"
-msgstr "CONTRIBUTEUR - {0} contenu(s) archivé(s)"
+msgid "CONTRIBUTOR - {0} archived content"
+msgstr "CONTRIBUTEUR - {0} contenu archivé"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:623
-#: src/pyams_content/root/zmi/__init__.py:478
+#: src/pyams_content/shared/common/zmi/dashboard.py:742
+#: src/pyams_content/root/zmi/__init__.py:579
+#, python-format
+msgid "CONTRIBUTOR - {0} archived contents"
+msgstr "CONTRIBUTEUR - {0} contenus archivés"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:788
+#: src/pyams_content/root/zmi/__init__.py:623
 msgid "Your archived contents"
 msgstr "Mes contenus archivés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:637
-#: src/pyams_content/root/zmi/__init__.py:492
+#: src/pyams_content/shared/common/zmi/dashboard.py:802
+#: src/pyams_content/root/zmi/__init__.py:637
 msgid "Other interventions"
-msgstr "Les autres interventions"
+msgstr "Toutes les interventions"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:652
-#: src/pyams_content/root/zmi/__init__.py:507
+#: src/pyams_content/shared/common/zmi/dashboard.py:817
+#: src/pyams_content/root/zmi/__init__.py:652
 msgid "Last publications"
 msgstr "Dernières publications"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:661
-#: src/pyams_content/root/zmi/__init__.py:516
-msgid "CONTRIBUTORS - Last published contents (in the limit of 50)"
-msgstr ""
-"CONTRIBUTEURS - Dernières publications tous contributeurs confondus (dans la "
-"limite de 50)"
+#: src/pyams_content/shared/common/zmi/dashboard.py:826
+#: src/pyams_content/root/zmi/__init__.py:661
+#, python-format
+msgid "CONTRIBUTORS - {0} published content"
+msgstr "TOUS CONTRIBUTEURS - {0} contenu publié"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:700
-#: src/pyams_content/root/zmi/__init__.py:553
+#: src/pyams_content/shared/common/zmi/dashboard.py:872
+#: src/pyams_content/root/zmi/__init__.py:705
 msgid "Last published contents"
 msgstr "Derniers contenus publiés"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:713
-#: src/pyams_content/root/zmi/__init__.py:566
+#: src/pyams_content/shared/common/zmi/dashboard.py:885
+#: src/pyams_content/root/zmi/__init__.py:718
 msgid "Last updates"
-msgstr "Dernières mises à jour"
+msgstr "Dernières modifications"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:722
-#: src/pyams_content/root/zmi/__init__.py:575
-msgid "CONTRIBUTORS - Last updated contents (in the limit of 50)"
-msgstr "CONTRIBUTEURS - Derniers contenus modifiés (dans la limite de 50)"
+#: src/pyams_content/shared/common/zmi/dashboard.py:894
+#: src/pyams_content/root/zmi/__init__.py:727
+#, python-format
+msgid "CONTRIBUTORS - {0} updated content"
+msgstr "TOUS CONTRIBUTEURS - {0} contenu modifié"
 
-#: src/pyams_content/shared/common/zmi/dashboard.py:759
-#: src/pyams_content/root/zmi/__init__.py:610
+#: src/pyams_content/shared/common/zmi/dashboard.py:938
+#: src/pyams_content/root/zmi/__init__.py:769
 msgid "Last updated contents"
 msgstr "Derniers contenus modifiés"
 
+#: src/pyams_content/shared/common/zmi/dashboard.py:338
+#: src/pyams_content/root/zmi/__init__.py:218
+#, python-format
+msgid "CONTRIBUTOR - {0} modified contents"
+msgstr "CONTRIBUTEUR - {0} contenus modifiés"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:340
+#: src/pyams_content/root/zmi/__init__.py:220
+#, python-format
+msgid "CONTRIBUTOR - Last {0} modified contents"
+msgstr "CONTRIBUTEUR - Les {0} dernières modifications"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:831
+#: src/pyams_content/root/zmi/__init__.py:666
+#, python-format
+msgid "CONTRIBUTORS - Last {0} published contents"
+msgstr "TOUS CONTRIBUTEURS - Les {0} dernières publications"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:833
+#: src/pyams_content/root/zmi/__init__.py:668
+msgid "CONTRIBUTORS - Last published contents (in the limit of 50)"
+msgstr "TOUS CONTRIBUTEURS - Les {0} dernières publications"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:899
+#: src/pyams_content/root/zmi/__init__.py:732
+#, python-format
+msgid "CONTRIBUTORS - Last {0} updated contents"
+msgstr "TOUS CONTRIBUTEURS - Les {0} dernières modifications"
+
+#: src/pyams_content/shared/common/zmi/dashboard.py:901
+#: src/pyams_content/root/zmi/__init__.py:734
+msgid "CONTRIBUTORS - Last updated contents (in the limit of 50)"
+msgstr "TOUS CONTRIBUTEURS - Les {0} dernières modifications"
+
 #: src/pyams_content/shared/common/zmi/security.py:61
 msgid "Managers restrictions"
 msgstr "Restrictions des responsables"
@@ -1017,21 +1190,21 @@
 "autorisé à gérer. Si vous indiquez plusieurs critères, il pourra gérer les "
 "contenus pour lesquels au moins l'un des critères correspond."
 
-#: src/pyams_content/shared/common/zmi/header.py:80
+#: src/pyams_content/shared/common/zmi/header.py:67
+#, python-format
+msgid "{state} by {principal}"
+msgstr "{state} par {principal}"
+
+#: src/pyams_content/shared/common/zmi/header.py:91
 #, python-format
 msgid "since {date}"
 msgstr "depuis {date}"
 
-#: src/pyams_content/shared/common/zmi/header.py:88
+#: src/pyams_content/shared/common/zmi/header.py:100
 msgid "access new version"
 msgstr "accéder à la nouvelle version en préparation"
 
-#: src/pyams_content/shared/common/zmi/header.py:68
-#, python-format
-msgid "{state} by {{principal}}"
-msgstr "{state} par {{principal}}"
-
-#: src/pyams_content/shared/common/zmi/header.py:97
+#: src/pyams_content/shared/common/zmi/header.py:109
 msgid "access published version"
 msgstr "accéder à la version en ligne"
 
@@ -1051,11 +1224,11 @@
 "ATTENTION : ce contenu restera visible jusqu'à ce qu'un responsable prenne "
 "en charge votre demande."
 
-#: src/pyams_content/shared/common/zmi/templates/header.pt:4
+#: src/pyams_content/shared/common/zmi/templates/header.pt:6
 msgid "Back to previous page"
 msgstr "Revenir à la page précédente"
 
-#: src/pyams_content/shared/common/zmi/templates/header.pt:18
+#: src/pyams_content/shared/common/zmi/templates/header.pt:20
 msgid "by ${owner}"
 msgstr "de ${owner}"
 
@@ -1081,6 +1254,10 @@
 msgid "Advanced search..."
 msgstr "Recherche avancée..."
 
+#: src/pyams_content/shared/common/zmi/templates/dashboard.pt:32
+msgid "You are not actually concerned by any content."
+msgstr "Vous n'êtes actuellement concerné par aucun contenu."
+
 #: src/pyams_content/shared/common/zmi/templates/wf-publish-message.pt:2
 msgid ""
 "As a manager, you considerate that this content is complete and can be "
@@ -1102,8 +1279,8 @@
 "This new content is going to be created in 'draft' mode, so that you can "
 "complete it before publication."
 msgstr ""
-"Ce nouveau contenu va être créé en statut 'Brouillon', pour vous permettre "
-"de le préparer."
+"Ce nouveau contenu va être créé en statut 'Brouillon' pour vous permettre de "
+"le préparer."
 
 #: src/pyams_content/shared/common/zmi/templates/wf-create-message.pt:4
 msgid ""
@@ -1118,8 +1295,8 @@
 "WARNING: this request was made by a contributor which is not the owner of "
 "this content."
 msgstr ""
-"ATTENTION : cette demande a été effectuée par un contributeur qui n'est pas "
-"le propriétaire de ce contenu !"
+"ATTENTION : cette demande est formulée par un contributeur qui n'est pas le "
+"propriétaire de ce contenu !"
 
 #: src/pyams_content/shared/common/zmi/templates/wf-clone-message.pt:2
 msgid "You considerate that the currently published must evolve."
@@ -1132,8 +1309,8 @@
 "By creating a new version, you can update it's content without impacting the "
 "currently published one."
 msgstr ""
-"En créant une nouvelle version, vous pourrez effectuer des modifications "
-"sans impacter la version actuellement publiée."
+"En créant une nouvelle version, vous allez pouvoir apporter des "
+"modifications sans impacter la version actuellement publiée."
 
 #: src/pyams_content/shared/common/zmi/templates/wf-clone-message.pt:5
 msgid ""
@@ -1141,9 +1318,9 @@
 "publication request to replace the currently published version (which will "
 "be archived automatically)."
 msgstr ""
-"Lorsque la nouvelle version sera prête, vous pourrez effectuer une nouvelle "
-"demande de publication pour remplacer l'ancienne version publiée (qui sera "
-"archivée automatiquement)."
+"Lorsque la nouvelle version sera prête, vous pourrez demander sa "
+"publication (et la version actuellement en ligne sera automatiquement "
+"archivée)."
 
 #: src/pyams_content/shared/common/zmi/templates/wf-propose-message.pt:1
 msgid ""
@@ -1161,8 +1338,8 @@
 "The new copy is going to be created in 'draft' mode, so that you can modify "
 "it before publication."
 msgstr ""
-"Ce nouveau contenu va être créé en statut 'Brouillon' pour vous permettre de "
-"le préparer."
+"Cette copie va être créée en statut 'Brouillon' pour vous permettre de la "
+"préparer."
 
 #: src/pyams_content/shared/common/zmi/templates/wf-duplicate-message.pt:5
 msgid ""
@@ -1251,24 +1428,25 @@
 msgid ""
 "RECALL: you are not the owner of the content on which you are intervening."
 msgstr ""
-"RAPPEL : vous intervenez sur un contenu dont vous n'êtes pas le propriétaire."
+"ATTENTION : vous intervenez sur un contenu dont vous n'êtes pas le "
+"propriétaire."
 
 #: src/pyams_content/shared/common/zmi/templates/wf-transition-info.pt:2
 msgid "FOR YOUR INFORMATION"
 msgstr "POUR VOTRE INFORMATION"
 
-#: src/pyams_content/shared/common/zmi/templates/wf-transition-info.pt:3
-msgid "Previous step:"
-msgstr "Étape précédente :"
+#: src/pyams_content/shared/common/zmi/templates/wf-transition-info.pt:5
+msgid "Next step"
+msgstr "Étape suivante"
 
-#: src/pyams_content/shared/common/zmi/templates/wf-transition-info.pt:6
+#: src/pyams_content/shared/common/zmi/templates/wf-transition-info.pt:7
+msgid "Previous step"
+msgstr "Étape précédente"
+
+#: src/pyams_content/shared/common/zmi/templates/wf-transition-info.pt:10
 msgid "With this comment:"
 msgstr "Avec ce commentaire :"
 
-#: src/pyams_content/shared/common/zmi/templates/wf-transition-info.pt:13
-msgid "Next step:"
-msgstr "Étape suivante :"
-
 #: src/pyams_content/shared/common/zmi/templates/wf-archiving-message.pt:2
 msgid "This content is already retired and not visible."
 msgstr "Ce contenu est déjà retiré et n'est plus visible des internautes."
@@ -1306,12 +1484,12 @@
 "d'accès des contributeurs"
 
 #: src/pyams_content/shared/common/interfaces/__init__.py:71
-#: src/pyams_content/shared/common/interfaces/__init__.py:128
+#: src/pyams_content/shared/common/interfaces/__init__.py:141
 msgid "Managers"
 msgstr "Responsables"
 
 #: src/pyams_content/shared/common/interfaces/__init__.py:72
-#: src/pyams_content/shared/common/interfaces/__init__.py:129
+#: src/pyams_content/shared/common/interfaces/__init__.py:142
 msgid ""
 "Managers can handle main operations in tool's workflow, like publish or "
 "retire contents"
@@ -1321,7 +1499,7 @@
 "restrictions qui leur sont imposées"
 
 #: src/pyams_content/shared/common/interfaces/__init__.py:77
-#: src/pyams_content/shared/common/interfaces/__init__.py:134
+#: src/pyams_content/shared/common/interfaces/__init__.py:147
 msgid "Contributors"
 msgstr "Contributeurs"
 
@@ -1331,7 +1509,7 @@
 
 #: src/pyams_content/shared/common/interfaces/__init__.py:89
 msgid "Version creator"
-msgstr "Créateur de cette version"
+msgstr "À l'origine de cette version"
 
 #: src/pyams_content/shared/common/interfaces/__init__.py:90
 msgid ""
@@ -1357,7 +1535,31 @@
 msgid "List of principals who modified this content"
 msgstr "Liste des utilisateurs qui sont intervenus sur ce contenu"
 
+#: src/pyams_content/shared/common/interfaces/__init__.py:103
+msgid "Last modifier"
+msgstr "Dernier intervenant"
+
 #: src/pyams_content/shared/common/interfaces/__init__.py:104
+msgid "Last principal who modified this content"
+msgstr "Dernier utilisateur étant intervenu sur ce contenu"
+
+#: src/pyams_content/shared/common/interfaces/__init__.py:107
+msgid "Publisher"
+msgstr "Publié"
+
+#: src/pyams_content/shared/common/interfaces/__init__.py:108
+msgid "Name of the manager who published the document"
+msgstr "Nom du responsable ayant publié le document"
+
+#: src/pyams_content/shared/common/interfaces/__init__.py:111
+msgid "Publication"
+msgstr "Mise en ligne"
+
+#: src/pyams_content/shared/common/interfaces/__init__.py:112
+msgid "Last publication date and actor"
+msgstr "Nom du responsable ayant effectué la dernière mise en ligne"
+
+#: src/pyams_content/shared/common/interfaces/__init__.py:117
 msgid ""
 "The content's description is 'hidden' into HTML's page headers; but it can "
 "be seen, for example, in some search engines results as content's description"
@@ -1366,29 +1568,29 @@
 "mais on peut la retrouver, par exemple, dans les listes de résultats des "
 "moteurs de recherche comme Google"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:109
+#: src/pyams_content/shared/common/interfaces/__init__.py:122
 msgid "Keywords"
 msgstr "Mots-clés"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:110
+#: src/pyams_content/shared/common/interfaces/__init__.py:123
 msgid "They will be included into HTML pages metadata"
 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:113
+#: src/pyams_content/shared/common/interfaces/__init__.py:126
 msgid "Notepad"
 msgstr "Bloc-notes"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:114
+#: src/pyams_content/shared/common/interfaces/__init__.py:127
 msgid "Internal information to be known about this content"
 msgstr ""
 "Pour prendre note d'informations internes utiles ou importantes à propos de "
 "ce contenu"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:121
+#: src/pyams_content/shared/common/interfaces/__init__.py:134
 msgid "Content owner"
 msgstr "Propriétaire"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:122
+#: src/pyams_content/shared/common/interfaces/__init__.py:135
 msgid ""
 "The owner is the creator of content's first version, except if it was "
 "transferred afterwards to another owner"
@@ -1397,7 +1599,7 @@
 "lorsque cette propriété a été transférée à un autre utilisateur après coup. "
 "Les contenus archivés ne sont plus transférables."
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:135
+#: src/pyams_content/shared/common/interfaces/__init__.py:148
 msgid ""
 "Contributors are users which are allowed to update this content in addition "
 "to it's owner"
@@ -1405,11 +1607,11 @@
 "Les contributeurs sont autorisés, en plus du propriétaire, à modifier ce "
 "contenu"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:140
+#: src/pyams_content/shared/common/interfaces/__init__.py:153
 msgid "Readers"
 msgstr "Relecteurs"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:141
+#: src/pyams_content/shared/common/interfaces/__init__.py:154
 msgid ""
 "Readers are users which are asked to verify and comment contents before they "
 "are published"
@@ -1417,26 +1619,26 @@
 "Les relecteurs sont des utilisateurs qui sont sollicités pour vérifier et "
 "commenter un contenu avant sa publication"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:146
+#: src/pyams_content/shared/common/interfaces/__init__.py:159
 msgid "Guests"
 msgstr "Invités"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:147
+#: src/pyams_content/shared/common/interfaces/__init__.py:160
 msgid ""
 "Guests are users which are allowed to view contents with restricted access"
 msgstr ""
 "Les invités sont autorisés à consulter des contenus dont l'accès a été "
 "restreint"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:166
+#: src/pyams_content/shared/common/interfaces/__init__.py:179
 msgid "Principal ID"
 msgstr "ID utilisateur"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:171
+#: src/pyams_content/shared/common/interfaces/__init__.py:184
 msgid "Restricted contents"
 msgstr "Accès restreints"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:172
+#: src/pyams_content/shared/common/interfaces/__init__.py:185
 msgid ""
 "If 'yes', this manager will get restricted access to manage contents based "
 "on selected settings"
@@ -1444,17 +1646,18 @@
 "Si 'oui', ce responsable n'aura qu'un accès restreint à certains contenus en "
 "fonction de paramètres spécifiques"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:177
+#: src/pyams_content/shared/common/interfaces/__init__.py:190
 msgid "Selected owners"
 msgstr "Propriétaires"
 
-#: src/pyams_content/shared/common/interfaces/__init__.py:178
+#: src/pyams_content/shared/common/interfaces/__init__.py:191
 msgid "Manager will have access to contents owned by these principals"
 msgstr ""
 "Le responsable n'aura accès qu'aux contenus dont ces utilisateurs sont "
 "propriétaires"
 
-#: src/pyams_content/shared/news/zmi/properties.py:40
+#: src/pyams_content/shared/news/zmi/properties.py:39
+#: src/pyams_content/shared/news/zmi/properties.py:51
 msgid "Publication settings"
 msgstr "Paramètres de publication"
 
@@ -1463,13 +1666,10 @@
 msgstr "Cette brève"
 
 #: src/pyams_content/shared/news/zmi/__init__.py:63
+#: src/pyams_content/shared/news/zmi/__init__.py:73
 msgid "Add news topic"
 msgstr "Ajouter une brève"
 
-#: src/pyams_content/shared/news/zmi/__init__.py:73
-msgid "Add new news topic"
-msgstr "Ajout d'une brève"
-
 #: src/pyams_content/shared/news/zmi/__init__.py:54
 #, python-format
 msgid "News topic « {title} »"
@@ -1493,11 +1693,11 @@
 
 #: src/pyams_content/shared/news/interfaces/__init__.py:51
 msgid "The matching date will be displayed in front-office"
-msgstr "La date correspondate sera affichée en front-office"
+msgstr "La date correspondante sera affichée en front-office"
 
 #: src/pyams_content/shared/news/interfaces/__init__.py:58
 msgid "Push end date"
-msgstr "Date de retrait"
+msgstr "Pousser jusqu'au"
 
 #: src/pyams_content/shared/news/interfaces/__init__.py:59
 msgid ""
@@ -1510,23 +1710,35 @@
 "au-delà de cette date, mais restera accessible via le moteur de recherche (à "
 "la différence des contenus retirés ou archivés)"
 
-#: src/pyams_content/profile/zmi/__init__.py:39
+#: src/pyams_content/profile/zmi/__init__.py:40
 msgid "Admin. profile"
 msgstr "Profil d'admin."
 
 #: src/pyams_content/profile/interfaces/__init__.py:33
+msgid "User favorites"
+msgstr "Favoris de l'utilisateur"
+
+#: src/pyams_content/profile/interfaces/__init__.py:34
+msgid "List of internal numbers of shared contents stored for quick access"
+msgstr "Liste des numéros internes des contenus mémorisés pour un accès rapide"
+
+#: src/pyams_content/profile/interfaces/__init__.py:37
 msgid "Default table length"
 msgstr "Longueur des tableaux"
 
-#: src/pyams_content/profile/interfaces/__init__.py:34
+#: src/pyams_content/profile/interfaces/__init__.py:38
 msgid "Default length used for inner tables and dashboards"
 msgstr "Longueur par défaut des tableaux internes et des tableaux de bord"
 
-#: src/pyams_content/root/zmi/__init__.py:110
+#: src/pyams_content/root/zmi/__init__.py:74
+msgid "Home"
+msgstr "Accueil"
+
+#: src/pyams_content/root/zmi/__init__.py:123
 msgid "Your contents dashboard"
-msgstr "Tableau de bord des contenus qui vous concernent"
+msgstr "Les contenus qui me concernent"
 
-#: src/pyams_content/root/zmi/__init__.py:621
+#: src/pyams_content/root/zmi/__init__.py:780
 msgid "Content"
 msgstr "Contenu"
 
@@ -1556,103 +1768,96 @@
 msgid "Create new content"
 msgstr "Créer un nouveau contenu"
 
-#: src/pyams_content/workflow/__init__.py:82
+#: src/pyams_content/workflow/__init__.py:83
 msgid "Draft"
 msgstr "Brouillon"
 
-#: src/pyams_content/workflow/__init__.py:83
+#: src/pyams_content/workflow/__init__.py:84
 msgid "Proposed"
 msgstr "Publication demandée"
 
-#: src/pyams_content/workflow/__init__.py:84
+#: src/pyams_content/workflow/__init__.py:85
 msgid "Canceled"
 msgstr "Annulé"
 
-#: src/pyams_content/workflow/__init__.py:85
+#: src/pyams_content/workflow/__init__.py:86
 msgid "Refused"
 msgstr "Refusé"
 
-#: src/pyams_content/workflow/__init__.py:86
+#: src/pyams_content/workflow/__init__.py:87
 msgid "Published"
 msgstr "Publié"
 
-#: src/pyams_content/workflow/__init__.py:87
+#: src/pyams_content/workflow/__init__.py:88
 msgid "Retiring"
 msgstr "Retrait demandé"
 
-#: src/pyams_content/workflow/__init__.py:88
+#: src/pyams_content/workflow/__init__.py:89
 msgid "Retired"
 msgstr "Retiré"
 
-#: src/pyams_content/workflow/__init__.py:89
+#: src/pyams_content/workflow/__init__.py:90
 msgid "Archiving"
 msgstr "Archivage demandé"
 
-#: src/pyams_content/workflow/__init__.py:90
+#: src/pyams_content/workflow/__init__.py:91
 msgid "Archived"
 msgstr "Archivé"
 
-#: src/pyams_content/workflow/__init__.py:91
+#: src/pyams_content/workflow/__init__.py:92
 msgid "Deleted"
 msgstr "Supprimé"
 
-#: src/pyams_content/workflow/__init__.py:93
-#, python-format
-msgid "draft created by {principal}"
-msgstr "brouillon créé par {principal}"
-
 #: src/pyams_content/workflow/__init__.py:94
-#, python-format
-msgid "publication requested by {principal}"
-msgstr "publication demandée par {principal}"
+msgid "draft created"
+msgstr "brouillon créé"
 
 #: src/pyams_content/workflow/__init__.py:95
-#, python-format
-msgid "published by {principal}"
-msgstr "publié par {principal}"
+msgid "publication requested"
+msgstr "publication demandée"
 
 #: src/pyams_content/workflow/__init__.py:96
-#, python-format
-msgid "retiring requested by {principal}"
-msgstr "retrait demandé par {principal}"
+msgid "published"
+msgstr "publié"
 
 #: src/pyams_content/workflow/__init__.py:97
-#, python-format
-msgid "retired by {principal}"
-msgstr "retiré par {principal}"
+msgid "retiring requested"
+msgstr "retrait demandé"
 
 #: src/pyams_content/workflow/__init__.py:98
-#, python-format
-msgid "archiving requested by {principal}"
-msgstr "archivage demandé par {principal}"
+msgid "retired"
+msgstr "retiré"
 
 #: src/pyams_content/workflow/__init__.py:99
-#, python-format
-msgid "archived by {principal}"
-msgstr "archivé par {principal}"
+msgid "archiving requested"
+msgstr "archivage demandé"
 
-#: src/pyams_content/workflow/__init__.py:219
+#: src/pyams_content/workflow/__init__.py:100
+msgid "archived"
+msgstr "archivé"
+
+#: src/pyams_content/workflow/__init__.py:222
 msgid "Initialize"
 msgstr "Création"
 
-#: src/pyams_content/workflow/__init__.py:222
+#: src/pyams_content/workflow/__init__.py:225
 msgid "Draft creation"
 msgstr "Création du brouillon"
 
-#: src/pyams_content/workflow/__init__.py:225
-#: src/pyams_content/workflow/__init__.py:238
+#: src/pyams_content/workflow/__init__.py:228
+#: src/pyams_content/workflow/__init__.py:241
 msgid "Propose publication"
 msgstr "Demander la publication"
 
-#: src/pyams_content/workflow/__init__.py:232
-#: src/pyams_content/workflow/__init__.py:245
+#: src/pyams_content/workflow/__init__.py:235
+#: src/pyams_content/workflow/__init__.py:248
 msgid "Publication request"
 msgstr "Demande de publication"
 
-#: src/pyams_content/workflow/__init__.py:233
-#: src/pyams_content/workflow/__init__.py:246
-#: src/pyams_content/workflow/__init__.py:324
-#: src/pyams_content/workflow/__init__.py:358
+#: src/pyams_content/workflow/__init__.py:236
+#: src/pyams_content/workflow/__init__.py:249
+#: src/pyams_content/workflow/__init__.py:327
+#: src/pyams_content/workflow/__init__.py:361
 msgid ""
 "content managers authorized to take charge of your content are going to be "
 "notified of your request."
@@ -1660,131 +1865,134 @@
 "les responsables habilités à prendre en charge votre demande vont être "
 "sollicités."
 
-#: src/pyams_content/workflow/__init__.py:258
+#: src/pyams_content/workflow/__init__.py:261
 msgid "Publication request canceled"
 msgstr "Annulation de la demande de publication"
 
-#: src/pyams_content/workflow/__init__.py:262
+#: src/pyams_content/workflow/__init__.py:265
 msgid "Reset canceled publication to draft"
 msgstr "Retour automatique en statut 'brouillon'"
 
-#: src/pyams_content/workflow/__init__.py:266
-#: src/pyams_content/workflow/__init__.py:293
+#: src/pyams_content/workflow/__init__.py:269
+#: src/pyams_content/workflow/__init__.py:296
 msgid "State reset to 'draft' (automatic)"
 msgstr "Retour automatique en statut 'brouillon'"
 
-#: src/pyams_content/workflow/__init__.py:270
+#: src/pyams_content/workflow/__init__.py:273
 msgid "Reset canceled publication to retired"
 msgstr "Retour automatique en statut 'retiré'"
 
-#: src/pyams_content/workflow/__init__.py:274
+#: src/pyams_content/workflow/__init__.py:277
 msgid "State reset to 'retired' (automatic)"
 msgstr "Retour automatique en statut 'retiré'"
 
-#: src/pyams_content/workflow/__init__.py:278
+#: src/pyams_content/workflow/__init__.py:281
 msgid "Refuse publication"
 msgstr "Refuser la publication"
 
-#: src/pyams_content/workflow/__init__.py:285
+#: src/pyams_content/workflow/__init__.py:288
 msgid "Publication refused"
 msgstr "Refus de publication"
 
-#: src/pyams_content/workflow/__init__.py:289
+#: src/pyams_content/workflow/__init__.py:292
 msgid "Reset refused publication to draft"
 msgstr "Publication refusée"
 
-#: src/pyams_content/workflow/__init__.py:297
+#: src/pyams_content/workflow/__init__.py:300
 msgid "Reset refused publication to retired"
 msgstr "Publication refusée"
 
-#: src/pyams_content/workflow/__init__.py:301
+#: src/pyams_content/workflow/__init__.py:304
 msgid "State reset to 'refused' (automatic)"
 msgstr "Retour automatique en status 'refusé'"
 
-#: src/pyams_content/workflow/__init__.py:313
+#: src/pyams_content/workflow/__init__.py:316
 msgid "Content published"
 msgstr "Publication"
 
-#: src/pyams_content/workflow/__init__.py:317
+#: src/pyams_content/workflow/__init__.py:320
 msgid "Request retiring"
 msgstr "Demander le retrait"
 
-#: src/pyams_content/workflow/__init__.py:323
+#: src/pyams_content/workflow/__init__.py:326
 msgid "Retire request"
 msgstr "Demande de retrait"
 
-#: src/pyams_content/workflow/__init__.py:329
+#: src/pyams_content/workflow/__init__.py:332
 msgid "Cancel retiring request"
 msgstr "Annuler la demande de retrait"
 
-#: src/pyams_content/workflow/__init__.py:336
+#: src/pyams_content/workflow/__init__.py:339
 msgid "Retire request canceled"
 msgstr "Annulation de la demande de retrait"
 
-#: src/pyams_content/workflow/__init__.py:340
+#: src/pyams_content/workflow/__init__.py:343
 msgid "Retire content"
 msgstr "Retirer"
 
-#: src/pyams_content/workflow/__init__.py:347
+#: src/pyams_content/workflow/__init__.py:350
 msgid "Content retired"
 msgstr "Retrait"
 
-#: src/pyams_content/workflow/__init__.py:357
+#: src/pyams_content/workflow/__init__.py:360
 msgid "Archive request"
 msgstr "Demande d'archivage"
 
-#: src/pyams_content/workflow/__init__.py:363
+#: src/pyams_content/workflow/__init__.py:366
 msgid "Cancel archiving request"
 msgstr "Annuler la demande d'archivage"
 
-#: src/pyams_content/workflow/__init__.py:370
+#: src/pyams_content/workflow/__init__.py:373
 msgid "Archive request canceled"
 msgstr "Annulation de la demande d'archivage"
 
-#: src/pyams_content/workflow/__init__.py:374
+#: src/pyams_content/workflow/__init__.py:377
 msgid "Archive content"
 msgstr "Archiver"
 
-#: src/pyams_content/workflow/__init__.py:382
+#: src/pyams_content/workflow/__init__.py:385
 msgid "Content archived"
 msgstr "Archivage"
 
-#: src/pyams_content/workflow/__init__.py:386
+#: src/pyams_content/workflow/__init__.py:389
 msgid "Archive published content"
 msgstr "Archivage automatique d'un contenu publié"
 
-#: src/pyams_content/workflow/__init__.py:390
-#: src/pyams_content/workflow/__init__.py:398
-#: src/pyams_content/workflow/__init__.py:406
+#: src/pyams_content/workflow/__init__.py:393
+#: src/pyams_content/workflow/__init__.py:401
+#: src/pyams_content/workflow/__init__.py:409
 msgid "Content archived after version publication"
 msgstr "Archivage automatique après publication"
 
-#: src/pyams_content/workflow/__init__.py:394
+#: src/pyams_content/workflow/__init__.py:397
 msgid "Archive retiring content"
 msgstr "Archivage automatique d'un contenu en attente de retrait"
 
-#: src/pyams_content/workflow/__init__.py:402
+#: src/pyams_content/workflow/__init__.py:405
 msgid "Archive retired content"
 msgstr "Archivage automatique d'un contenu retiré"
 
-#: src/pyams_content/workflow/__init__.py:418
-#: src/pyams_content/workflow/__init__.py:430
-#: src/pyams_content/workflow/__init__.py:442
-#: src/pyams_content/workflow/__init__.py:454
-#: src/pyams_content/workflow/__init__.py:466
+#: src/pyams_content/workflow/__init__.py:421
+#: src/pyams_content/workflow/__init__.py:433
+#: src/pyams_content/workflow/__init__.py:445
+#: src/pyams_content/workflow/__init__.py:457
+#: src/pyams_content/workflow/__init__.py:469
 msgid "New version created"
 msgstr "Création d'une nouvelle version"
 
-#: src/pyams_content/workflow/__init__.py:478
+#: src/pyams_content/workflow/__init__.py:481
 msgid "Version deleted"
 msgstr "Version supprimée"
 
-#: src/pyams_content/workflow/__init__.py:544
-#, python-format
-msgid "publication refused by {principal}"
-msgstr "publication refusée par {principal}"
+#: src/pyams_content/workflow/__init__.py:549
+msgid "publication refused"
+msgstr "publication refusée"
 
-#: src/pyams_content/workflow/__init__.py:189
+#: src/pyams_content/workflow/__init__.py:547
+msgid "new version created"
+msgstr "nouvelle version en préparation"
+
+#: src/pyams_content/workflow/__init__.py:191
 #, python-format
 msgid "Published version {0}"
 msgstr "Version {0} publiée"
@@ -1799,7 +2007,7 @@
 
 #: src/pyams_content/interfaces/__init__.py:55
 msgid "Visible label used to display content"
-msgstr "Le titre affiché en front-office pourra être modifié ultérieurement"
+msgstr "Le titre affiché en front-office"
 
 #: src/pyams_content/interfaces/__init__.py:58
 msgid "Short name"
@@ -1817,36 +2025,46 @@
 
 #: src/pyams_content/interfaces/__init__.py:70
 msgid "Modification date"
-msgstr "Date de modification"
+msgstr "Dernière modification apportée"
 
-#~ msgid "Close"
-#~ msgstr "Annuler"
+#~ msgid "CONTRIBUTOR - Last modified contents (limited to {0})"
+#~ msgstr "CONTRIBUTEUR - {0} derniers contenus modifiés"
+
+#~ msgid "Urgent request !"
+#~ msgstr "Demande urgente !"
 
-#~ msgid "Base info."
-#~ msgstr "Infos de base"
+#~ msgid "{state} by {{principal}}"
+#~ msgstr "{state} par {{principal}}"
+
+#~ msgid "draft created by {principal}"
+#~ msgstr "brouillon créé par {principal}"
 
-#~ msgid "Last modified contents (limited to 30)"
-#~ msgstr "Derniers contenus modifiés (dans la limite de 30)"
+#~ msgid "publication requested by {principal}"
+#~ msgstr "publication demandée par {principal}"
+
+#~ msgid "published by {principal}"
+#~ msgstr "publié par {principal}"
 
-#~ msgid ""
-#~ "As a manager, you considerate that this content must be archived.<dynamic "
-#~ "element> After archiving, it will be backed up but you will not be able "
-#~ "to publish it again except by creating a new version."
-#~ msgstr ""
-#~ "En tant que responsable, vous considérez que ce contenu doit être archivé."
-#~ "<br />Après archivage, il sera sauvegardé mais ne pourra plus être ni "
-#~ "modifié ni publié, sauf en créant une nouvelle version."
+#~ msgid "retiring requested by {principal}"
+#~ msgstr "retrait demandé par {principal}"
+
+#~ msgid "retired by {principal}"
+#~ msgstr "retiré par {principal}"
+
+#~ msgid "archiving requested by {principal}"
+#~ msgstr "archivage demandé par {principal}"
+
+#~ msgid "archived by {principal}"
+#~ msgstr "archivé par {principal}"
 
-#~ msgid ""
-#~ "You are going to duplicate a whole content.<dynamic element> The new copy "
-#~ "is going to be created in 'draft' mode, so that you can modify it before "
-#~ "publication. <dynamic element> A new unique number is also going to be "
-#~ "assigned to it. This number will be shared by all content's versions."
-#~ msgstr ""
-#~ "Vous êtes sur le point de dupliquer un contenu dans sa globalité.<br />La "
-#~ "nouvelle copie va être créée en statut 'Brouillon', de façon à ce que "
-#~ "vous pouissiez la modifier jusqu'à sa publication. Un nouveau numéro "
-#~ "unique va également lui être attribué."
+#~ msgid "publication refused by {principal}"
+#~ msgstr "publication refusée par {principal}"
+
+#~ msgid "Manage this content"
+#~ msgstr "Gérer ce contenu"
 
-#~ msgid "{label} ({ext})"
-#~ msgstr "{label} ({ext})"
+#~ msgid "Summary"
+#~ msgstr "Récapitulatif"
+
+#~ msgid "Add new news topic"
+#~ msgstr "Ajout d'une brève"
--- a/src/pyams_content/locales/pyams_content.pot	Mon Jan 18 17:44:37 2016 +0100
+++ b/src/pyams_content/locales/pyams_content.pot	Mon Jan 18 17:45:47 2016 +0100
@@ -1,12 +1,12 @@
 # 
 # SOME DESCRIPTIVE TITLE
 # This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2015.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2016.
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2015-10-07 15:42+0200\n"
+"POT-Creation-Date: 2016-01-18 14:12+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"
@@ -41,7 +41,7 @@
 msgstr ""
 
 #: ./src/pyams_content/__init__.py:45
-#: ./src/pyams_content/workflow/__init__.py:305
+#: ./src/pyams_content/workflow/__init__.py:308
 msgid "Publish content"
 msgstr ""
 
@@ -98,29 +98,30 @@
 msgid "Galleries list"
 msgstr ""
 
-#: ./src/pyams_content/component/gallery/zmi/container.py:121
+#: ./src/pyams_content/component/gallery/zmi/container.py:122
+msgid "Display gallery contents"
+msgstr ""
+
+#: ./src/pyams_content/component/gallery/zmi/container.py:135
 #: ./src/pyams_content/component/gallery/interfaces/__init__.py:46
 #: ./src/pyams_content/component/gallery/interfaces/__init__.py:86
 #: ./src/pyams_content/component/extfile/zmi/container.py:167
 #: ./src/pyams_content/component/extfile/interfaces/__init__.py:41
-#: ./src/pyams_content/component/paragraph/zmi/container.py:200
-#: ./src/pyams_content/component/paragraph/interfaces/__init__.py:41
+#: ./src/pyams_content/component/paragraph/zmi/container.py:272
+#: ./src/pyams_content/component/paragraph/interfaces/__init__.py:46
 #: ./src/pyams_content/component/links/zmi/container.py:144
 #: ./src/pyams_content/component/links/interfaces/__init__.py:42
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:104
 #: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:187
 #: ./src/pyams_content/interfaces/__init__.py:54
 msgid "Title"
 msgstr ""
 
-#: ./src/pyams_content/component/gallery/zmi/container.py:133
+#: ./src/pyams_content/component/gallery/zmi/container.py:147
 #: ./src/pyams_content/component/extfile/zmi/container.py:112
 msgid "Images"
 msgstr ""
 
-#: ./src/pyams_content/component/gallery/zmi/container.py:146
-msgid "Display gallery contents"
-msgstr ""
-
 #: ./src/pyams_content/component/gallery/zmi/container.py:186
 msgid "Edit galleries links"
 msgstr ""
@@ -190,7 +191,7 @@
 #: ./src/pyams_content/component/gallery/interfaces/__init__.py:90
 #: ./src/pyams_content/component/extfile/interfaces/__init__.py:45
 #: ./src/pyams_content/component/links/interfaces/__init__.py:46
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:103
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:116
 msgid "Description"
 msgstr ""
 
@@ -317,7 +318,7 @@
 
 #: ./src/pyams_content/component/extfile/zmi/container.py:111
 #: ./src/pyams_content/component/extfile/interfaces/__init__.py:101
-#: ./src/pyams_content/component/paragraph/zmi/container.py:144
+#: ./src/pyams_content/component/paragraph/zmi/container.py:189
 msgid "External files"
 msgstr ""
 
@@ -354,7 +355,7 @@
 msgstr ""
 
 #: ./src/pyams_content/component/extfile/interfaces/__init__.py:69
-#: ./src/pyams_content/component/paragraph/interfaces/__init__.py:86
+#: ./src/pyams_content/component/paragraph/interfaces/__init__.py:91
 msgid "Image data"
 msgstr ""
 
@@ -370,87 +371,119 @@
 msgid "Paragraphs"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:58
+#: ./src/pyams_content/component/paragraph/zmi/container.py:61
 msgid "Paragraphs..."
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:73
+#: ./src/pyams_content/component/paragraph/zmi/container.py:77
 msgid "Paragraphs list"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:130
-msgid "Paragraph properties"
+#: ./src/pyams_content/component/paragraph/zmi/container.py:139
+msgid "Click and drag to sort paragraphs..."
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:163
+#: ./src/pyams_content/component/paragraph/zmi/container.py:157
+msgid "Switch paragraph visibility"
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/zmi/container.py:217
 msgid "Useful links"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:182
+#: ./src/pyams_content/component/paragraph/zmi/container.py:245
 msgid "Images galleries"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/container.py:120
+#: ./src/pyams_content/component/paragraph/zmi/container.py:126
 msgid "No currently defined paragraph."
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/illustration.py:54
+#: ./src/pyams_content/component/paragraph/zmi/container.py:282
+msgid "Click to open/close all paragraphs editors"
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/zmi/container.py:291
+msgid "Click to open/close paragraph editor"
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/zmi/illustration.py:59
 msgid "Add illustration..."
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/illustration.py:65
+#: ./src/pyams_content/component/paragraph/zmi/illustration.py:70
 msgid "Add new illustration"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/illustration.py:100
+#: ./src/pyams_content/component/paragraph/zmi/illustration.py:105
 msgid "Edit illustration properties"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/illustration.py:173
+#: ./src/pyams_content/component/paragraph/zmi/illustration.py:120
+msgid "Illustration properties"
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/zmi/illustration.py:188
 msgid "Centered illustration"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/illustration.py:181
+#: ./src/pyams_content/component/paragraph/zmi/illustration.py:197
 msgid "Small illustration on the left with zoom"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/illustration.py:189
+#: ./src/pyams_content/component/paragraph/zmi/illustration.py:206
 msgid "Small illustration on the right with zoom"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/html.py:54
+#: ./src/pyams_content/component/paragraph/zmi/html.py:59
 msgid "Add HTML paragraph..."
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/html.py:65
+#: ./src/pyams_content/component/paragraph/zmi/html.py:70
 msgid "Add new HTML paragraph"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/zmi/html.py:106
+#: ./src/pyams_content/component/paragraph/zmi/html.py:111
 msgid "Edit paragraph properties"
 msgstr ""
 
+#: ./src/pyams_content/component/paragraph/zmi/html.py:135
+msgid "HTML paragraph properties"
+msgstr ""
+
 #: ./src/pyams_content/component/paragraph/zmi/templates/summary.pt:7
 #: ./src/pyams_content/component/paragraph/zmi/templates/summary.pt:30
 msgid "This content doesn't contain any paragraph."
 msgstr ""
 
+#: ./src/pyams_content/component/paragraph/interfaces/__init__.py:41
+msgid "Visible?"
+msgstr ""
+
 #: ./src/pyams_content/component/paragraph/interfaces/__init__.py:42
+msgid "Is this paragraph visible in front-office?"
+msgstr ""
+
+#: ./src/pyams_content/component/paragraph/interfaces/__init__.py:47
 msgid "Paragraph title"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/interfaces/__init__.py:69
+#: ./src/pyams_content/component/paragraph/interfaces/__init__.py:74
 msgid "Body"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/interfaces/__init__.py:89
+#: ./src/pyams_content/component/paragraph/interfaces/__init__.py:94
 msgid "Legend"
 msgstr ""
 
-#: ./src/pyams_content/component/paragraph/interfaces/__init__.py:92
+#: ./src/pyams_content/component/paragraph/interfaces/__init__.py:97
 msgid "Image style"
 msgstr ""
 
+#: ./src/pyams_content/component/theme/zmi/portlet.py:39
+msgid "Themes"
+msgstr ""
+
 #: ./src/pyams_content/component/theme/zmi/__init__.py:52
 #: ./src/pyams_content/component/theme/zmi/manager.py:45
 msgid "Themes..."
@@ -567,6 +600,11 @@
 msgid "List of internal or external links linked to this object"
 msgstr ""
 
+#: ./src/pyams_content/shared/common/__init__.py:100
+#, python-format
+msgid "{date} by {principal}"
+msgstr ""
+
 #: ./src/pyams_content/shared/common/zmi/search.py:73
 msgid "Quick search results"
 msgstr ""
@@ -580,12 +618,12 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/search.py:118
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:191
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:185
 msgid "Owner"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/search.py:121
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:153
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:144
 msgid "Status"
 msgstr ""
 
@@ -605,175 +643,199 @@
 msgid "Modified before..."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/properties.py:54
+#: ./src/pyams_content/shared/common/zmi/properties.py:55
 msgid "Composition"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/properties.py:64
-#: ./src/pyams_content/shared/common/zmi/manager.py:78
+#: ./src/pyams_content/shared/common/zmi/properties.py:65
+#: ./src/pyams_content/shared/common/zmi/properties.py:112
+#: ./src/pyams_content/shared/common/zmi/manager.py:90
 msgid "Properties"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/properties.py:75
+#: ./src/pyams_content/shared/common/zmi/properties.py:76
+#: ./src/pyams_content/shared/common/zmi/properties.py:134
 msgid "Content properties"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:66
+#: ./src/pyams_content/shared/common/zmi/workflow.py:68
 msgid "Workflow"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:164
-#: ./src/pyams_content/shared/common/zmi/workflow.py:235
-#: ./src/pyams_content/shared/common/zmi/workflow.py:280
-#: ./src/pyams_content/shared/common/zmi/workflow.py:338
-#: ./src/pyams_content/shared/common/zmi/workflow.py:411
-#: ./src/pyams_content/shared/common/zmi/workflow.py:471
-#: ./src/pyams_content/shared/common/zmi/workflow.py:516
-#: ./src/pyams_content/shared/common/zmi/workflow.py:562
-#: ./src/pyams_content/shared/common/zmi/workflow.py:622
-#: ./src/pyams_content/shared/common/zmi/workflow.py:667
-#: ./src/pyams_content/shared/common/zmi/workflow.py:713
-#: ./src/pyams_content/shared/common/zmi/workflow.py:765
-#: ./src/pyams_content/shared/common/zmi/__init__.py:225
+#: ./src/pyams_content/shared/common/zmi/workflow.py:79
+msgid "Workflow details"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/workflow.py:171
+#: ./src/pyams_content/shared/common/zmi/workflow.py:243
+#: ./src/pyams_content/shared/common/zmi/workflow.py:288
+#: ./src/pyams_content/shared/common/zmi/workflow.py:346
+#: ./src/pyams_content/shared/common/zmi/workflow.py:420
+#: ./src/pyams_content/shared/common/zmi/workflow.py:480
+#: ./src/pyams_content/shared/common/zmi/workflow.py:525
+#: ./src/pyams_content/shared/common/zmi/workflow.py:571
+#: ./src/pyams_content/shared/common/zmi/workflow.py:631
+#: ./src/pyams_content/shared/common/zmi/workflow.py:676
+#: ./src/pyams_content/shared/common/zmi/workflow.py:722
+#: ./src/pyams_content/shared/common/zmi/workflow.py:775
+#: ./src/pyams_content/shared/common/zmi/__init__.py:240
 #: ./src/pyams_content/shared/common/zmi/owner.py:74
 msgid "Cancel"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:165
+#: ./src/pyams_content/shared/common/zmi/workflow.py:172
 msgid "Request publication"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:236
-#: ./src/pyams_content/workflow/__init__.py:251
+#: ./src/pyams_content/shared/common/zmi/workflow.py:244
+#: ./src/pyams_content/workflow/__init__.py:254
 msgid "Cancel publication request"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:281
+#: ./src/pyams_content/shared/common/zmi/workflow.py:289
 msgid "Refuse publication request"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:339
+#: ./src/pyams_content/shared/common/zmi/workflow.py:347
 msgid "Publish"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:412
+#: ./src/pyams_content/shared/common/zmi/workflow.py:421
 msgid "Request retire"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:472
+#: ./src/pyams_content/shared/common/zmi/workflow.py:481
 msgid "Cancel retire request"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:517
+#: ./src/pyams_content/shared/common/zmi/workflow.py:526
 msgid "Retire"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:563
-#: ./src/pyams_content/workflow/__init__.py:351
+#: ./src/pyams_content/shared/common/zmi/workflow.py:572
+#: ./src/pyams_content/workflow/__init__.py:354
 msgid "Request archive"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:623
+#: ./src/pyams_content/shared/common/zmi/workflow.py:632
 msgid "Cancel archive request"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:668
+#: ./src/pyams_content/shared/common/zmi/workflow.py:677
 msgid "Archive"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:714
-#: ./src/pyams_content/workflow/__init__.py:410
-#: ./src/pyams_content/workflow/__init__.py:422
-#: ./src/pyams_content/workflow/__init__.py:434
-#: ./src/pyams_content/workflow/__init__.py:446
-#: ./src/pyams_content/workflow/__init__.py:458
+#: ./src/pyams_content/shared/common/zmi/workflow.py:723
+#: ./src/pyams_content/workflow/__init__.py:413
+#: ./src/pyams_content/workflow/__init__.py:425
+#: ./src/pyams_content/workflow/__init__.py:437
+#: ./src/pyams_content/workflow/__init__.py:449
+#: ./src/pyams_content/workflow/__init__.py:461
 msgid "Create new version"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:766
-#: ./src/pyams_content/workflow/__init__.py:470
+#: ./src/pyams_content/shared/common/zmi/workflow.py:776
+#: ./src/pyams_content/workflow/__init__.py:473
 msgid "Delete version"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:203
-#: ./src/pyams_content/shared/common/zmi/workflow.py:381
+#: ./src/pyams_content/shared/common/zmi/workflow.py:211
+#: ./src/pyams_content/shared/common/zmi/workflow.py:390
 msgid "Publication start date is required"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:206
-#: ./src/pyams_content/shared/common/zmi/workflow.py:308
-#: ./src/pyams_content/shared/common/zmi/workflow.py:442
-#: ./src/pyams_content/shared/common/zmi/workflow.py:593
+#: ./src/pyams_content/shared/common/zmi/workflow.py:214
+#: ./src/pyams_content/shared/common/zmi/workflow.py:316
+#: ./src/pyams_content/shared/common/zmi/workflow.py:451
+#: ./src/pyams_content/shared/common/zmi/workflow.py:602
 msgid "A comment is required"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:130
+#: ./src/pyams_content/shared/common/zmi/workflow.py:792
+msgid "Delete definitively"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/workflow.py:136
+#, python-format
+msgid "{state} | by {principal}"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/workflow.py:132
+#: ./src/pyams_content/workflow/__init__.py:528
+#: ./src/pyams_content/workflow/__init__.py:551
 #, python-format
 msgid "{state} {date}"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/workflow.py:127
-#, python-format
-msgid "{state} by {principal}"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/__init__.py:174
-msgid "Manage this content"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/__init__.py:215
+#: ./src/pyams_content/shared/common/zmi/__init__.py:230
 msgid "Duplicate content..."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/__init__.py:234
-#: ./src/pyams_content/shared/common/zmi/__init__.py:226
+#: ./src/pyams_content/shared/common/zmi/__init__.py:249
 msgid "Duplicate content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/__init__.py:273
+#: ./src/pyams_content/shared/common/zmi/__init__.py:78
+msgid "This title can be modified afterwards"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/__init__.py:241
+msgid "Duplicate this content"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/__init__.py:290
 #, python-format
 msgid "Duplicate content ({oid})"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/__init__.py:318
+#: ./src/pyams_content/shared/common/zmi/__init__.py:336
 msgid "Created or modified in this version"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/summary.py:57
-msgid "Summary"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/summary.py:67
+#: ./src/pyams_content/shared/common/zmi/summary.py:51
 msgid "Display content summary"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/summary.py:91
+#: ./src/pyams_content/shared/common/zmi/summary.py:75
 msgid "Identity card"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/manager.py:64
+#: ./src/pyams_content/shared/common/zmi/summary.py:87
+msgid "About this version"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/summary.py:125
+msgid "Content history"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/summary.py:110
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:133
+msgid "Version"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/manager.py:76
 msgid "Tool management"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/manager.py:88
+#: ./src/pyams_content/shared/common/zmi/manager.py:100
 msgid "Shared tool properties"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/manager.py:107
+#: ./src/pyams_content/shared/common/zmi/manager.py:119
 msgid "WARNING"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/manager.py:109
+#: ./src/pyams_content/shared/common/zmi/manager.py:121
 msgid ""
 "Workflow shouldn't be modified if this tool already contains any shared "
 "content!"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/manager.py:132
+#: ./src/pyams_content/shared/common/zmi/manager.py:144
 msgid "Content languages"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/manager.py:149
+#: ./src/pyams_content/shared/common/zmi/manager.py:161
 msgid ""
 "Tool languages are used to translate own tool properties, and newly created "
 "contents will propose these languages by default"
@@ -813,159 +875,272 @@
 msgid "Change owner"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:108
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:120
 msgid "Unique ID"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:121
-msgid "Version"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:133
-msgid "Urgent request !"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:166
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:160
 msgid "Status date"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:178
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:172
 msgid "Status principal"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:203
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:197
 msgid "Last modification"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:221
-#: ./src/pyams_content/root/zmi/__init__.py:75
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:215
+#: ./src/pyams_content/root/zmi/__init__.py:88
 msgid "Dashboard"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:232
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:226
 msgid "Contents dashboard"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:266
-#: ./src/pyams_content/root/zmi/__init__.py:121
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:260
+#: ./src/pyams_content/root/zmi/__init__.py:134
 #, python-format
-msgid "MANAGER - {0} content(s) waiting for your action"
+msgid "MANAGER - {0} content waiting for your action"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:261
+#: ./src/pyams_content/root/zmi/__init__.py:135
+#, python-format
+msgid "MANAGER - {0} contents waiting for your action"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:307
-#: ./src/pyams_content/root/zmi/__init__.py:165
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:302
+#: ./src/pyams_content/root/zmi/__init__.py:179
 #, python-format
-msgid "CONTRIBUTOR - Your {0} content(s) waiting for action"
+msgid "CONTRIBUTOR - {0} content waiting for action"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:337
-#: ./src/pyams_content/root/zmi/__init__.py:198
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:303
+#: ./src/pyams_content/root/zmi/__init__.py:180
 #, python-format
-msgid "CONTRIBUTOR - Your last modified contents (limited to {0})"
+msgid "CONTRIBUTOR - {0} contents waiting for action"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:369
-#: ./src/pyams_content/root/zmi/__init__.py:232
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:333
+#: ./src/pyams_content/root/zmi/__init__.py:213
+#, python-format
+msgid "CONTRIBUTOR - {0} modified content"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:372
+#: ./src/pyams_content/root/zmi/__init__.py:254
 msgid "My contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:384
-#: ./src/pyams_content/root/zmi/__init__.py:247
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:387
+#: ./src/pyams_content/root/zmi/__init__.py:269
+msgid "My favorites"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:396
+#: ./src/pyams_content/root/zmi/__init__.py:278
+#, python-format
+msgid "CONTRIBUTOR - {0} favorite"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:397
+#: ./src/pyams_content/root/zmi/__init__.py:279
+#, python-format
+msgid "CONTRIBUTOR - {0} favorites"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:409
+#: ./src/pyams_content/shared/common/zmi/templates/header.pt:24
+msgid "Add/remove from favorites"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:470
+#: ./src/pyams_content/root/zmi/__init__.py:315
+msgid "Your favorites"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:483
+#: ./src/pyams_content/root/zmi/__init__.py:328
 msgid "My preparations"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:393
-#: ./src/pyams_content/root/zmi/__init__.py:256
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:492
+#: ./src/pyams_content/root/zmi/__init__.py:337
 #, python-format
-msgid "CONTRIBUTOR - Your {0} prepared contents"
+msgid "CONTRIBUTOR - {0} prepared content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:432
-#: ./src/pyams_content/root/zmi/__init__.py:293
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:493
+#: ./src/pyams_content/root/zmi/__init__.py:338
+#, python-format
+msgid "CONTRIBUTOR - {0} prepared contents"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:532
+#: ./src/pyams_content/root/zmi/__init__.py:375
 msgid "Your prepared contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:445
-#: ./src/pyams_content/root/zmi/__init__.py:306
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:545
+#: ./src/pyams_content/root/zmi/__init__.py:388
+msgid "My submissions"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:554
+#: ./src/pyams_content/root/zmi/__init__.py:397
+#, python-format
+msgid "CONTRIBUTOR - {0} submitted content"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:555
+#: ./src/pyams_content/root/zmi/__init__.py:398
+#, python-format
+msgid "CONTRIBUTOR - {0} submitted contents"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:594
+#: ./src/pyams_content/root/zmi/__init__.py:435
+msgid "Your submitted contents"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:607
+#: ./src/pyams_content/root/zmi/__init__.py:448
 msgid "My publications"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:454
-#: ./src/pyams_content/root/zmi/__init__.py:315
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:616
+#: ./src/pyams_content/root/zmi/__init__.py:457
 #, python-format
-msgid "CONTRIBUTOR - Your {0} published contents"
+msgid "CONTRIBUTOR - {0} published content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:493
-#: ./src/pyams_content/root/zmi/__init__.py:352
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:617
+#: ./src/pyams_content/root/zmi/__init__.py:458
+#, python-format
+msgid "CONTRIBUTOR - {0} published contents"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:656
+#: ./src/pyams_content/root/zmi/__init__.py:495
 msgid "Your published contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:506
-#: ./src/pyams_content/root/zmi/__init__.py:365
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:669
+#: ./src/pyams_content/root/zmi/__init__.py:508
 msgid "My retired contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:515
-#: ./src/pyams_content/root/zmi/__init__.py:374
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:678
+#: ./src/pyams_content/root/zmi/__init__.py:517
 #, python-format
-msgid "CONTRIBUTOR - Your {0} retired contents"
+msgid "CONTRIBUTOR - {0} retired content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:555
-#: ./src/pyams_content/root/zmi/__init__.py:412
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:679
+#: ./src/pyams_content/root/zmi/__init__.py:518
+#, python-format
+msgid "CONTRIBUTOR - {0} retired contents"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:719
+#: ./src/pyams_content/root/zmi/__init__.py:556
 msgid "Your retired contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:568
-#: ./src/pyams_content/root/zmi/__init__.py:425
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:732
+#: ./src/pyams_content/root/zmi/__init__.py:569
 msgid "My archived contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:577
-#: ./src/pyams_content/root/zmi/__init__.py:434
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:741
+#: ./src/pyams_content/root/zmi/__init__.py:578
 #, python-format
-msgid "CONTRIBUTOR - Your {0} archived contents"
+msgid "CONTRIBUTOR - {0} archived content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:623
-#: ./src/pyams_content/root/zmi/__init__.py:478
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:742
+#: ./src/pyams_content/root/zmi/__init__.py:579
+#, python-format
+msgid "CONTRIBUTOR - {0} archived contents"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:788
+#: ./src/pyams_content/root/zmi/__init__.py:623
 msgid "Your archived contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:637
-#: ./src/pyams_content/root/zmi/__init__.py:492
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:802
+#: ./src/pyams_content/root/zmi/__init__.py:637
 msgid "Other interventions"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:652
-#: ./src/pyams_content/root/zmi/__init__.py:507
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:817
+#: ./src/pyams_content/root/zmi/__init__.py:652
 msgid "Last publications"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:661
-#: ./src/pyams_content/root/zmi/__init__.py:516
-msgid "CONTRIBUTORS - Last published contents (in the limit of 50)"
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:826
+#: ./src/pyams_content/root/zmi/__init__.py:661
+#, python-format
+msgid "CONTRIBUTORS - {0} published content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:700
-#: ./src/pyams_content/root/zmi/__init__.py:553
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:872
+#: ./src/pyams_content/root/zmi/__init__.py:705
 msgid "Last published contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:713
-#: ./src/pyams_content/root/zmi/__init__.py:566
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:885
+#: ./src/pyams_content/root/zmi/__init__.py:718
 msgid "Last updates"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:722
-#: ./src/pyams_content/root/zmi/__init__.py:575
-msgid "CONTRIBUTORS - Last updated contents (in the limit of 50)"
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:894
+#: ./src/pyams_content/root/zmi/__init__.py:727
+#, python-format
+msgid "CONTRIBUTORS - {0} updated content"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:938
+#: ./src/pyams_content/root/zmi/__init__.py:769
+msgid "Last updated contents"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:338
+#: ./src/pyams_content/root/zmi/__init__.py:218
+#, python-format
+msgid "CONTRIBUTOR - {0} modified contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/dashboard.py:759
-#: ./src/pyams_content/root/zmi/__init__.py:610
-msgid "Last updated contents"
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:340
+#: ./src/pyams_content/root/zmi/__init__.py:220
+#, python-format
+msgid "CONTRIBUTOR - Last {0} modified contents"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:831
+#: ./src/pyams_content/root/zmi/__init__.py:666
+#, python-format
+msgid "CONTRIBUTORS - Last {0} published contents"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:833
+#: ./src/pyams_content/root/zmi/__init__.py:668
+msgid "CONTRIBUTORS - Last published contents (in the limit of 50)"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:899
+#: ./src/pyams_content/root/zmi/__init__.py:732
+#, python-format
+msgid "CONTRIBUTORS - Last {0} updated contents"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/dashboard.py:901
+#: ./src/pyams_content/root/zmi/__init__.py:734
+msgid "CONTRIBUTORS - Last updated contents (in the limit of 50)"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/security.py:61
@@ -996,21 +1171,21 @@
 "which at least one criteria is matching."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/header.py:80
+#: ./src/pyams_content/shared/common/zmi/header.py:67
+#, python-format
+msgid "{state} by {principal}"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/zmi/header.py:91
 #, python-format
 msgid "since {date}"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/header.py:88
+#: ./src/pyams_content/shared/common/zmi/header.py:100
 msgid "access new version"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/header.py:68
-#, python-format
-msgid "{state} by {{principal}}"
-msgstr ""
-
-#: ./src/pyams_content/shared/common/zmi/header.py:97
+#: ./src/pyams_content/shared/common/zmi/header.py:109
 msgid "access published version"
 msgstr ""
 
@@ -1026,11 +1201,11 @@
 "request."
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/templates/header.pt:4
+#: ./src/pyams_content/shared/common/zmi/templates/header.pt:6
 msgid "Back to previous page"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/templates/header.pt:18
+#: ./src/pyams_content/shared/common/zmi/templates/header.pt:20
 msgid "by ${owner}"
 msgstr ""
 
@@ -1053,6 +1228,10 @@
 msgid "Advanced search..."
 msgstr ""
 
+#: ./src/pyams_content/shared/common/zmi/templates/dashboard.pt:32
+msgid "You are not actually concerned by any content."
+msgstr ""
+
 #: ./src/pyams_content/shared/common/zmi/templates/wf-publish-message.pt:2
 msgid ""
 "As a manager, you considerate that this content is complete and can be "
@@ -1194,16 +1373,16 @@
 msgid "FOR YOUR INFORMATION"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/templates/wf-transition-info.pt:3
-msgid "Previous step:"
+#: ./src/pyams_content/shared/common/zmi/templates/wf-transition-info.pt:5
+msgid "Next step"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/templates/wf-transition-info.pt:6
-msgid "With this comment:"
+#: ./src/pyams_content/shared/common/zmi/templates/wf-transition-info.pt:7
+msgid "Previous step"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/zmi/templates/wf-transition-info.pt:13
-msgid "Next step:"
+#: ./src/pyams_content/shared/common/zmi/templates/wf-transition-info.pt:10
+msgid "With this comment:"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/zmi/templates/wf-archiving-message.pt:2
@@ -1238,19 +1417,19 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:71
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:128
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:141
 msgid "Managers"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:72
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:129
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:142
 msgid ""
 "Managers can handle main operations in tool's workflow, like publish or "
 "retire contents"
 msgstr ""
 
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:77
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:134
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:147
 msgid "Contributors"
 msgstr ""
 
@@ -1284,86 +1463,111 @@
 msgid "List of principals who modified this content"
 msgstr ""
 
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:103
+msgid "Last modifier"
+msgstr ""
+
 #: ./src/pyams_content/shared/common/interfaces/__init__.py:104
+msgid "Last principal who modified this content"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:107
+msgid "Publisher"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:108
+msgid "Name of the manager who published the document"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:111
+msgid "Publication"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:112
+msgid "Last publication date and actor"
+msgstr ""
+
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:117
 msgid ""
 "The content's description is 'hidden' into HTML's page headers; but it can be"
 " seen, for example, in some search engines results as content's description"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:109
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:122
 msgid "Keywords"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:110
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:123
 msgid "They will be included into HTML pages metadata"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:113
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:126
 msgid "Notepad"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:114
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:127
 msgid "Internal information to be known about this content"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:121
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:134
 msgid "Content owner"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:122
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:135
 msgid ""
 "The owner is the creator of content's first version, except if it was "
 "transferred afterwards to another owner"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:135
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:148
 msgid ""
 "Contributors are users which are allowed to update this content in addition "
 "to it's owner"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:140
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:153
 msgid "Readers"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:141
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:154
 msgid ""
 "Readers are users which are asked to verify and comment contents before they "
 "are published"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:146
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:159
 msgid "Guests"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:147
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:160
 msgid ""
 "Guests are users which are allowed to view contents with restricted access"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:166
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:179
 msgid "Principal ID"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:171
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:184
 msgid "Restricted contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:172
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:185
 msgid ""
 "If 'yes', this manager will get restricted access to manage contents based on"
 " selected settings"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:177
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:190
 msgid "Selected owners"
 msgstr ""
 
-#: ./src/pyams_content/shared/common/interfaces/__init__.py:178
+#: ./src/pyams_content/shared/common/interfaces/__init__.py:191
 msgid "Manager will have access to contents owned by these principals"
 msgstr ""
 
-#: ./src/pyams_content/shared/news/zmi/properties.py:40
+#: ./src/pyams_content/shared/news/zmi/properties.py:39
+#: ./src/pyams_content/shared/news/zmi/properties.py:51
 msgid "Publication settings"
 msgstr ""
 
@@ -1372,13 +1576,10 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/news/zmi/__init__.py:63
+#: ./src/pyams_content/shared/news/zmi/__init__.py:73
 msgid "Add news topic"
 msgstr ""
 
-#: ./src/pyams_content/shared/news/zmi/__init__.py:73
-msgid "Add new news topic"
-msgstr ""
-
 #: ./src/pyams_content/shared/news/zmi/__init__.py:54
 #, python-format
 msgid "News topic « {title} »"
@@ -1415,23 +1616,35 @@
 "will still be available via the search engine"
 msgstr ""
 
-#: ./src/pyams_content/profile/zmi/__init__.py:39
+#: ./src/pyams_content/profile/zmi/__init__.py:40
 msgid "Admin. profile"
 msgstr ""
 
 #: ./src/pyams_content/profile/interfaces/__init__.py:33
-msgid "Default table length"
+msgid "User favorites"
 msgstr ""
 
 #: ./src/pyams_content/profile/interfaces/__init__.py:34
+msgid "List of internal numbers of shared contents stored for quick access"
+msgstr ""
+
+#: ./src/pyams_content/profile/interfaces/__init__.py:37
+msgid "Default table length"
+msgstr ""
+
+#: ./src/pyams_content/profile/interfaces/__init__.py:38
 msgid "Default length used for inner tables and dashboards"
 msgstr ""
 
-#: ./src/pyams_content/root/zmi/__init__.py:110
+#: ./src/pyams_content/root/zmi/__init__.py:74
+msgid "Home"
+msgstr ""
+
+#: ./src/pyams_content/root/zmi/__init__.py:123
 msgid "Your contents dashboard"
 msgstr ""
 
-#: ./src/pyams_content/root/zmi/__init__.py:621
+#: ./src/pyams_content/root/zmi/__init__.py:780
 msgid "Content"
 msgstr ""
 
@@ -1459,233 +1672,229 @@
 msgid "Create new content"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:82
+#: ./src/pyams_content/workflow/__init__.py:83
 msgid "Draft"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:83
-msgid "Proposed"
-msgstr ""
-
 #: ./src/pyams_content/workflow/__init__.py:84
-msgid "Canceled"
+msgid "Proposed"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:85
-msgid "Refused"
+msgid "Canceled"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:86
-msgid "Published"
+msgid "Refused"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:87
-msgid "Retiring"
+msgid "Published"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:88
+msgid "Retiring"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:89
 msgid "Retired"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:89
+#: ./src/pyams_content/workflow/__init__.py:90
 msgid "Archiving"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:90
+#: ./src/pyams_content/workflow/__init__.py:91
 msgid "Archived"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:91
+#: ./src/pyams_content/workflow/__init__.py:92
 msgid "Deleted"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:93
-#, python-format
-msgid "draft created by {principal}"
-msgstr ""
-
 #: ./src/pyams_content/workflow/__init__.py:94
-#, python-format
-msgid "publication requested by {principal}"
+msgid "draft created"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:95
-#, python-format
-msgid "published by {principal}"
+msgid "publication requested"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:96
-#, python-format
-msgid "retiring requested by {principal}"
+msgid "published"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:97
-#, python-format
-msgid "retired by {principal}"
+msgid "retiring requested"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:98
-#, python-format
-msgid "archiving requested by {principal}"
+msgid "retired"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:99
-#, python-format
-msgid "archived by {principal}"
+msgid "archiving requested"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:219
-msgid "Initialize"
+#: ./src/pyams_content/workflow/__init__.py:100
+msgid "archived"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:222
-msgid "Draft creation"
+msgid "Initialize"
 msgstr ""
 
 #: ./src/pyams_content/workflow/__init__.py:225
-#: ./src/pyams_content/workflow/__init__.py:238
+msgid "Draft creation"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:228
+#: ./src/pyams_content/workflow/__init__.py:241
 msgid "Propose publication"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:232
-#: ./src/pyams_content/workflow/__init__.py:245
+#: ./src/pyams_content/workflow/__init__.py:235
+#: ./src/pyams_content/workflow/__init__.py:248
 msgid "Publication request"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:233
-#: ./src/pyams_content/workflow/__init__.py:246
-#: ./src/pyams_content/workflow/__init__.py:324
-#: ./src/pyams_content/workflow/__init__.py:358
+#: ./src/pyams_content/workflow/__init__.py:236
+#: ./src/pyams_content/workflow/__init__.py:249
+#: ./src/pyams_content/workflow/__init__.py:327
+#: ./src/pyams_content/workflow/__init__.py:361
 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:258
+#: ./src/pyams_content/workflow/__init__.py:261
 msgid "Publication request canceled"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:262
+#: ./src/pyams_content/workflow/__init__.py:265
 msgid "Reset canceled publication to draft"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:266
-#: ./src/pyams_content/workflow/__init__.py:293
+#: ./src/pyams_content/workflow/__init__.py:269
+#: ./src/pyams_content/workflow/__init__.py:296
 msgid "State reset to 'draft' (automatic)"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:270
+#: ./src/pyams_content/workflow/__init__.py:273
 msgid "Reset canceled publication to retired"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:274
+#: ./src/pyams_content/workflow/__init__.py:277
 msgid "State reset to 'retired' (automatic)"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:278
+#: ./src/pyams_content/workflow/__init__.py:281
 msgid "Refuse publication"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:285
+#: ./src/pyams_content/workflow/__init__.py:288
 msgid "Publication refused"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:289
+#: ./src/pyams_content/workflow/__init__.py:292
 msgid "Reset refused publication to draft"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:297
+#: ./src/pyams_content/workflow/__init__.py:300
 msgid "Reset refused publication to retired"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:301
+#: ./src/pyams_content/workflow/__init__.py:304
 msgid "State reset to 'refused' (automatic)"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:313
+#: ./src/pyams_content/workflow/__init__.py:316
 msgid "Content published"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:317
+#: ./src/pyams_content/workflow/__init__.py:320
 msgid "Request retiring"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:323
+#: ./src/pyams_content/workflow/__init__.py:326
 msgid "Retire request"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:329
+#: ./src/pyams_content/workflow/__init__.py:332
 msgid "Cancel retiring request"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:336
+#: ./src/pyams_content/workflow/__init__.py:339
 msgid "Retire request canceled"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:340
+#: ./src/pyams_content/workflow/__init__.py:343
 msgid "Retire content"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:347
+#: ./src/pyams_content/workflow/__init__.py:350
 msgid "Content retired"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:357
+#: ./src/pyams_content/workflow/__init__.py:360
 msgid "Archive request"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:363
+#: ./src/pyams_content/workflow/__init__.py:366
 msgid "Cancel archiving request"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:370
+#: ./src/pyams_content/workflow/__init__.py:373
 msgid "Archive request canceled"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:374
+#: ./src/pyams_content/workflow/__init__.py:377
 msgid "Archive content"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:382
+#: ./src/pyams_content/workflow/__init__.py:385
 msgid "Content archived"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:386
+#: ./src/pyams_content/workflow/__init__.py:389
 msgid "Archive published content"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:390
-#: ./src/pyams_content/workflow/__init__.py:398
-#: ./src/pyams_content/workflow/__init__.py:406
+#: ./src/pyams_content/workflow/__init__.py:393
+#: ./src/pyams_content/workflow/__init__.py:401
+#: ./src/pyams_content/workflow/__init__.py:409
 msgid "Content archived after version publication"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:394
+#: ./src/pyams_content/workflow/__init__.py:397
 msgid "Archive retiring content"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:402
+#: ./src/pyams_content/workflow/__init__.py:405
 msgid "Archive retired content"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:418
-#: ./src/pyams_content/workflow/__init__.py:430
-#: ./src/pyams_content/workflow/__init__.py:442
-#: ./src/pyams_content/workflow/__init__.py:454
-#: ./src/pyams_content/workflow/__init__.py:466
+#: ./src/pyams_content/workflow/__init__.py:421
+#: ./src/pyams_content/workflow/__init__.py:433
+#: ./src/pyams_content/workflow/__init__.py:445
+#: ./src/pyams_content/workflow/__init__.py:457
+#: ./src/pyams_content/workflow/__init__.py:469
 msgid "New version created"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:478
+#: ./src/pyams_content/workflow/__init__.py:481
 msgid "Version deleted"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:544
-#, python-format
-msgid "publication refused by {principal}"
+#: ./src/pyams_content/workflow/__init__.py:549
+msgid "publication refused"
 msgstr ""
 
-#: ./src/pyams_content/workflow/__init__.py:189
+#: ./src/pyams_content/workflow/__init__.py:547
+msgid "new version created"
+msgstr ""
+
+#: ./src/pyams_content/workflow/__init__.py:191
 #, python-format
 msgid "Published version {0}"
 msgstr ""
--- a/src/pyams_content/skin/resources/js/pyams_content.js	Mon Jan 18 17:44:37 2016 +0100
+++ b/src/pyams_content/skin/resources/js/pyams_content.js	Mon Jan 18 17:45:47 2016 +0100
@@ -1,6 +1,10 @@
-(function($) {
+(function($, globals) {
+
+	"use strict";
 
-	PyAMS_content = {
+	var MyAMS = globals.MyAMS;
+
+	var PyAMS_content = {
 
 		/**
 		 * TinyMCE editor configuration
@@ -23,13 +27,36 @@
 		},
 
 		/**
+		 * User profile management
+		 */
+		profile: {
+
+			switchFavorite: function() {
+				var star = $(this);
+				var oid = star.data('sequence-oid');
+				MyAMS.ajax.post('switch-user-favorite.json',
+								{oid: oid},
+								function(result, status) {
+									if (result.favorite) {
+										star.removeClass('fa-star-o')
+											.addClass('fa-star');
+									} else {
+										star.removeClass('fa-star')
+											.addClass('fa-star-o');
+									}
+								});
+			}
+		},
+
+		/**
 		 * External files management
 		 */
 		extfiles: {
 
 			refresh: function(options) {
-				if (typeof(options) == 'string')
+				if (typeof(options) === 'string') {
 					options = JSON.parse(options);
+				}
 				var select = $('select[name="form.widgets.files:list"]');
 				var plugin = select.data('select2');
 				$('<option></option>').attr('value', options.new_file.id)
@@ -41,6 +68,16 @@
 				select.select2('data', data);
 				plugin.results.empty();
 				plugin.opts.populateResults.call(plugin, plugin.results, options.files, {term: ''});
+			},
+
+			refreshContainer: function(changes) {
+				var para = $('tr[data-ams-element-name="' + changes.object_name + '"]');
+				var counter = $('span.count', $('td.extfiles', para));
+				if (changes.nb_files > 0) {
+					counter.text('(' + changes.nb_files + ')');
+				} else {
+					counter.text('');
+				}
 			}
 		},
 
@@ -51,8 +88,9 @@
 		links: {
 
 			refresh: function(options) {
-				if (typeof(options) == 'string')
+				if (typeof(options) === 'string') {
 					options = JSON.parse(options);
+				}
 				var select = $('select[name="form.widgets.links:list"]');
 				var plugin = select.data('select2');
 				$('<option></option>').attr('value', options.new_link.id)
@@ -64,6 +102,16 @@
 				select.select2('data', data);
 				plugin.results.empty();
 				plugin.opts.populateResults.call(plugin, plugin.results, options.links, {term: ''});
+			},
+
+			refreshContainer: function(changes) {
+				var para = $('tr[data-ams-element-name="' + changes.object_name + '"]');
+				var counter = $('span.count', $('td.links', para));
+				if (changes.nb_links > 0) {
+					counter.text('(' + changes.nb_links + ')');
+				} else {
+					counter.text('');
+				}
 			}
 		},
 
@@ -74,8 +122,9 @@
 		galleries: {
 
 			refresh: function(options) {
-				if (typeof(options) == 'string')
+				if (typeof(options) === 'string') {
 					options = JSON.parse(options);
+				}
 				var select = $('select[name="form.widgets.galleries:list"]');
 				var plugin = select.data('select2');
 				$('<option></option>').attr('value', options.new_gallery.id)
@@ -90,8 +139,9 @@
 			},
 
 			setOrder: function(event, ui) {
-				if (ui && ui.item.hasClass('already-dropped'))
+				if (ui && ui.item.hasClass('already-dropped')) {
 					return;
+				}
 				var gallery = ui.item.parents('.gallery');
 				var ids = $('.image', gallery).listattr('data-ams-element-name');
 				MyAMS.ajax.post(gallery.data('ams-location') + '/set-images-order.json',
@@ -106,16 +156,135 @@
 						content: '<i class="text-danger fa fa-2x fa-bell shake animated"></i>&nbsp; ' + MyAMS.i18n.DELETE_WARNING,
 						buttons: MyAMS.i18n.BTN_OK_CANCEL
 					}, function(button) {
-						if (button == MyAMS.i18n.BTN_OK) {
+						if (button === MyAMS.i18n.BTN_OK) {
 							var gallery = link.parents('.gallery');
 							var location = gallery.data('ams-location');
 							var image = link.parents('.image');
 							var object_name = image.data('ams-element-name');
-							MyAMS.ajax.post(location + '/delete-element.json', {'object_name': object_name}, function(result, status) {
-								image.remove();
-							});
+							MyAMS.ajax.post(location + '/delete-element.json',
+											{object_name: object_name},
+											function(result, status) {
+												image.remove();
+											});
 						}
 					});
+				};
+			},
+
+			refreshContainer: function(changes) {
+				var para = $('tr[data-ams-element-name="' + changes.object_name + '"]');
+				var counter = $('span.count', $('td.galleries', para));
+				if (changes.nb_galleries > 0) {
+					counter.text('(' + changes.nb_galleries + ')');
+				} else {
+					counter.text('');
+				}
+			}
+		},
+
+
+		/**
+		 * Paragraphs management
+		 */
+		paragraphs: {
+
+			switchVisibility: function(element) {
+				return function() {
+					var source = $(this);
+					var para = source.parents('tr');
+					var container = para.parents('table');
+					MyAMS.ajax.post(container.data('ams-location') + '/set-paragraph-visibility.json',
+									{object_name: para.data('ams-element-name')},
+									function(result, status) {
+										if (result.visible) {
+											$('i', source).attr('class', 'fa fa-fw fa-eye');
+										} else {
+											$('i', source).attr('class', 'fa fa-fw fa-eye-slash text-danger');
+										}
+									});
+				};
+			},
+
+			refreshParagraph: function(changes) {
+				var container = $('table[id="paragraphs_list"]');
+				var para = $('tr[data-ams-element-name="' + changes.object_name + '"]', container);
+				if (changes.visible) {
+					$('i', $('td.switcher', para)).removeClass('fa-eye-slash text-danger')
+												  .addClass('fa-eye');
+				} else {
+					$('i', $('td.switcher', para)).removeClass('fa-eye')
+												  .addClass('fa-eye-slash text-danger');
+				}
+				$('span.title', para).text(changes.title || '--');
+			},
+
+			switchEditor: function(element) {
+				var source = $(this);
+				var switcher = $('i', source);
+				var td = source.parents('td');
+				var editor = $('.editor', td);
+				var para = source.parents('tr');
+				if (switcher.hasClass('fa-plus-square-o')) {
+					var container = para.parents('table');
+					editor.html('<h1 class="loading"><i class="fa fa-2x fa-gear fa-spin"></i></h1>');
+					MyAMS.ajax.post(container.data('ams-location') + '/get-paragraph-editor.json',
+									{object_name: para.data('ams-element-name')},
+									function(result) {
+										editor.html(result);
+										if (result) {
+											MyAMS.initContent(editor);
+											switcher.removeClass('fa-plus-square-o')
+													.addClass('fa-minus-square-o');
+											para.data('ams-disabled-handlers', true);
+										}
+									});
+				} else {
+					MyAMS.skin.cleanContainer(editor);
+					editor.empty();
+					switcher.removeClass('fa-minus-square-o')
+							.addClass('fa-plus-square-o');
+					para.removeData('ams-disabled-handlers');
+				}
+			},
+
+			switchAllEditors: function(element) {
+				var source = $(this);
+				var switcher = $('i', source);
+				var container = source.parents('table');
+				// TODO: afficher le curseur de la roue qui tourne !!
+				if (switcher.hasClass('fa-plus-square-o')) {
+					switcher.removeClass('fa-plus-square-o')
+							.addClass('fa-cog fa-spin');
+					MyAMS.ajax.post(container.data('ams-location') + '/get-paragraphs-editors.json',
+									{},
+									function(result) {
+										for (var para_id in result) {
+											if (!result.hasOwnProperty(para_id)) {
+												continue;
+											}
+											var para = $('tr[data-ams-element-name="' + para_id + '"]', container);
+											var editor = $('.editor', para);
+											if (editor.is(':empty')) {
+												editor.html(result[para_id]);
+												MyAMS.initContent(editor);
+											}
+											$('.fa-plus-square-o', para).removeClass('fa-plus-square-o')
+																		.addClass('fa-minus-square-o');
+											para.data('ams-disabled-handlers', true);
+										}
+										if (!$('i.fa-plus-square-o', $('tbody', container)).exists()) {
+											switcher.removeClass('fa-cog fa-spin')
+													.addClass('fa-minus-square-o');
+										}
+									});
+				} else {
+					$('.editor', container).each(function() {
+						MyAMS.skin.cleanContainer($(this));
+						$(this).empty();
+					});
+					$('.fa-minus-square-o', container).removeClass('fa-minus-square-o')
+													  .addClass('fa-plus-square-o');
+					$('tr', container).removeData('ams-disabled-handlers');
 				}
 			}
 		},
@@ -132,15 +301,18 @@
 				var extract = $('select[name="form.widgets.extract_name:list"]', element);
 				var extract_name = extract.val();
 				if (thesaurus_name) {
-					MyAMS.jsonrpc.post('getExtracts', {thesaurus_name: thesaurus_name}, {url: '/api/thesaurus/json'}, function(data) {
-						extract.empty();
-						$(data.result).each(function() {
-							$('<option></option>').attr('value', this.id)
-												  .attr('selected', this.id == extract_name)
-												  .text(this.text)
-												  .appendTo(extract);
-						});
-					});
+					MyAMS.jsonrpc.post('getExtracts',
+									   {thesaurus_name: thesaurus_name},
+									   {url: '/api/thesaurus/json'},
+									   function(data) {
+											extract.empty();
+											$(data.result).each(function() {
+												$('<option></option>').attr('value', this.id)
+																	  .attr('selected', this.id === extract_name)
+																	  .text(this.text)
+																	  .appendTo(extract);
+											});
+									   });
 				}
 				extract.attr('data-ams-events-handlers', '{"select2-open": "PyAMS_content.themes.getExtracts"}');
 			},
@@ -150,15 +322,37 @@
 				var form = select.parents('form');
 				var thesaurus_name = $('select[name="form.widgets.thesaurus_name:list"]', form).val();
 				if (thesaurus_name) {
-					MyAMS.jsonrpc.post('getExtracts', {thesaurus_name: thesaurus_name}, {url: '/api/thesaurus/json'}, function(data) {
-						var extract = $('select[name="form.widgets.extract_name:list"]', form);
-						var plugin = extract.data('select2');
-						plugin.results.empty();
-						plugin.opts.populateResults.call(plugin, plugin.results, data.result, {term: ''});
-					});
+					MyAMS.jsonrpc.post('getExtracts',
+									   {thesaurus_name: thesaurus_name},
+									   {url: '/api/thesaurus/json'},
+									   function(data) {
+											var extract = $('select[name="form.widgets.extract_name:list"]', form);
+											var plugin = extract.data('select2');
+											plugin.results.empty();
+											plugin.opts.populateResults.call(plugin, plugin.results, data.result,
+																			 {term: ''});
+									   });
 				}
 			}
 		}
-	}
+	};
+
+	globals.PyAMS_content = PyAMS_content;
 
-})(jQuery);
+	$(globals.document).on('PyAMS_content.changed_item', function(event, settings) {
+		switch (settings.object_type) {
+			case 'paragraph':
+				PyAMS_content.paragraphs.refreshParagraph(settings);
+				break;
+			case 'extfiles_container':
+				PyAMS_content.extfiles.refreshContainer(settings);
+				break;
+			case 'links_container':
+				PyAMS_content.links.refreshContainer(settings);
+				break;
+			case 'galleries_container':
+				PyAMS_content.galleries.refreshContainer(settings);
+				break;		}
+	});
+
+})(jQuery, this);
--- a/src/pyams_content/skin/resources/js/pyams_content.min.js	Mon Jan 18 17:44:37 2016 +0100
+++ b/src/pyams_content/skin/resources/js/pyams_content.min.js	Mon Jan 18 17:45:47 2016 +0100
@@ -1,1 +1,1 @@
-(function(a){if(window.ONF===undefined){window.ONF={}}ONF.Skin={extfiles:{refresh:function(c){if(typeof(c)=="string"){c=JSON.parse(c)}var b=a('select[name="form.widgets.files:list"]');var d=b.data("select2");a("<option></option>").attr("value",c.new_file.id).attr("selected","selected").text(c.new_file.text).appendTo(b);var e=b.select2("data");e.push(c.new_file);b.select2("data",e);d.results.empty();d.opts.populateResults.call(d,d.results,c.files,{term:""})}},links:{refresh:function(c){if(typeof(c)=="string"){c=JSON.parse(c)}var b=a('select[name="form.widgets.links:list"]');var d=b.data("select2");a("<option></option>").attr("value",c.new_link.id).attr("selected","selected").text(c.new_link.text).appendTo(b);var e=b.select2("data");e.push(c.new_link);b.select2("data",e);d.results.empty();d.opts.populateResults.call(d,d.results,c.links,{term:""})}},galleries:{refresh:function(c){if(typeof(c)=="string"){c=JSON.parse(c)}var b=a('select[name="form.widgets.galleries:list"]');var d=b.data("select2");a("<option></option>").attr("value",c.new_gallery.id).attr("selected","selected").text(c.new_gallery.text).appendTo(b);var e=b.select2("data");e.push(c.new_gallery);b.select2("data",e);d.results.empty();d.opts.populateResults.call(d,d.results,c.galleries,{term:""})},setOrder:function(d,e){if(e&&e.item.hasClass("already-dropped")){return}var b=e.item.parents(".gallery");var c=a(".image",b).listattr("data-ams-element-name");MyAMS.ajax.post(b.data("ams-location")+"/set-images-order.json",{images:JSON.stringify(c)})},removeFile:function(b){return function(){var c=a(this);MyAMS.skin.bigBox({title:MyAMS.i18n.WARNING,content:'<i class="text-danger fa fa-2x fa-bell shake animated"></i>&nbsp; '+MyAMS.i18n.DELETE_WARNING,buttons:MyAMS.i18n.BTN_OK_CANCEL},function(g){if(g==MyAMS.i18n.BTN_OK){var f=c.parents(".gallery");var e=f.data("ams-location");var h=c.parents(".image");var d=h.data("ams-element-name");MyAMS.ajax.post(e+"/delete-element.json",{object_name:d},function(i,j){h.remove()})}})}}},themes:{initExtracts:function(d){var c=a('select[name="form.widgets.thesaurus_name:list"]',d);var b=c.val();var f=a('select[name="form.widgets.extract_name:list"]',d);var e=f.val();if(b){MyAMS.jsonrpc.post("getExtracts",{thesaurus_name:b},{url:"/api/thesaurus/json"},function(g){f.empty();a(g.result).each(function(){a("<option></option>").attr("value",this.id).attr("selected",this.id==e).text(this.text).appendTo(f)})})}f.attr("data-ams-events-handlers",'{"select2-open": "ONF.Skin.themes.getExtracts"}')},getExtracts:function(e){var b=a(e.currentTarget);var d=b.parents("form");var c=a('select[name="form.widgets.thesaurus_name:list"]',d).val();if(c){MyAMS.jsonrpc.post("getExtracts",{thesaurus_name:c},{url:"/api/thesaurus/json"},function(h){var g=a('select[name="form.widgets.extract_name:list"]',d);var f=g.data("select2");f.results.empty();f.opts.populateResults.call(f,f.results,h.result,{term:""})})}}}}})(jQuery);
\ No newline at end of file
+(function(b,a){var d=a.MyAMS;var c={TinyMCE:{initEditor:function(e){e.image_list=c.TinyMCE.getImagesList;e.link_list=c.TinyMCE.getLinksList;return e},getImagesList:function(e){return d.ajax.post("get-images-list.json",{},e)},getLinksList:function(e){return d.ajax.post("get-links-list.json",{},e)}},profile:{switchFavorite:function(){var f=b(this);var e=f.data("sequence-oid");d.ajax.post("switch-user-favorite.json",{oid:e},function(g,h){if(g.favorite){f.removeClass("fa-star-o").addClass("fa-star")}else{f.removeClass("fa-star").addClass("fa-star-o")}})}},extfiles:{refresh:function(f){if(typeof(f)==="string"){f=JSON.parse(f)}var e=b('select[name="form.widgets.files:list"]');var g=e.data("select2");b("<option></option>").attr("value",f.new_file.id).attr("selected","selected").text(f.new_file.text).appendTo(e);var h=e.select2("data");h.push(f.new_file);e.select2("data",h);g.results.empty();g.opts.populateResults.call(g,g.results,f.files,{term:""})},refreshContainer:function(g){var e=b('tr[data-ams-element-name="'+g.object_name+'"]');var f=b("span.count",b("td.extfiles",e));if(g.nb_files>0){f.text("("+g.nb_files+")")}else{f.text("")}}},links:{refresh:function(f){if(typeof(f)==="string"){f=JSON.parse(f)}var e=b('select[name="form.widgets.links:list"]');var g=e.data("select2");b("<option></option>").attr("value",f.new_link.id).attr("selected","selected").text(f.new_link.text).appendTo(e);var h=e.select2("data");h.push(f.new_link);e.select2("data",h);g.results.empty();g.opts.populateResults.call(g,g.results,f.links,{term:""})},refreshContainer:function(g){var e=b('tr[data-ams-element-name="'+g.object_name+'"]');var f=b("span.count",b("td.links",e));if(g.nb_links>0){f.text("("+g.nb_links+")")}else{f.text("")}}},galleries:{refresh:function(f){if(typeof(f)==="string"){f=JSON.parse(f)}var e=b('select[name="form.widgets.galleries:list"]');var g=e.data("select2");b("<option></option>").attr("value",f.new_gallery.id).attr("selected","selected").text(f.new_gallery.text).appendTo(e);var h=e.select2("data");h.push(f.new_gallery);e.select2("data",h);g.results.empty();g.opts.populateResults.call(g,g.results,f.galleries,{term:""})},setOrder:function(g,h){if(h&&h.item.hasClass("already-dropped")){return}var e=h.item.parents(".gallery");var f=b(".image",e).listattr("data-ams-element-name");d.ajax.post(e.data("ams-location")+"/set-images-order.json",{images:JSON.stringify(f)})},removeFile:function(e){return function(){var f=b(this);d.skin.bigBox({title:d.i18n.WARNING,content:'<i class="text-danger fa fa-2x fa-bell shake animated"></i>&nbsp; '+d.i18n.DELETE_WARNING,buttons:d.i18n.BTN_OK_CANCEL},function(j){if(j===d.i18n.BTN_OK){var i=f.parents(".gallery");var h=i.data("ams-location");var k=f.parents(".image");var g=k.data("ams-element-name");d.ajax.post(h+"/delete-element.json",{object_name:g},function(l,m){k.remove()})}})}},refreshContainer:function(g){var e=b('tr[data-ams-element-name="'+g.object_name+'"]');var f=b("span.count",b("td.galleries",e));if(g.nb_galleries>0){f.text("("+g.nb_galleries+")")}else{f.text("")}}},paragraphs:{switchVisibility:function(e){return function(){var h=b(this);var f=h.parents("tr");var g=f.parents("table");d.ajax.post(g.data("ams-location")+"/set-paragraph-visibility.json",{object_name:f.data("ams-element-name")},function(i,j){if(i.visible){b("i",h).attr("class","fa fa-fw fa-eye")}else{b("i",h).attr("class","fa fa-fw fa-eye-slash text-danger")}})}},refreshParagraph:function(g){var f=b('table[id="paragraphs_list"]');var e=b('tr[data-ams-element-name="'+g.object_name+'"]',f);if(g.visible){b("i",b("td.switcher",e)).removeClass("fa-eye-slash text-danger").addClass("fa-eye")}else{b("i",b("td.switcher",e)).removeClass("fa-eye").addClass("fa-eye-slash text-danger")}b("span.title",e).text(g.title||"--")},switchEditor:function(g){var j=b(this);var i=b("i",j);var k=j.parents("td");var h=b(".editor",k);var e=j.parents("tr");if(i.hasClass("fa-plus-square-o")){var f=e.parents("table");h.html('<h1 class="loading"><i class="fa fa-2x fa-gear fa-spin"></i></h1>');d.ajax.post(f.data("ams-location")+"/get-paragraph-editor.json",{object_name:e.data("ams-element-name")},function(l){h.html(l);if(l){d.initContent(h);i.removeClass("fa-plus-square-o").addClass("fa-minus-square-o");e.data("ams-disabled-handlers",true)}})}else{d.skin.cleanContainer(h);h.empty();i.removeClass("fa-minus-square-o").addClass("fa-plus-square-o");e.removeData("ams-disabled-handlers")}},switchAllEditors:function(f){var h=b(this);var g=b("i",h);var e=h.parents("table");if(g.hasClass("fa-plus-square-o")){g.removeClass("fa-plus-square-o").addClass("fa-cog fa-spin");d.ajax.post(e.data("ams-location")+"/get-paragraphs-editors.json",{},function(j){for(var k in j){if(!j.hasOwnProperty(k)){continue}var i=b('tr[data-ams-element-name="'+k+'"]',e);var l=b(".editor",i);if(l.is(":empty")){l.html(j[k]);d.initContent(l)}b(".fa-plus-square-o",i).removeClass("fa-plus-square-o").addClass("fa-minus-square-o");i.data("ams-disabled-handlers",true)}if(!b("i.fa-plus-square-o",b("tbody",e)).exists()){g.removeClass("fa-cog fa-spin").addClass("fa-minus-square-o")}})}else{b(".editor",e).each(function(){d.skin.cleanContainer(b(this));b(this).empty()});b(".fa-minus-square-o",e).removeClass("fa-minus-square-o").addClass("fa-plus-square-o");b("tr",e).removeData("ams-disabled-handlers")}}},themes:{initExtracts:function(g){var f=b('select[name="form.widgets.thesaurus_name:list"]',g);var e=f.val();var i=b('select[name="form.widgets.extract_name:list"]',g);var h=i.val();if(e){d.jsonrpc.post("getExtracts",{thesaurus_name:e},{url:"/api/thesaurus/json"},function(j){i.empty();b(j.result).each(function(){b("<option></option>").attr("value",this.id).attr("selected",this.id===h).text(this.text).appendTo(i)})})}i.attr("data-ams-events-handlers",'{"select2-open": "PyAMS_content.themes.getExtracts"}')},getExtracts:function(h){var e=b(h.currentTarget);var g=e.parents("form");var f=b('select[name="form.widgets.thesaurus_name:list"]',g).val();if(f){d.jsonrpc.post("getExtracts",{thesaurus_name:f},{url:"/api/thesaurus/json"},function(k){var j=b('select[name="form.widgets.extract_name:list"]',g);var i=j.data("select2");i.results.empty();i.opts.populateResults.call(i,i.results,k.result,{term:""})})}}}};a.PyAMS_content=c;b(a.document).on("PyAMS_content.changed_item",function(f,e){switch(e.object_type){case"paragraph":c.paragraphs.refreshParagraph(e);break;case"extfiles_container":c.extfiles.refreshContainer(e);break;case"links_container":c.links.refreshContainer(e);break;case"galleries_container":c.galleries.refreshContainer(e);break}})})(jQuery,this);
\ No newline at end of file