Updated shared data types vocabularies
authorThierry Florac <tflorac@ulthar.net>
Wed, 13 Jan 2021 14:08:53 +0100
changeset 1446 952fcf8af9f9
parent 1445 f05955086ad8
child 1447 53f02f01df65
Updated shared data types vocabularies
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/shared/common/types.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	Tue Jan 12 13:37:48 2021 +0100
+++ b/src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po	Wed Jan 13 14:08:53 2021 +0100
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2020-11-13 09:24+0100\n"
+"POT-Creation-Date: 2021-01-13 11:29+0100\n"
 "PO-Revision-Date: 2015-09-10 10:42+0200\n"
 "Last-Translator: Thierry Florac <tflorac@ulthar.net>\n"
 "Language-Team: French\n"
@@ -197,7 +197,7 @@
 #: src/pyams_content/interfaces/__init__.py:101
 #: src/pyams_content/features/menu/portlet/navigation/interfaces/simple.py:31
 #: src/pyams_content/features/menu/portlet/navigation/interfaces/double.py:31
-#: src/pyams_content/features/search/portlet/interfaces.py:25
+#: src/pyams_content/features/search/portlet/interfaces.py:34
 #: src/pyams_content/root/zmi/templates/advanced-search.pt:204
 #: src/pyams_content/shared/view/portlet/interfaces.py:52
 #: src/pyams_content/shared/common/zmi/dashboard.py:128
@@ -880,7 +880,7 @@
 msgstr "Lien interne"
 
 #: src/pyams_content/component/links/__init__.py:265
-#: src/pyams_content/features/redirect/zmi/container.py:278
+#: src/pyams_content/features/redirect/zmi/container.py:290
 msgid "External link"
 msgstr "Lien externe"
 
@@ -925,13 +925,13 @@
 "que par certains modes de rendu !!"
 
 #: src/pyams_content/component/links/interfaces.py:55
-#: src/pyams_content/features/search/portlet/interfaces.py:41
+#: src/pyams_content/features/search/portlet/interfaces.py:50
 #: src/pyams_content/shared/view/portlet/interfaces.py:99
 msgid "Force canonical URL?"
 msgstr "Imposer l'URL canonique"
 
 #: src/pyams_content/component/links/interfaces.py:56
-#: src/pyams_content/features/search/portlet/interfaces.py:42
+#: src/pyams_content/features/search/portlet/interfaces.py:51
 #: src/pyams_content/shared/view/portlet/interfaces.py:100
 msgid ""
 "By default, internal links use a \"relative\" URL, which tries to display "
@@ -2279,7 +2279,7 @@
 msgstr "Dernière modification apportée"
 
 #: src/pyams_content/features/share/interfaces.py:32
-#: src/pyams_content/features/share/zmi/container.py:227
+#: src/pyams_content/features/share/zmi/container.py:241
 msgid "Twitter account"
 msgstr "Compte Twitter"
 
@@ -2305,7 +2305,7 @@
 "c'est le compte général qui sera utilisé"
 
 #: src/pyams_content/features/share/interfaces.py:43
-#: src/pyams_content/features/share/zmi/container.py:231
+#: src/pyams_content/features/share/zmi/container.py:245
 msgid "Facebook account"
 msgstr "Compte Facebook"
 
@@ -2331,7 +2331,7 @@
 msgstr "Si 'non', ce mode de partage est désactivé"
 
 #: src/pyams_content/features/share/interfaces.py:62
-#: src/pyams_content/features/share/zmi/container.py:155
+#: src/pyams_content/features/share/zmi/container.py:165
 #: src/pyams_content/features/menu/zmi/__init__.py:217
 #: src/pyams_content/shared/form/interfaces.py:121
 #: src/pyams_content/shared/form/zmi/field.py:172
@@ -2386,20 +2386,20 @@
 msgid "Allow sharing"
 msgstr "Autoriser le partage"
 
-#: src/pyams_content/features/share/zmi/container.py:55
+#: src/pyams_content/features/share/zmi/container.py:56
 msgid "Network shares..."
 msgstr "Partage des contenus"
 
-#: src/pyams_content/features/share/zmi/container.py:133
+#: src/pyams_content/features/share/zmi/container.py:138
 msgid "Enable/disable item"
 msgstr "Activer/désactiver le partage"
 
-#: src/pyams_content/features/share/zmi/container.py:173
-#: src/pyams_content/features/share/zmi/container.py:188
+#: src/pyams_content/features/share/zmi/container.py:184
+#: src/pyams_content/features/share/zmi/container.py:201
 msgid "Social networks share"
 msgstr "Partage des contenus"
 
-#: src/pyams_content/features/share/zmi/container.py:189
+#: src/pyams_content/features/share/zmi/container.py:202
 msgid ""
 "Social networks share items are used to define share options available on "
 "your contents.\n"
@@ -2414,15 +2414,15 @@
 "**ATTENTION** : n'oubliez pas d'inclure un composant \"Boîte à outils\" dans "
 "vos modèles de présentation pour afficher ces liens de partage !!\n"
 
-#: src/pyams_content/features/share/zmi/container.py:205
+#: src/pyams_content/features/share/zmi/container.py:219
 msgid "Social networks info..."
 msgstr "Réseaux sociaux"
 
-#: src/pyams_content/features/share/zmi/container.py:217
+#: src/pyams_content/features/share/zmi/container.py:231
 msgid "Edit social networks properties"
 msgstr "Connexions aux réseaux sociaux"
 
-#: src/pyams_content/features/share/zmi/container.py:95
+#: src/pyams_content/features/share/zmi/container.py:96
 msgid "No currently defined social network share item."
 msgstr "Aucun mode de partage n'est actuellement défini."
 
@@ -2591,8 +2591,8 @@
 "temporaire"
 
 #: src/pyams_content/features/redirect/interfaces.py:56
-#: src/pyams_content/features/redirect/zmi/container.py:211
-#: src/pyams_content/features/redirect/zmi/container.py:435
+#: src/pyams_content/features/redirect/zmi/container.py:222
+#: src/pyams_content/features/redirect/zmi/container.py:454
 msgid "URL pattern"
 msgstr "Schéma d'URL"
 
@@ -2625,31 +2625,31 @@
 msgid "You must provide an internal reference OR a target URL"
 msgstr "Vous devez fournir une référence interne OU une URL de redirection !"
 
-#: src/pyams_content/features/redirect/zmi/container.py:68
+#: src/pyams_content/features/redirect/zmi/container.py:70
 msgid "Redirections"
 msgstr "Redirections"
 
-#: src/pyams_content/features/redirect/zmi/container.py:162
+#: src/pyams_content/features/redirect/zmi/container.py:167
 msgid "Enable/disable rule"
 msgstr "Activer/désactiver la règle"
 
-#: src/pyams_content/features/redirect/zmi/container.py:189
+#: src/pyams_content/features/redirect/zmi/container.py:199
 msgid "Chain/unchain rule"
 msgstr "Enchaîner la règle avec la suivante"
 
-#: src/pyams_content/features/redirect/zmi/container.py:286
+#: src/pyams_content/features/redirect/zmi/container.py:299
 msgid "Target"
 msgstr "Cible"
 
-#: src/pyams_content/features/redirect/zmi/container.py:315
+#: src/pyams_content/features/redirect/zmi/container.py:329
 msgid "Redirections list"
 msgstr "Liste des règles de redirection"
 
-#: src/pyams_content/features/redirect/zmi/container.py:330
+#: src/pyams_content/features/redirect/zmi/container.py:346
 msgid "Redirection rules"
 msgstr "Règles de redirection"
 
-#: src/pyams_content/features/redirect/zmi/container.py:331
+#: src/pyams_content/features/redirect/zmi/container.py:347
 msgid ""
 "Redirection rules are use to handle redirections responses when a request "
 "generates \n"
@@ -2686,64 +2686,64 @@
 "\", la nouvelle URL qu'elle génère est passée aux règles suivantes, jusqu'à "
 "ce qu'une règle s'applique à cette nouvelle URL.\n"
 
-#: src/pyams_content/features/redirect/zmi/container.py:357
+#: src/pyams_content/features/redirect/zmi/container.py:373
 msgid "Test"
 msgstr "Tester !"
 
-#: src/pyams_content/features/redirect/zmi/container.py:392
+#: src/pyams_content/features/redirect/zmi/container.py:408
 msgid "Test redirection rules"
 msgstr "Test des règles de redirection"
 
-#: src/pyams_content/features/redirect/zmi/container.py:370
+#: src/pyams_content/features/redirect/zmi/container.py:386
 msgid "Test URL"
 msgstr "URL à tester"
 
-#: src/pyams_content/features/redirect/zmi/container.py:373
+#: src/pyams_content/features/redirect/zmi/container.py:389
 msgid "Check inactive rules?"
 msgstr "Tester les règles inactive ?"
 
-#: src/pyams_content/features/redirect/zmi/container.py:374
+#: src/pyams_content/features/redirect/zmi/container.py:390
 msgid "If 'yes', inactive rules will also be tested"
 msgstr "Si 'oui', les règles inactives seront également testées"
 
-#: src/pyams_content/features/redirect/zmi/container.py:382
+#: src/pyams_content/features/redirect/zmi/container.py:398
 msgid "Close"
 msgstr "Fermer"
 
-#: src/pyams_content/features/redirect/zmi/container.py:383
+#: src/pyams_content/features/redirect/zmi/container.py:399
 msgid "Test rules"
 msgstr "Tester cette URL"
 
-#: src/pyams_content/features/redirect/zmi/container.py:124
+#: src/pyams_content/features/redirect/zmi/container.py:126
 msgid "No currently defined redirection rule."
 msgstr "Aucune règle de redirection n'est définie actuellement."
 
-#: src/pyams_content/features/redirect/zmi/container.py:251
+#: src/pyams_content/features/redirect/zmi/container.py:263
 msgid "Target has no published version"
 msgstr "Le contenu ciblé n'a aucune version publiée"
 
-#: src/pyams_content/features/redirect/zmi/container.py:440
+#: src/pyams_content/features/redirect/zmi/container.py:460
 msgid "No matching rule!"
 msgstr "Aucune règle ne correspond !"
 
-#: src/pyams_content/features/redirect/zmi/container.py:257
+#: src/pyams_content/features/redirect/zmi/container.py:269
 msgid "Target is published"
 msgstr "Le contenu ciblé est publié"
 
-#: src/pyams_content/features/redirect/zmi/container.py:260
+#: src/pyams_content/features/redirect/zmi/container.py:272
 msgid "Target is not published"
 msgstr "Le contenu ciblé n'est pas publié"
 
-#: src/pyams_content/features/redirect/zmi/container.py:297
+#: src/pyams_content/features/redirect/zmi/container.py:310
 #, python-format
 msgid "Internal reference: {0} (not found)"
 msgstr "Référence interne: {0} (non trouvée)"
 
-#: src/pyams_content/features/redirect/zmi/container.py:434
+#: src/pyams_content/features/redirect/zmi/container.py:453
 msgid "Input URL"
 msgstr "URL en entrée"
 
-#: src/pyams_content/features/redirect/zmi/container.py:436
+#: src/pyams_content/features/redirect/zmi/container.py:455
 msgid "Output URL"
 msgstr "URL générée"
 
@@ -3120,7 +3120,7 @@
 
 #: src/pyams_content/features/menu/portlet/navigation/interfaces/simple.py:32
 #: src/pyams_content/features/menu/portlet/navigation/interfaces/double.py:32
-#: src/pyams_content/features/search/portlet/interfaces.py:26
+#: src/pyams_content/features/search/portlet/interfaces.py:35
 msgid "Portlet main title"
 msgstr "Titre du composant"
 
@@ -3350,15 +3350,15 @@
 "Vous devez indiquer la cible de la recherche lorsque vous activez la "
 "recherche par collections !"
 
-#: src/pyams_content/features/search/portlet/__init__.py:97
+#: src/pyams_content/features/search/portlet/__init__.py:104
 msgid "Search results"
 msgstr "Résultats de la recherche"
 
-#: src/pyams_content/features/search/portlet/interfaces.py:29
+#: src/pyams_content/features/search/portlet/interfaces.py:38
 msgid "Allow empty query?"
 msgstr "Recherche sans critère ?"
 
-#: src/pyams_content/features/search/portlet/interfaces.py:30
+#: src/pyams_content/features/search/portlet/interfaces.py:39
 msgid ""
 "If 'no', no result will be displayed if user didn't entered a search string"
 msgstr ""
@@ -3384,12 +3384,12 @@
 msgid "No result found"
 msgstr "aucun"
 
-#: src/pyams_content/features/search/zmi/properties.py:51
+#: src/pyams_content/features/search/zmi/properties.py:53
 msgid "Main search settings"
 msgstr "Paramètres de la recherche"
 
-#: src/pyams_content/features/search/zmi/properties.py:71
-#: src/pyams_content/shared/site/zmi/folder.py:215
+#: src/pyams_content/features/search/zmi/properties.py:73
+#: src/pyams_content/shared/site/zmi/folder.py:230
 msgid "Navigation properties"
 msgstr "Propriétés de navigation"
 
@@ -3575,8 +3575,8 @@
 "groupe"
 
 #: src/pyams_content/root/zmi/sites.py:63
-#: src/pyams_content/shared/site/zmi/container.py:230
-#: src/pyams_content/shared/site/zmi/container.py:240
+#: src/pyams_content/shared/site/zmi/container.py:243
+#: src/pyams_content/shared/site/zmi/container.py:253
 msgid "Site tree"
 msgstr "Arborescence"
 
@@ -4766,108 +4766,108 @@
 msgid "Maximum number of results that the view may retrieve"
 msgstr "Nombre maximal de résultats que la vue doit renvoyer"
 
-#: src/pyams_content/shared/view/interfaces.py:208
+#: src/pyams_content/shared/view/interfaces.py:209
 msgid "Always include selected internal references"
 msgstr "Toujours inclure toutes les références internes"
 
-#: src/pyams_content/shared/view/interfaces.py:209
+#: src/pyams_content/shared/view/interfaces.py:210
 msgid "Include selected internal references only if view is empty"
 msgstr "Inclure les références internes seulement lorsque la vue est vide"
 
-#: src/pyams_content/shared/view/interfaces.py:210
+#: src/pyams_content/shared/view/interfaces.py:211
 msgid "Include ONLY selected references (no search will be made)"
 msgstr ""
 "N'inclure QUE les références internes (aucune autre filtre de recherche ne "
 "sera appliqué)"
 
-#: src/pyams_content/shared/view/interfaces.py:219
+#: src/pyams_content/shared/view/interfaces.py:220
 msgid "Select context references?"
 msgstr "Références du contexte ?"
 
-#: src/pyams_content/shared/view/interfaces.py:220
+#: src/pyams_content/shared/view/interfaces.py:221
 msgid "If 'non', references imposed by the context will not be used"
 msgstr ""
 "Si 'non', les références imposées au niveau du contexte d'application de la "
 "vue ne seront pas prises en compte"
 
-#: src/pyams_content/shared/view/interfaces.py:224
+#: src/pyams_content/shared/view/interfaces.py:225
 msgid "Other references"
 msgstr "Autres références"
 
-#: src/pyams_content/shared/view/interfaces.py:225
+#: src/pyams_content/shared/view/interfaces.py:226
 msgid "List of internal references"
 msgstr "Liste de références internes vers des contenus imposés à la vue"
 
-#: src/pyams_content/shared/view/interfaces.py:228
+#: src/pyams_content/shared/view/interfaces.py:229
 msgid "Internal references usage"
 msgstr "Utilisation des références internes"
 
-#: src/pyams_content/shared/view/interfaces.py:229
+#: src/pyams_content/shared/view/interfaces.py:230
 msgid "Specify how selected references are included into view results"
 msgstr ""
 "Indique comment les références internes indiquées seront intégrées à la "
 "liste des résultats"
 
-#: src/pyams_content/shared/view/interfaces.py:234
+#: src/pyams_content/shared/view/interfaces.py:235
 msgid "Exclude context?"
 msgstr "Exclure le contexte ?"
 
-#: src/pyams_content/shared/view/interfaces.py:235
+#: src/pyams_content/shared/view/interfaces.py:236
 msgid "If 'yes', context will be excluded from results list"
 msgstr ""
 "Si 'oui', le contexte d'application de la vue sera automatiquement exclu de "
 "la liste des résultats"
 
-#: src/pyams_content/shared/view/interfaces.py:249
+#: src/pyams_content/shared/view/interfaces.py:250
 msgid "Select context tags?"
 msgstr "Tags du contexte ?"
 
-#: src/pyams_content/shared/view/interfaces.py:250
+#: src/pyams_content/shared/view/interfaces.py:251
 msgid "If 'yes', tags will be extracted from context"
 msgstr ""
 "Si 'oui', les tags associés au contexte d'application de la vue seront "
 "automatiquement sélectionnés"
 
-#: src/pyams_content/shared/view/interfaces.py:254
+#: src/pyams_content/shared/view/interfaces.py:255
 msgid "Other tags"
 msgstr "Autres tags"
 
-#: src/pyams_content/shared/view/interfaces.py:270
+#: src/pyams_content/shared/view/interfaces.py:271
 msgid "Select context themes?"
 msgstr "Thèmes du contexte ?"
 
-#: src/pyams_content/shared/view/interfaces.py:271
+#: src/pyams_content/shared/view/interfaces.py:272
 msgid "If 'yes', themes will be extracted from context"
 msgstr ""
 "Si 'oui', les thèmes associés au contexte d'application de la vue seront "
 "automatiquement sélectionnés"
 
-#: src/pyams_content/shared/view/interfaces.py:275
+#: src/pyams_content/shared/view/interfaces.py:276
 msgid "Other themes"
 msgstr "Autres thèmes"
 
-#: src/pyams_content/shared/view/interfaces.py:278
-msgid "Include all subthemes?"
-msgstr "Inclure tous les sous-thèmes ?"
-
 #: src/pyams_content/shared/view/interfaces.py:279
+msgid "Include all subthemes?"
+msgstr "Inclure tous les sous-thèmes ?"
+
+#: src/pyams_content/shared/view/interfaces.py:280
 msgid ""
 "If 'yes', subthemes of selected themes will also be used to search contents"
 msgstr ""
-"Si 'oui', les sous-thèmes des thèmes sélectionnés seront également utilisés pour effectuer "
-"la recherche de contenus"
-
-#: src/pyams_content/shared/view/interfaces.py:297
+"Si 'oui', les sous-thèmes des thèmes sélectionnés seront également utilisés "
+"pour effectuer la recherche de contenus"
+
+#: src/pyams_content/shared/view/interfaces.py:298
 msgid "Select context collections?"
 msgstr "Collections du contexte ?"
 
-#: src/pyams_content/shared/view/interfaces.py:298
+#: src/pyams_content/shared/view/interfaces.py:299
 msgid "If 'yes', collections will be extracted from context"
 msgstr ""
 "Si 'oui', les collections associées au contexte d'application de la vue "
 "seront automatiquement sélectionnés"
 
-#: src/pyams_content/shared/view/interfaces.py:303
+#: src/pyams_content/shared/view/interfaces.py:304
 msgid "Other collections"
 msgstr "Autres collections"
 
@@ -5005,7 +5005,7 @@
 msgid "Main view settings"
 msgstr "Paramètres de la vue"
 
-#: src/pyams_content/shared/view/zmi/properties.py:69
+#: src/pyams_content/shared/view/zmi/properties.py:70
 msgid ""
 "These settings apply to search made by the view.\n"
 "\n"
@@ -5123,13 +5123,13 @@
 
 #: src/pyams_content/shared/blog/zmi/manager.py:183
 #: src/pyams_content/shared/blog/zmi/manager.py:195
-#: src/pyams_content/shared/site/zmi/container.py:156
-#: src/pyams_content/shared/site/zmi/container.py:168
+#: src/pyams_content/shared/site/zmi/container.py:161
+#: src/pyams_content/shared/site/zmi/container.py:173
 msgid "Publication dates..."
 msgstr "Dates de publication"
 
 #: src/pyams_content/shared/blog/zmi/manager.py:209
-#: src/pyams_content/shared/site/zmi/container.py:182
+#: src/pyams_content/shared/site/zmi/container.py:187
 msgid "Update publication dates"
 msgstr "Dates de publication"
 
@@ -5160,6 +5160,11 @@
 msgid "Blog post « {title} »"
 msgstr "Article « {title} »"
 
+#: src/pyams_content/shared/common/types.py:186
+#, python-format
+msgid "-- missing value ({}) --"
+msgstr "-- valeur manquante ({}) --"
+
 #: src/pyams_content/shared/common/__init__.py:274
 #: src/pyams_content/shared/common/zmi/properties.py:66
 #: src/pyams_content/shared/common/zmi/manager.py:96
@@ -6558,10 +6563,12 @@
 msgstr "Si 'non', aucun chapô de navigation ne sera pas affiché"
 
 #: src/pyams_content/shared/site/interfaces.py:196
+#: src/pyams_content/shared/hub/interfaces.py:42
 msgid "Navigation header"
 msgstr "Chapô de navigation"
 
 #: src/pyams_content/shared/site/interfaces.py:197
+#: src/pyams_content/shared/hub/interfaces.py:43
 msgid ""
 "Alternate content's header displayed in navigation pages; original header "
 "will be used if none is specified"
@@ -6600,78 +6607,78 @@
 msgid "Navigation button title:"
 msgstr "Titre des boutons de navigation :"
 
-#: src/pyams_content/shared/site/zmi/container.py:367
-#: src/pyams_content/shared/site/zmi/container.py:207
+#: src/pyams_content/shared/site/zmi/container.py:380
+#: src/pyams_content/shared/site/zmi/container.py:220
 msgid "Visible element?"
 msgstr "Élément visible ?"
 
-#: src/pyams_content/shared/site/zmi/container.py:368
+#: src/pyams_content/shared/site/zmi/container.py:381
 msgid "Switch element visibility"
 msgstr "Cliquez pour rendre l'élément visible ou non"
 
-#: src/pyams_content/shared/site/zmi/container.py:442
+#: src/pyams_content/shared/site/zmi/container.py:455
 msgid "Folders and topics"
 msgstr "Rubriquage"
 
-#: src/pyams_content/shared/site/zmi/container.py:480
+#: src/pyams_content/shared/site/zmi/container.py:493
 msgid "Content"
 msgstr "Contenu"
 
-#: src/pyams_content/shared/site/zmi/container.py:590
+#: src/pyams_content/shared/site/zmi/container.py:603
 msgid "Delete site item"
 msgstr "Supprimer ce contenu"
 
-#: src/pyams_content/shared/site/zmi/container.py:104
-#: src/pyams_content/shared/site/zmi/container.py:111
-#: src/pyams_content/shared/site/zmi/container.py:101
+#: src/pyams_content/shared/site/zmi/container.py:109
+#: src/pyams_content/shared/site/zmi/container.py:116
+#: src/pyams_content/shared/site/zmi/container.py:106
 #: src/pyams_content/workflow/__init__.py:82
 #: src/pyams_content/workflow/basic.py:60
 msgid "Published"
 msgstr "Publié"
 
-#: src/pyams_content/shared/site/zmi/container.py:105
-#: src/pyams_content/shared/site/zmi/container.py:99
+#: src/pyams_content/shared/site/zmi/container.py:110
+#: src/pyams_content/shared/site/zmi/container.py:104
 #, python-format
 msgid "{state} since {from_date}"
 msgstr "{state} depuis {from_date}"
 
-#: src/pyams_content/shared/site/zmi/container.py:108
+#: src/pyams_content/shared/site/zmi/container.py:113
 msgid "To be published"
 msgstr "Publication"
 
-#: src/pyams_content/shared/site/zmi/container.py:109
+#: src/pyams_content/shared/site/zmi/container.py:114
 #, python-format
 msgid "{state} from {from_date} to {to_date}"
 msgstr "{state} {from_date}, retrait automatique {to_date}"
 
-#: src/pyams_content/shared/site/zmi/container.py:112
+#: src/pyams_content/shared/site/zmi/container.py:117
 #, python-format
 msgid "{state} after {to_date}"
 msgstr "{state} après {to_date}"
 
-#: src/pyams_content/shared/site/zmi/container.py:119
+#: src/pyams_content/shared/site/zmi/container.py:124
 msgid "Not published"
 msgstr "Non publié actuellement"
 
-#: src/pyams_content/shared/site/zmi/container.py:451
+#: src/pyams_content/shared/site/zmi/container.py:464
 msgid "Click to open/close all folders"
 msgstr "Afficher/masquer toutes les rubriques"
 
-#: src/pyams_content/shared/site/zmi/container.py:467
+#: src/pyams_content/shared/site/zmi/container.py:480
 msgid "Click to show/hide inner folders"
 msgstr "Cliquer pour afficher ou cache les sous-niveaux"
 
-#: src/pyams_content/shared/site/zmi/container.py:98
+#: src/pyams_content/shared/site/zmi/container.py:103
 #: src/pyams_content/workflow/__init__.py:84
 msgid "Retired"
 msgstr "Retiré"
 
-#: src/pyams_content/shared/site/zmi/container.py:102
+#: src/pyams_content/shared/site/zmi/container.py:107
 #, python-format
 msgid "{state} since {from_date} until {to_date}"
 msgstr "{state} depuis {from_date}, retrait automatique {to_date}"
 
-#: src/pyams_content/shared/site/zmi/container.py:322
+#: src/pyams_content/shared/site/zmi/container.py:335
 msgid "Can't reparent object to one of it's children. Reloading..."
 msgstr ""
 "Impossible de déplacer une rubrique dans l'une de ses sous-rubriques ou "
@@ -6687,7 +6694,7 @@
 msgstr "Ajouter un site"
 
 #: src/pyams_content/shared/site/zmi/manager.py:163
-#: src/pyams_content/shared/site/zmi/folder.py:197
+#: src/pyams_content/shared/site/zmi/folder.py:200
 msgid "Site folder properties"
 msgstr "Propriétés de la rubrique"
 
@@ -6703,28 +6710,28 @@
 msgid "Add site folder..."
 msgstr "Rubrique"
 
-#: src/pyams_content/shared/site/zmi/folder.py:94
+#: src/pyams_content/shared/site/zmi/folder.py:95
 msgid "Add site folder"
 msgstr "Ajout d'une rubrique"
 
-#: src/pyams_content/shared/site/zmi/folder.py:161
+#: src/pyams_content/shared/site/zmi/folder.py:163
 msgid "Site folder management"
 msgstr "Gérer cette rubrique"
 
 #: src/pyams_content/shared/site/zmi/folder.py:75
 #: src/pyams_content/shared/site/zmi/link.py:78
-#: src/pyams_content/shared/site/zmi/link.py:231
+#: src/pyams_content/shared/site/zmi/link.py:235
 #: src/pyams_content/shared/site/zmi/__init__.py:63
 msgid "Parent"
 msgstr "Niveau parent"
 
 #: src/pyams_content/shared/site/zmi/folder.py:76
 #: src/pyams_content/shared/site/zmi/link.py:79
-#: src/pyams_content/shared/site/zmi/link.py:232
+#: src/pyams_content/shared/site/zmi/link.py:236
 msgid "Folder's parent"
 msgstr "Niveau de rattachement de cette rubrique"
 
-#: src/pyams_content/shared/site/zmi/folder.py:154
+#: src/pyams_content/shared/site/zmi/folder.py:155
 msgid "You must provide a folder name for default server language!"
 msgstr ""
 "Vous devez fournir un nom pour ce dossier pour la langue par défaut du "
@@ -6734,28 +6741,28 @@
 msgid "Rent content..."
 msgstr "Lien interne"
 
-#: src/pyams_content/shared/site/zmi/link.py:89
+#: src/pyams_content/shared/site/zmi/link.py:90
 msgid "Rent existing content"
 msgstr "Ajouter un lien interne"
 
-#: src/pyams_content/shared/site/zmi/link.py:170
+#: src/pyams_content/shared/site/zmi/link.py:172
 msgid "Edit content link properties"
 msgstr "Propriétés du lien interne"
 
-#: src/pyams_content/shared/site/zmi/link.py:222
+#: src/pyams_content/shared/site/zmi/link.py:226
 msgid "External content link..."
 msgstr "Lien externe"
 
-#: src/pyams_content/shared/site/zmi/link.py:242
+#: src/pyams_content/shared/site/zmi/link.py:247
 msgid "Link external content"
 msgstr "Ajouter un lien externe"
 
-#: src/pyams_content/shared/site/zmi/link.py:306
+#: src/pyams_content/shared/site/zmi/link.py:313
 msgid "Edit external content link properties"
 msgstr "Propriétés du lien externe"
 
-#: src/pyams_content/shared/site/zmi/link.py:113
-#: src/pyams_content/shared/site/zmi/link.py:187
+#: src/pyams_content/shared/site/zmi/link.py:115
+#: src/pyams_content/shared/site/zmi/link.py:190
 msgid "Show navigation header"
 msgstr "Afficher le chapô"
 
--- a/src/pyams_content/locales/pyams_content.pot	Tue Jan 12 13:37:48 2021 +0100
+++ b/src/pyams_content/locales/pyams_content.pot	Wed Jan 13 14:08:53 2021 +0100
@@ -1,12 +1,12 @@
 #
 # SOME DESCRIPTIVE TITLE
 # This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2021.
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2020-11-13 09:24+0100\n"
+"POT-Creation-Date: 2021-01-13 11:29+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"
@@ -194,7 +194,7 @@
 #: ./src/pyams_content/interfaces/__init__.py:101
 #: ./src/pyams_content/features/menu/portlet/navigation/interfaces/simple.py:31
 #: ./src/pyams_content/features/menu/portlet/navigation/interfaces/double.py:31
-#: ./src/pyams_content/features/search/portlet/interfaces.py:25
+#: ./src/pyams_content/features/search/portlet/interfaces.py:34
 #: ./src/pyams_content/root/zmi/templates/advanced-search.pt:204
 #: ./src/pyams_content/shared/view/portlet/interfaces.py:52
 #: ./src/pyams_content/shared/common/zmi/dashboard.py:128
@@ -838,7 +838,7 @@
 msgstr ""
 
 #: ./src/pyams_content/component/links/__init__.py:265
-#: ./src/pyams_content/features/redirect/zmi/container.py:278
+#: ./src/pyams_content/features/redirect/zmi/container.py:290
 msgid "External link"
 msgstr ""
 
@@ -879,13 +879,13 @@
 msgstr ""
 
 #: ./src/pyams_content/component/links/interfaces.py:55
-#: ./src/pyams_content/features/search/portlet/interfaces.py:41
+#: ./src/pyams_content/features/search/portlet/interfaces.py:50
 #: ./src/pyams_content/shared/view/portlet/interfaces.py:99
 msgid "Force canonical URL?"
 msgstr ""
 
 #: ./src/pyams_content/component/links/interfaces.py:56
-#: ./src/pyams_content/features/search/portlet/interfaces.py:42
+#: ./src/pyams_content/features/search/portlet/interfaces.py:51
 #: ./src/pyams_content/shared/view/portlet/interfaces.py:100
 msgid ""
 "By default, internal links use a \"relative\" URL, which tries to display "
@@ -2150,7 +2150,7 @@
 msgstr ""
 
 #: ./src/pyams_content/features/share/interfaces.py:32
-#: ./src/pyams_content/features/share/zmi/container.py:227
+#: ./src/pyams_content/features/share/zmi/container.py:241
 msgid "Twitter account"
 msgstr ""
 
@@ -2171,7 +2171,7 @@
 msgstr ""
 
 #: ./src/pyams_content/features/share/interfaces.py:43
-#: ./src/pyams_content/features/share/zmi/container.py:231
+#: ./src/pyams_content/features/share/zmi/container.py:245
 msgid "Facebook account"
 msgstr ""
 
@@ -2196,7 +2196,7 @@
 msgstr ""
 
 #: ./src/pyams_content/features/share/interfaces.py:62
-#: ./src/pyams_content/features/share/zmi/container.py:155
+#: ./src/pyams_content/features/share/zmi/container.py:165
 #: ./src/pyams_content/features/menu/zmi/__init__.py:217
 #: ./src/pyams_content/shared/form/interfaces.py:121
 #: ./src/pyams_content/shared/form/zmi/field.py:172
@@ -2248,35 +2248,35 @@
 msgid "Allow sharing"
 msgstr ""
 
-#: ./src/pyams_content/features/share/zmi/container.py:55
+#: ./src/pyams_content/features/share/zmi/container.py:56
 msgid "Network shares..."
 msgstr ""
 
-#: ./src/pyams_content/features/share/zmi/container.py:133
+#: ./src/pyams_content/features/share/zmi/container.py:138
 msgid "Enable/disable item"
 msgstr ""
 
-#: ./src/pyams_content/features/share/zmi/container.py:173
-#: ./src/pyams_content/features/share/zmi/container.py:188
+#: ./src/pyams_content/features/share/zmi/container.py:184
+#: ./src/pyams_content/features/share/zmi/container.py:201
 msgid "Social networks share"
 msgstr ""
 
-#: ./src/pyams_content/features/share/zmi/container.py:189
+#: ./src/pyams_content/features/share/zmi/container.py:202
 msgid ""
 "Social networks share items are used to define share options available on your contents.\n"
 "    \n"
 "**WARNING**: don't forget to include a toolbox in your presentation template to display social networks shares!!\n"
 msgstr ""
 
-#: ./src/pyams_content/features/share/zmi/container.py:205
+#: ./src/pyams_content/features/share/zmi/container.py:219
 msgid "Social networks info..."
 msgstr ""
 
-#: ./src/pyams_content/features/share/zmi/container.py:217
+#: ./src/pyams_content/features/share/zmi/container.py:231
 msgid "Edit social networks properties"
 msgstr ""
 
-#: ./src/pyams_content/features/share/zmi/container.py:95
+#: ./src/pyams_content/features/share/zmi/container.py:96
 msgid "No currently defined social network share item."
 msgstr ""
 
@@ -2430,8 +2430,8 @@
 msgstr ""
 
 #: ./src/pyams_content/features/redirect/interfaces.py:56
-#: ./src/pyams_content/features/redirect/zmi/container.py:211
-#: ./src/pyams_content/features/redirect/zmi/container.py:435
+#: ./src/pyams_content/features/redirect/zmi/container.py:222
+#: ./src/pyams_content/features/redirect/zmi/container.py:454
 msgid "URL pattern"
 msgstr ""
 
@@ -2461,31 +2461,31 @@
 msgid "You must provide an internal reference OR a target URL"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:68
+#: ./src/pyams_content/features/redirect/zmi/container.py:70
 msgid "Redirections"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:162
+#: ./src/pyams_content/features/redirect/zmi/container.py:167
 msgid "Enable/disable rule"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:189
+#: ./src/pyams_content/features/redirect/zmi/container.py:199
 msgid "Chain/unchain rule"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:286
+#: ./src/pyams_content/features/redirect/zmi/container.py:299
 msgid "Target"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:315
+#: ./src/pyams_content/features/redirect/zmi/container.py:329
 msgid "Redirections list"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:330
+#: ./src/pyams_content/features/redirect/zmi/container.py:346
 msgid "Redirection rules"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:331
+#: ./src/pyams_content/features/redirect/zmi/container.py:347
 msgid ""
 "Redirection rules are use to handle redirections responses when a request generates \n"
 "a famous « 404 NotFound » error.\n"
@@ -2501,64 +2501,64 @@
 "next rule, until a matching rule is found.\n"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:357
+#: ./src/pyams_content/features/redirect/zmi/container.py:373
 msgid "Test"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:392
+#: ./src/pyams_content/features/redirect/zmi/container.py:408
 msgid "Test redirection rules"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:370
+#: ./src/pyams_content/features/redirect/zmi/container.py:386
 msgid "Test URL"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:373
+#: ./src/pyams_content/features/redirect/zmi/container.py:389
 msgid "Check inactive rules?"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:374
+#: ./src/pyams_content/features/redirect/zmi/container.py:390
 msgid "If 'yes', inactive rules will also be tested"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:382
+#: ./src/pyams_content/features/redirect/zmi/container.py:398
 msgid "Close"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:383
+#: ./src/pyams_content/features/redirect/zmi/container.py:399
 msgid "Test rules"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:124
+#: ./src/pyams_content/features/redirect/zmi/container.py:126
 msgid "No currently defined redirection rule."
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:251
+#: ./src/pyams_content/features/redirect/zmi/container.py:263
 msgid "Target has no published version"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:440
+#: ./src/pyams_content/features/redirect/zmi/container.py:460
 msgid "No matching rule!"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:257
+#: ./src/pyams_content/features/redirect/zmi/container.py:269
 msgid "Target is published"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:260
+#: ./src/pyams_content/features/redirect/zmi/container.py:272
 msgid "Target is not published"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:297
+#: ./src/pyams_content/features/redirect/zmi/container.py:310
 #, python-format
 msgid "Internal reference: {0} (not found)"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:434
+#: ./src/pyams_content/features/redirect/zmi/container.py:453
 msgid "Input URL"
 msgstr ""
 
-#: ./src/pyams_content/features/redirect/zmi/container.py:436
+#: ./src/pyams_content/features/redirect/zmi/container.py:455
 msgid "Output URL"
 msgstr ""
 
@@ -2876,7 +2876,7 @@
 
 #: ./src/pyams_content/features/menu/portlet/navigation/interfaces/simple.py:32
 #: ./src/pyams_content/features/menu/portlet/navigation/interfaces/double.py:32
-#: ./src/pyams_content/features/search/portlet/interfaces.py:26
+#: ./src/pyams_content/features/search/portlet/interfaces.py:35
 msgid "Portlet main title"
 msgstr ""
 
@@ -3076,15 +3076,15 @@
 msgid "You must specify search target when activating search by collections!"
 msgstr ""
 
-#: ./src/pyams_content/features/search/portlet/__init__.py:97
+#: ./src/pyams_content/features/search/portlet/__init__.py:104
 msgid "Search results"
 msgstr ""
 
-#: ./src/pyams_content/features/search/portlet/interfaces.py:29
+#: ./src/pyams_content/features/search/portlet/interfaces.py:38
 msgid "Allow empty query?"
 msgstr ""
 
-#: ./src/pyams_content/features/search/portlet/interfaces.py:30
+#: ./src/pyams_content/features/search/portlet/interfaces.py:39
 msgid ""
 "If 'no', no result will be displayed if user didn't entered a search string"
 msgstr ""
@@ -3108,12 +3108,12 @@
 msgid "No result found"
 msgstr ""
 
-#: ./src/pyams_content/features/search/zmi/properties.py:51
+#: ./src/pyams_content/features/search/zmi/properties.py:53
 msgid "Main search settings"
 msgstr ""
 
-#: ./src/pyams_content/features/search/zmi/properties.py:71
-#: ./src/pyams_content/shared/site/zmi/folder.py:215
+#: ./src/pyams_content/features/search/zmi/properties.py:73
+#: ./src/pyams_content/shared/site/zmi/folder.py:230
 msgid "Navigation properties"
 msgstr ""
 
@@ -3295,8 +3295,8 @@
 msgstr ""
 
 #: ./src/pyams_content/root/zmi/sites.py:63
-#: ./src/pyams_content/shared/site/zmi/container.py:230
-#: ./src/pyams_content/shared/site/zmi/container.py:240
+#: ./src/pyams_content/shared/site/zmi/container.py:243
+#: ./src/pyams_content/shared/site/zmi/container.py:253
 msgid "Site tree"
 msgstr ""
 
@@ -4408,92 +4408,92 @@
 msgid "Maximum number of results that the view may retrieve"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces.py:208
+#: ./src/pyams_content/shared/view/interfaces.py:209
 msgid "Always include selected internal references"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces.py:209
-msgid "Include selected internal references only if view is empty"
-msgstr ""
-
 #: ./src/pyams_content/shared/view/interfaces.py:210
+msgid "Include selected internal references only if view is empty"
+msgstr ""
+
+#: ./src/pyams_content/shared/view/interfaces.py:211
 msgid "Include ONLY selected references (no search will be made)"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces.py:219
-msgid "Select context references?"
-msgstr ""
-
 #: ./src/pyams_content/shared/view/interfaces.py:220
+msgid "Select context references?"
+msgstr ""
+
+#: ./src/pyams_content/shared/view/interfaces.py:221
 msgid "If 'non', references imposed by the context will not be used"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces.py:224
-msgid "Other references"
-msgstr ""
-
 #: ./src/pyams_content/shared/view/interfaces.py:225
+msgid "Other references"
+msgstr ""
+
+#: ./src/pyams_content/shared/view/interfaces.py:226
 msgid "List of internal references"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces.py:228
-msgid "Internal references usage"
-msgstr ""
-
 #: ./src/pyams_content/shared/view/interfaces.py:229
+msgid "Internal references usage"
+msgstr ""
+
+#: ./src/pyams_content/shared/view/interfaces.py:230
 msgid "Specify how selected references are included into view results"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces.py:234
-msgid "Exclude context?"
-msgstr ""
-
 #: ./src/pyams_content/shared/view/interfaces.py:235
+msgid "Exclude context?"
+msgstr ""
+
+#: ./src/pyams_content/shared/view/interfaces.py:236
 msgid "If 'yes', context will be excluded from results list"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces.py:249
-msgid "Select context tags?"
-msgstr ""
-
 #: ./src/pyams_content/shared/view/interfaces.py:250
+msgid "Select context tags?"
+msgstr ""
+
+#: ./src/pyams_content/shared/view/interfaces.py:251
 msgid "If 'yes', tags will be extracted from context"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces.py:254
+#: ./src/pyams_content/shared/view/interfaces.py:255
 msgid "Other tags"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces.py:270
-msgid "Select context themes?"
-msgstr ""
-
 #: ./src/pyams_content/shared/view/interfaces.py:271
+msgid "Select context themes?"
+msgstr ""
+
+#: ./src/pyams_content/shared/view/interfaces.py:272
 msgid "If 'yes', themes will be extracted from context"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces.py:275
+#: ./src/pyams_content/shared/view/interfaces.py:276
 msgid "Other themes"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces.py:278
-msgid "Include all subthemes?"
-msgstr ""
-
 #: ./src/pyams_content/shared/view/interfaces.py:279
+msgid "Include all subthemes?"
+msgstr ""
+
+#: ./src/pyams_content/shared/view/interfaces.py:280
 msgid ""
 "If 'yes', subthemes of selected themes will also be used to search contents"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces.py:297
-msgid "Select context collections?"
-msgstr ""
-
 #: ./src/pyams_content/shared/view/interfaces.py:298
+msgid "Select context collections?"
+msgstr ""
+
+#: ./src/pyams_content/shared/view/interfaces.py:299
 msgid "If 'yes', collections will be extracted from context"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/interfaces.py:303
+#: ./src/pyams_content/shared/view/interfaces.py:304
 msgid "Other collections"
 msgstr ""
 
@@ -4606,7 +4606,7 @@
 msgid "Main view settings"
 msgstr ""
 
-#: ./src/pyams_content/shared/view/zmi/properties.py:69
+#: ./src/pyams_content/shared/view/zmi/properties.py:70
 msgid ""
 "These settings apply to search made by the view.\n"
 "\n"
@@ -4705,13 +4705,13 @@
 
 #: ./src/pyams_content/shared/blog/zmi/manager.py:183
 #: ./src/pyams_content/shared/blog/zmi/manager.py:195
-#: ./src/pyams_content/shared/site/zmi/container.py:156
-#: ./src/pyams_content/shared/site/zmi/container.py:168
+#: ./src/pyams_content/shared/site/zmi/container.py:161
+#: ./src/pyams_content/shared/site/zmi/container.py:173
 msgid "Publication dates..."
 msgstr ""
 
 #: ./src/pyams_content/shared/blog/zmi/manager.py:209
-#: ./src/pyams_content/shared/site/zmi/container.py:182
+#: ./src/pyams_content/shared/site/zmi/container.py:187
 msgid "Update publication dates"
 msgstr ""
 
@@ -4742,6 +4742,11 @@
 msgid "Blog post « {title} »"
 msgstr ""
 
+#: ./src/pyams_content/shared/common/types.py:186
+#, python-format
+msgid "-- missing value ({}) --"
+msgstr ""
+
 #: ./src/pyams_content/shared/common/__init__.py:274
 #: ./src/pyams_content/shared/common/zmi/properties.py:66
 #: ./src/pyams_content/shared/common/zmi/manager.py:96
@@ -5993,10 +5998,12 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/site/interfaces.py:196
+#: ./src/pyams_content/shared/hub/interfaces.py:42
 msgid "Navigation header"
 msgstr ""
 
 #: ./src/pyams_content/shared/site/interfaces.py:197
+#: ./src/pyams_content/shared/hub/interfaces.py:43
 msgid ""
 "Alternate content's header displayed in navigation pages; original header "
 "will be used if none is specified"
@@ -6028,78 +6035,78 @@
 msgid "Navigation button title:"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/container.py:367
-#: ./src/pyams_content/shared/site/zmi/container.py:207
+#: ./src/pyams_content/shared/site/zmi/container.py:380
+#: ./src/pyams_content/shared/site/zmi/container.py:220
 msgid "Visible element?"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/container.py:368
+#: ./src/pyams_content/shared/site/zmi/container.py:381
 msgid "Switch element visibility"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/container.py:442
+#: ./src/pyams_content/shared/site/zmi/container.py:455
 msgid "Folders and topics"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/container.py:480
+#: ./src/pyams_content/shared/site/zmi/container.py:493
 msgid "Content"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/container.py:590
+#: ./src/pyams_content/shared/site/zmi/container.py:603
 msgid "Delete site item"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/container.py:104
-#: ./src/pyams_content/shared/site/zmi/container.py:111
-#: ./src/pyams_content/shared/site/zmi/container.py:101
+#: ./src/pyams_content/shared/site/zmi/container.py:109
+#: ./src/pyams_content/shared/site/zmi/container.py:116
+#: ./src/pyams_content/shared/site/zmi/container.py:106
 #: ./src/pyams_content/workflow/__init__.py:82
 #: ./src/pyams_content/workflow/basic.py:60
 msgid "Published"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/container.py:105
-#: ./src/pyams_content/shared/site/zmi/container.py:99
+#: ./src/pyams_content/shared/site/zmi/container.py:110
+#: ./src/pyams_content/shared/site/zmi/container.py:104
 #, python-format
 msgid "{state} since {from_date}"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/container.py:108
+#: ./src/pyams_content/shared/site/zmi/container.py:113
 msgid "To be published"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/container.py:109
+#: ./src/pyams_content/shared/site/zmi/container.py:114
 #, python-format
 msgid "{state} from {from_date} to {to_date}"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/container.py:112
+#: ./src/pyams_content/shared/site/zmi/container.py:117
 #, python-format
 msgid "{state} after {to_date}"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/container.py:119
+#: ./src/pyams_content/shared/site/zmi/container.py:124
 msgid "Not published"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/container.py:451
+#: ./src/pyams_content/shared/site/zmi/container.py:464
 msgid "Click to open/close all folders"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/container.py:467
+#: ./src/pyams_content/shared/site/zmi/container.py:480
 msgid "Click to show/hide inner folders"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/container.py:98
+#: ./src/pyams_content/shared/site/zmi/container.py:103
 #: ./src/pyams_content/workflow/__init__.py:84
 msgid "Retired"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/container.py:102
+#: ./src/pyams_content/shared/site/zmi/container.py:107
 #, python-format
 msgid "{state} since {from_date} until {to_date}"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/container.py:322
+#: ./src/pyams_content/shared/site/zmi/container.py:335
 msgid "Can't reparent object to one of it's children. Reloading..."
 msgstr ""
 
@@ -6113,7 +6120,7 @@
 msgstr ""
 
 #: ./src/pyams_content/shared/site/zmi/manager.py:163
-#: ./src/pyams_content/shared/site/zmi/folder.py:197
+#: ./src/pyams_content/shared/site/zmi/folder.py:200
 msgid "Site folder properties"
 msgstr ""
 
@@ -6129,28 +6136,28 @@
 msgid "Add site folder..."
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/folder.py:94
+#: ./src/pyams_content/shared/site/zmi/folder.py:95
 msgid "Add site folder"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/folder.py:161
+#: ./src/pyams_content/shared/site/zmi/folder.py:163
 msgid "Site folder management"
 msgstr ""
 
 #: ./src/pyams_content/shared/site/zmi/folder.py:75
 #: ./src/pyams_content/shared/site/zmi/link.py:78
-#: ./src/pyams_content/shared/site/zmi/link.py:231
+#: ./src/pyams_content/shared/site/zmi/link.py:235
 #: ./src/pyams_content/shared/site/zmi/__init__.py:63
 msgid "Parent"
 msgstr ""
 
 #: ./src/pyams_content/shared/site/zmi/folder.py:76
 #: ./src/pyams_content/shared/site/zmi/link.py:79
-#: ./src/pyams_content/shared/site/zmi/link.py:232
+#: ./src/pyams_content/shared/site/zmi/link.py:236
 msgid "Folder's parent"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/folder.py:154
+#: ./src/pyams_content/shared/site/zmi/folder.py:155
 msgid "You must provide a folder name for default server language!"
 msgstr ""
 
@@ -6158,28 +6165,28 @@
 msgid "Rent content..."
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/link.py:89
+#: ./src/pyams_content/shared/site/zmi/link.py:90
 msgid "Rent existing content"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/link.py:170
+#: ./src/pyams_content/shared/site/zmi/link.py:172
 msgid "Edit content link properties"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/link.py:222
+#: ./src/pyams_content/shared/site/zmi/link.py:226
 msgid "External content link..."
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/link.py:242
+#: ./src/pyams_content/shared/site/zmi/link.py:247
 msgid "Link external content"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/link.py:306
+#: ./src/pyams_content/shared/site/zmi/link.py:313
 msgid "Edit external content link properties"
 msgstr ""
 
-#: ./src/pyams_content/shared/site/zmi/link.py:113
-#: ./src/pyams_content/shared/site/zmi/link.py:187
+#: ./src/pyams_content/shared/site/zmi/link.py:115
+#: ./src/pyams_content/shared/site/zmi/link.py:190
 msgid "Show navigation header"
 msgstr ""
 
--- a/src/pyams_content/shared/common/types.py	Tue Jan 12 13:37:48 2021 +0100
+++ b/src/pyams_content/shared/common/types.py	Wed Jan 13 14:08:53 2021 +0100
@@ -27,13 +27,12 @@
 from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget
 from pyams_content.component.theme.interfaces import IThemesInfo, IThemesTarget
 from pyams_content.interfaces import MANAGE_TOOL_PERMISSION
-from pyams_content.shared.common import IWfSharedContentFactory, WfSharedContent
-from pyams_content.shared.common.interfaces import ISharedContentFactory
+from pyams_content.shared.common import IWfSharedContentFactory
+from pyams_content.shared.common.interfaces import ISharedContentFactory, ISharedTool
 from pyams_content.shared.common.interfaces.types import ALL_DATA_TYPES_VOCABULARY, \
     DATA_MANAGER_ANNOTATION_KEY, DATA_SUBTYPES_VOCABULARY, DATA_TYPES_VOCABULARY, \
     DATA_TYPE_FIELDS_VOCABULARY, IBaseDataType, IDataType, ISubType, ITypedDataManager, \
     ITypedSharedTool, IWfTypedSharedContent
-from pyams_content.shared.common.manager import SharedTool
 from pyams_form.interfaces.form import IFormContextPermissionChecker
 from pyams_i18n.interfaces import II18n
 from pyams_sequence.reference import get_reference_target
@@ -47,6 +46,8 @@
 
 __docformat__ = 'restructuredtext'
 
+from pyams_content import _
+
 
 class BaseDataType(Persistent, Contained):
     """Base data type"""
@@ -66,7 +67,8 @@
     """Data sub-type persistent class"""
 
 
-@implementer(IDataType, IParagraphContainerTarget, IExtFileContainerTarget, ILinkContainerTarget, IThemesTarget)
+@implementer(IDataType, IParagraphContainerTarget, IExtFileContainerTarget,
+             ILinkContainerTarget, IThemesTarget)
 class DataType(BaseDataType, OrderedContainer):
     """Data type persistent class"""
 
@@ -164,33 +166,44 @@
         terms = []
         request = check_request()
         registry = get_local_registry()
-        for tool in registry.getAllUtilitiesRegisteredFor(ITypedSharedTool):
-            manager = ITypedDataManager(tool)
-            terms.extend([SimpleTerm(datatype.__name__,
-                                     title=II18n(datatype).query_attribute('label',
-                                                                           request=request))
-                          for datatype in manager.values()])
+        for tool in registry.getAllUtilitiesRegisteredFor(ISharedTool):
+            manager = ITypedDataManager(tool, None)
+            if manager is not None:
+                terms.extend([SimpleTerm(datatype.__name__,
+                                         title=II18n(datatype).query_attribute('label',
+                                                                               request=request))
+                              for datatype in manager.values()])
         terms.sort(key=lambda x: x.title)
-        super(AllTypedSharedToolDataTypesVocabulary, self).__init__(terms)
+        super().__init__(terms)
+
+    def getTermByToken(self, token):
+        try:
+            return super().getTermByToken(token)
+        except LookupError:
+            request = check_request()
+            translate = request.localizer.translate
+            return SimpleTerm(token,
+                              title=translate(_("-- missing value ({}) --")).format(token))
 
 
 def get_all_data_types(request):
     """Get list of all registered data types as JSON object"""
     results = []
     registry = get_local_registry()
-    for tool in sorted(registry.getAllUtilitiesRegisteredFor(ITypedSharedTool),
+    for tool in sorted(registry.getAllUtilitiesRegisteredFor(ISharedTool),
                        key=lambda x: II18n(x).query_attribute('title', request=request)):
-        manager = ITypedDataManager(tool)
-        terms = [{
-            'id': datatype.__name__,
-            'text': II18n(datatype).query_attribute('label', request=request)
-        } for datatype in manager.values()]
-        content_factory = IWfSharedContentFactory(ISharedContentFactory(tool))
-        results.append({
-            'text': request.localizer.translate(content_factory.content_name),
-            'disabled': True,
-            'children': terms
-        })
+        manager = ITypedDataManager(tool, None)
+        if manager is not None:
+            terms = [{
+                'id': datatype.__name__,
+                'text': II18n(datatype).query_attribute('label', request=request)
+            } for datatype in manager.values()]
+            content_factory = IWfSharedContentFactory(ISharedContentFactory(tool))
+            results.append({
+                'text': request.localizer.translate(content_factory.content_name),
+                'disabled': True,
+                'children': terms
+            })
     return results