# HG changeset patch # User Thierry Florac # Date 1593619538 -7200 # Node ID ed31bfcedddaa199606be61e5c35f03c20ae92ce # Parent 9479901b53a5bd197109a28b53a806b8984285d5 Updated dashboards "Content type" column diff -r 9479901b53a5 -r ed31bfceddda src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.mo Binary file src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.mo has changed diff -r 9479901b53a5 -r ed31bfceddda src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po --- a/src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po Wed Jul 01 14:10:50 2020 +0200 +++ b/src/pyams_content/locales/fr/LC_MESSAGES/pyams_content.po Wed Jul 01 18:05:38 2020 +0200 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE 1.0\n" -"POT-Creation-Date: 2020-06-24 12:02+0200\n" +"POT-Creation-Date: 2020-07-01 16:13+0200\n" "PO-Revision-Date: 2015-09-10 10:42+0200\n" "Last-Translator: Thierry Florac \n" "Language-Team: French\n" @@ -200,11 +200,11 @@ #: src/pyams_content/features/search/portlet/interfaces.py:25 #: src/pyams_content/root/zmi/templates/advanced-search.pt:197 #: src/pyams_content/shared/view/portlet/interfaces.py:52 -#: src/pyams_content/shared/common/zmi/dashboard.py:122 -#: src/pyams_content/shared/common/zmi/reverse.py:73 +#: src/pyams_content/shared/common/zmi/dashboard.py:128 +#: src/pyams_content/shared/common/zmi/reverse.py:69 #: src/pyams_content/shared/common/zmi/templates/advanced-search.pt:223 #: src/pyams_content/shared/site/portlet/interfaces.py:24 -#: src/pyams_content/shared/site/zmi/folder.py:66 +#: src/pyams_content/shared/site/zmi/folder.py:68 #: src/pyams_content/shared/imagemap/portlet/interfaces.py:28 #: src/pyams_content/shared/imagemap/zmi/container.py:123 #: src/pyams_content/shared/logo/interfaces.py:42 @@ -476,7 +476,7 @@ #: src/pyams_content/component/links/interfaces.py:36 #: src/pyams_content/component/paragraph/interfaces/audio.py:50 #: src/pyams_content/component/extfile/interfaces.py:36 -#: src/pyams_content/features/search/interfaces.py:45 +#: src/pyams_content/features/search/interfaces.py:50 #: src/pyams_content/shared/form/interfaces.py:125 msgid "Description" msgstr "Description" @@ -1779,7 +1779,7 @@ #: src/pyams_content/component/paragraph/zmi/__init__.py:262 #: src/pyams_content/component/paragraph/zmi/__init__.py:275 #: src/pyams_content/features/review/zmi/__init__.py:84 -#: src/pyams_content/shared/common/zmi/__init__.py:299 +#: src/pyams_content/shared/common/zmi/__init__.py:302 #: src/pyams_content/shared/common/zmi/owner.py:73 #: src/pyams_content/shared/common/zmi/workflow.py:119 #: src/pyams_content/shared/common/zmi/workflow.py:206 @@ -2120,9 +2120,9 @@ msgid "Add new illustration" msgstr "Ajout d'une illustration" -#: src/pyams_content/component/theme/__init__.py:76 -#: src/pyams_content/component/theme/interfaces.py:74 -#: src/pyams_content/component/theme/interfaces.py:88 +#: src/pyams_content/component/theme/__init__.py:73 +#: src/pyams_content/component/theme/interfaces.py:57 +#: src/pyams_content/component/theme/interfaces.py:71 #: src/pyams_content/component/theme/zmi/portlet.py:40 #: src/pyams_content/root/zmi/search.py:177 #: src/pyams_content/root/zmi/templates/advanced-search.pt:181 @@ -2130,160 +2130,100 @@ msgid "Tags" msgstr "Tags" -#: src/pyams_content/component/theme/__init__.py:126 -#: src/pyams_content/component/theme/interfaces.py:115 -#: src/pyams_content/component/theme/interfaces.py:129 +#: src/pyams_content/component/theme/__init__.py:124 +#: src/pyams_content/component/theme/interfaces.py:98 +#: src/pyams_content/component/theme/interfaces.py:112 #: src/pyams_content/component/theme/zmi/portlet.py:55 #: src/pyams_content/shared/common/zmi/search.py:197 msgid "Themes" msgstr "Thèmes" -#: src/pyams_content/component/theme/__init__.py:179 -#: src/pyams_content/component/theme/interfaces.py:175 -#: src/pyams_content/component/theme/interfaces.py:189 +#: src/pyams_content/component/theme/__init__.py:175 +#: src/pyams_content/component/theme/interfaces.py:139 +#: src/pyams_content/component/theme/interfaces.py:153 #: src/pyams_content/component/theme/zmi/portlet.py:70 #: src/pyams_content/shared/common/zmi/search.py:200 msgid "Collections" msgstr "Collections" -#: src/pyams_content/component/theme/__init__.py:85 +#: src/pyams_content/component/theme/__init__.py:83 msgid "no defined tag" msgstr "aucun tag défini" -#: src/pyams_content/component/theme/__init__.py:135 +#: src/pyams_content/component/theme/__init__.py:134 msgid "no defined theme" msgstr "aucun thème défini" -#: src/pyams_content/component/theme/__init__.py:188 +#: src/pyams_content/component/theme/__init__.py:185 msgid "no defined collection" msgstr "aucune collection définie" -#: src/pyams_content/component/theme/interfaces.py:36 -msgid "Enable search by tag?" -msgstr "Activer la recherche par tag ?" - -#: src/pyams_content/component/theme/interfaces.py:37 -msgid "" -"If 'yes', displayed tags will lead to a search engine displaying contents " -"matching given tag" -msgstr "" -"Si 'oui', un clic sur un tag permet d'accéder à une page de résultat de " -"recherche portant sur le tag sélectionné" - -#: src/pyams_content/component/theme/interfaces.py:42 -msgid "Tags search target" -msgstr "Cible de la recherche" - -#: src/pyams_content/component/theme/interfaces.py:43 -msgid "Site or folder where tags search is displayed" -msgstr "Site ou rubrique où la recherche par tags s'effectue" - -#: src/pyams_content/component/theme/interfaces.py:52 +#: src/pyams_content/component/theme/interfaces.py:35 msgid "Enable glossary?" msgstr "Activer le glossaire ?" -#: src/pyams_content/component/theme/interfaces.py:57 +#: src/pyams_content/component/theme/interfaces.py:40 msgid "Glossary thesaurus name" msgstr "Thesaurus du glossaire" -#: src/pyams_content/component/theme/interfaces.py:148 -msgid "Enable search by collection?" -msgstr "Activer la recherche par collection ?" - -#: src/pyams_content/component/theme/interfaces.py:149 -msgid "" -"If 'yes', displayed collections will lead to a search engine displaying " -"contents matching given collection" -msgstr "" -"Si 'oui', un clic sur un nom de collection permet d'accéder à une page de résultat de " -"recherche portant sur la collection sélectionnée" - -#: src/pyams_content/component/theme/interfaces.py:155 -msgid "Collections search target" -msgstr "Cible de la recherche" - -#: src/pyams_content/component/theme/interfaces.py:156 -msgid "Site or folder where collections search is displayed" -msgstr "Site ou rubrique où la recherche par collections s'effectue" - -#: src/pyams_content/component/theme/interfaces.py:50 -msgid "You must specify search target when activating search by tags!" -msgstr "" -"Vous devez indiquer la cible de la recherche lorsque vous activez la " -"recherche par tags !" - -#: src/pyams_content/component/theme/interfaces.py:64 +#: src/pyams_content/component/theme/interfaces.py:47 msgid "You must specify a glossary thesaurus to activate it!" msgstr "" "Vous devez indiquer le nom du thésaurus contenant les termes du glossaire " "pour pouvoir l'activer !" -#: src/pyams_content/component/theme/interfaces.py:164 -msgid "You must specify search target when activating search by collections!" -msgstr "" -"Vous devez indiquer la cible de la recherche lorsque vous activez la " -"recherche par collections !" - -#: src/pyams_content/component/theme/zmi/manager.py:46 +#: src/pyams_content/component/theme/zmi/manager.py:47 msgid "Tags settings..." msgstr "Paramétrage des tags" -#: src/pyams_content/component/theme/zmi/manager.py:60 +#: src/pyams_content/component/theme/zmi/manager.py:61 msgid "Selected tags" msgstr "Tags sélectionnés" -#: src/pyams_content/component/theme/zmi/manager.py:118 +#: src/pyams_content/component/theme/zmi/manager.py:111 msgid "Themes settings..." msgstr "Paramétrage des thèmes" -#: src/pyams_content/component/theme/zmi/manager.py:132 +#: src/pyams_content/component/theme/zmi/manager.py:125 msgid "Selected themes" msgstr "Thèmes sélectionnés" -#: src/pyams_content/component/theme/zmi/manager.py:169 +#: src/pyams_content/component/theme/zmi/manager.py:163 msgid "Collections settings..." msgstr "Paramétrage des collections" -#: src/pyams_content/component/theme/zmi/manager.py:183 +#: src/pyams_content/component/theme/zmi/manager.py:177 msgid "Selected collections" msgstr "Collections sélectionnées" #: src/pyams_content/component/theme/zmi/manager.py:94 -msgid "Enable search by tag" -msgstr "Activer la recherche par tag" - -#: src/pyams_content/component/theme/zmi/manager.py:101 msgid "Enable glossary" msgstr "Activer le glossaire" -#: src/pyams_content/component/theme/zmi/manager.py:217 -msgid "Enable search by collection" -msgstr "Activer la recherche par collection" - -#: src/pyams_content/component/theme/zmi/__init__.py:55 +#: src/pyams_content/component/theme/zmi/__init__.py:51 #: src/pyams_content/shared/view/zmi/theme.py:49 msgid "Tags..." msgstr "Tags" -#: src/pyams_content/component/theme/zmi/__init__.py:66 +#: src/pyams_content/component/theme/zmi/__init__.py:64 msgid "Content tags" msgstr "Tags du contenu" -#: src/pyams_content/component/theme/zmi/__init__.py:99 +#: src/pyams_content/component/theme/zmi/__init__.py:97 #: src/pyams_content/shared/view/zmi/theme.py:95 msgid "Themes..." msgstr "Thèmes" -#: src/pyams_content/component/theme/zmi/__init__.py:107 +#: src/pyams_content/component/theme/zmi/__init__.py:105 msgid "Content themes" msgstr "Thèmes du contenu" -#: src/pyams_content/component/theme/zmi/__init__.py:159 +#: src/pyams_content/component/theme/zmi/__init__.py:157 #: src/pyams_content/shared/view/zmi/theme.py:141 msgid "Collections..." msgstr "Collections" -#: src/pyams_content/component/theme/zmi/__init__.py:172 +#: src/pyams_content/component/theme/zmi/__init__.py:170 msgid "Content collections" msgstr "Collections associées au contenu" @@ -2301,7 +2241,7 @@ "seront remplacées automatiquement." #: src/pyams_content/interfaces/__init__.py:102 -#: src/pyams_content/shared/site/zmi/folder.py:67 +#: src/pyams_content/shared/site/zmi/folder.py:69 msgid "Visible label used to display content" msgstr "Le titre présenté aux internautes" @@ -3209,11 +3149,11 @@ msgid "Search folder" msgstr "Moteur de recherche" -#: src/pyams_content/features/search/interfaces.py:35 +#: src/pyams_content/features/search/interfaces.py:37 msgid "Main search engine" msgstr "Moteur de recherche principal" -#: src/pyams_content/features/search/interfaces.py:36 +#: src/pyams_content/features/search/interfaces.py:38 msgid "" "Search folder handling main site search. You can search a reference using " "'+' followed by internal number, of by entering text matching content title." @@ -3223,25 +3163,65 @@ "d'un '+') ; le titre d'origine peut être modifié en utilisant le titre de " "substitution." -#: src/pyams_content/features/search/interfaces.py:41 +#: src/pyams_content/features/search/interfaces.py:46 msgid "Search engine name" msgstr "Nom du moteur" -#: src/pyams_content/features/search/interfaces.py:42 +#: src/pyams_content/features/search/interfaces.py:47 msgid "Name given to the search engine" msgstr "Nom court donné au moteur de recherche" -#: src/pyams_content/features/search/interfaces.py:46 +#: src/pyams_content/features/search/interfaces.py:51 msgid "Description given to the search engine" msgstr "Description du moteur de recherche" -#: src/pyams_content/features/search/interfaces.py:53 +#: src/pyams_content/features/search/interfaces.py:54 +msgid "Enable search by tag?" +msgstr "Activer la recherche par tag ?" + +#: src/pyams_content/features/search/interfaces.py:55 +msgid "" +"If 'yes', displayed tags will lead to a search engine displaying contents " +"matching given tag" +msgstr "" +"Si 'oui', un clic sur un tag permet d'accéder à une page de résultat de " +"recherche portant sur le tag sélectionné" + +#: src/pyams_content/features/search/interfaces.py:60 +msgid "Tags search target" +msgstr "Cible de la recherche" + +#: src/pyams_content/features/search/interfaces.py:61 +msgid "Site or folder where tags search is displayed" +msgstr "Site ou rubrique où la recherche par tags s'effectue" + +#: src/pyams_content/features/search/interfaces.py:72 +msgid "Enable search by collection?" +msgstr "Activer la recherche par collection ?" + +#: src/pyams_content/features/search/interfaces.py:73 +msgid "" +"If 'yes', displayed collections will lead to a search engine displaying " +"contents matching given collection" +msgstr "" +"Si 'oui', un clic sur un nom de collection permet d'accéder à une page de " +"résultat de recherche portant sur la collection sélectionnée" + +#: src/pyams_content/features/search/interfaces.py:79 +msgid "Collections search target" +msgstr "Cible de la recherche" + +#: src/pyams_content/features/search/interfaces.py:80 +msgid "Site or folder where collections search is displayed" +msgstr "Site ou rubrique où la recherche par collections s'effectue" + +#: src/pyams_content/features/search/interfaces.py:97 #: src/pyams_content/shared/common/interfaces/__init__.py:53 #: src/pyams_content/shared/common/interfaces/__init__.py:209 msgid "Managers" msgstr "Responsables" -#: src/pyams_content/features/search/interfaces.py:54 +#: src/pyams_content/features/search/interfaces.py:98 #: src/pyams_content/shared/common/interfaces/__init__.py:54 #: src/pyams_content/shared/common/interfaces/__init__.py:210 msgid "" @@ -3252,24 +3232,24 @@ "(comme la publication ou le retrait des contenus), dans la limite des " "restrictions qui leur sont imposées" -#: src/pyams_content/features/search/interfaces.py:59 +#: src/pyams_content/features/search/interfaces.py:103 #: src/pyams_content/shared/common/interfaces/__init__.py:65 #: src/pyams_content/shared/common/interfaces/__init__.py:221 msgid "Designers" msgstr "Designers" -#: src/pyams_content/features/search/interfaces.py:60 +#: src/pyams_content/features/search/interfaces.py:104 #: src/pyams_content/shared/common/interfaces/__init__.py:66 #: src/pyams_content/shared/common/interfaces/__init__.py:222 msgid "Designers are users which are allowed to manage presentation templates" msgstr "Les designers sont autorisés à configurer les modèles de présentation" -#: src/pyams_content/features/search/interfaces.py:64 +#: src/pyams_content/features/search/interfaces.py:109 #: src/pyams_content/shared/common/interfaces/__init__.py:233 msgid "Guests" msgstr "Invités" -#: src/pyams_content/features/search/interfaces.py:65 +#: src/pyams_content/features/search/interfaces.py:110 #: src/pyams_content/shared/common/interfaces/__init__.py:234 msgid "" "Guests are users which are allowed to view contents with restricted access" @@ -3277,12 +3257,12 @@ "Les invités sont autorisés à consulter des contenus dont l'accès a été " "restreint" -#: src/pyams_content/features/search/interfaces.py:73 +#: src/pyams_content/features/search/interfaces.py:119 #: src/pyams_content/shared/view/interfaces.py:111 msgid "Order by" msgstr "Ordre de tri" -#: src/pyams_content/features/search/interfaces.py:74 +#: src/pyams_content/features/search/interfaces.py:120 #: src/pyams_content/shared/view/interfaces.py:112 msgid "" "Property to use to sort results; publication date can be different from " @@ -3295,25 +3275,25 @@ "différente (la première date de publication est dans ce cas égale à la date " "la plus en arrière dans le temps des deux)" -#: src/pyams_content/features/search/interfaces.py:81 +#: src/pyams_content/features/search/interfaces.py:128 #: src/pyams_content/shared/site/interfaces.py:97 msgid "Visible in folders list" msgstr "Visible dans la liste des rubriques ?" -#: src/pyams_content/features/search/interfaces.py:82 +#: src/pyams_content/features/search/interfaces.py:129 #: src/pyams_content/shared/site/interfaces.py:98 msgid "If 'no', folder will not be displayed into folders list" msgstr "" "Si 'non', cette rubrique ne sera pas affichée dans la liste des rubriques " "affichée par un composant de navigation" -#: src/pyams_content/features/search/interfaces.py:86 +#: src/pyams_content/features/search/interfaces.py:134 #: src/pyams_content/shared/site/interfaces.py:102 #: src/pyams_content/shared/site/interfaces.py:171 msgid "Navigation title" msgstr "Titre de navigation" -#: src/pyams_content/features/search/interfaces.py:87 +#: src/pyams_content/features/search/interfaces.py:135 #: src/pyams_content/shared/site/interfaces.py:103 msgid "" "Folder's title displayed in navigation pages; original title will be used if " @@ -3322,27 +3302,39 @@ "Titre de substitution affiché dans les composants de navigation ; si rien " "n'est indiqué, le titre original de la rubrique sera utilisé" -#: src/pyams_content/features/search/interfaces.py:91 +#: src/pyams_content/features/search/interfaces.py:140 msgid "Selected content types" msgstr "Gabarits sélectionnés" -#: src/pyams_content/features/search/interfaces.py:92 +#: src/pyams_content/features/search/interfaces.py:141 msgid "Searched content types; leave empty for all" msgstr "" "Gabarits sélectionnés ; si cette sélection est vide, tous les gabarits " "seront pris en charge" -#: src/pyams_content/features/search/interfaces.py:96 +#: src/pyams_content/features/search/interfaces.py:145 msgid "Selected data types" msgstr "Types de contenus sélectionnés" -#: src/pyams_content/features/search/interfaces.py:97 +#: src/pyams_content/features/search/interfaces.py:146 msgid "Searched data types; leave empty for all" msgstr "" "Types de contenus sélectionnés ; si cette sélection est vide, tous les " "contenus (typés ou non) seront pris en charge" -#: src/pyams_content/features/search/portlet/__init__.py:97 +#: src/pyams_content/features/search/interfaces.py:70 +msgid "You must specify search target when activating search by tags!" +msgstr "" +"Vous devez indiquer la cible de la recherche lorsque vous activez la " +"recherche par tags !" + +#: src/pyams_content/features/search/interfaces.py:90 +msgid "You must specify search target when activating search by collections!" +msgstr "" +"Vous devez indiquer la cible de la recherche lorsque vous activez la " +"recherche par collections !" + +#: src/pyams_content/features/search/portlet/__init__.py:99 msgid "Search results" msgstr "Résultats de la recherche" @@ -3381,18 +3373,26 @@ msgstr "Paramètres de la recherche" #: src/pyams_content/features/search/zmi/properties.py:71 -#: src/pyams_content/shared/site/zmi/folder.py:203 +#: src/pyams_content/shared/site/zmi/folder.py:212 msgid "Navigation properties" msgstr "Propriétés de navigation" -#: src/pyams_content/features/search/zmi/manager.py:43 +#: src/pyams_content/features/search/zmi/manager.py:45 msgid "Search settings..." msgstr "Moteur de recherche" -#: src/pyams_content/features/search/zmi/manager.py:57 +#: src/pyams_content/features/search/zmi/manager.py:59 msgid "Search engine settings" msgstr "Paramétrage du moteur de recherche" +#: src/pyams_content/features/search/zmi/manager.py:74 +msgid "Enable search by tag" +msgstr "Activer la recherche par tag" + +#: src/pyams_content/features/search/zmi/manager.py:82 +msgid "Enable search by collection" +msgstr "Activer la recherche par collection" + #: src/pyams_content/features/search/zmi/__init__.py:59 msgid "This search folder" msgstr "Ce moteur de recherche" @@ -3531,7 +3531,7 @@ msgid "Admin. profile" msgstr "Profil intervenant" -#: src/pyams_content/root/__init__.py:65 +#: src/pyams_content/root/__init__.py:69 msgid "Site root" msgstr "Racine du site" @@ -3594,252 +3594,247 @@ msgstr "Accueil" #: src/pyams_content/root/zmi/__init__.py:110 -#: src/pyams_content/shared/common/zmi/dashboard.py:289 +#: src/pyams_content/shared/common/zmi/dashboard.py:304 msgid "Dashboard" msgstr "Tableau de bord" #: src/pyams_content/root/zmi/__init__.py:159 -#: src/pyams_content/shared/common/zmi/dashboard.py:345 +#: src/pyams_content/shared/common/zmi/dashboard.py:364 #, python-format msgid "MANAGER - {0} content waiting for your action" msgstr "RESPONSABLE - {0} contenu en attente de votre intervention" #: src/pyams_content/root/zmi/__init__.py:160 -#: src/pyams_content/shared/common/zmi/dashboard.py:346 +#: src/pyams_content/shared/common/zmi/dashboard.py:365 #, python-format msgid "MANAGER - {0} contents waiting for your action" msgstr "RESPONSABLE - {0} contenus en attente de votre intervention" #: src/pyams_content/root/zmi/__init__.py:204 -#: src/pyams_content/shared/common/zmi/dashboard.py:387 +#: src/pyams_content/shared/common/zmi/dashboard.py:408 #, python-format msgid "CONTRIBUTOR - {0} content waiting for action" msgstr "CONTRIBUTEUR - {0} contenu soumis à un responsable" #: src/pyams_content/root/zmi/__init__.py:205 -#: src/pyams_content/shared/common/zmi/dashboard.py:388 +#: src/pyams_content/shared/common/zmi/dashboard.py:409 #, python-format msgid "CONTRIBUTOR - {0} contents waiting for action" msgstr "CONTRIBUTEUR - {0} contenus soumis à un responsable" #: src/pyams_content/root/zmi/__init__.py:240 -#: src/pyams_content/shared/common/zmi/dashboard.py:420 +#: src/pyams_content/shared/common/zmi/dashboard.py:443 #, python-format msgid "CONTRIBUTOR - {0} modified content" msgstr "CONTRIBUTEUR - {0} contenu modifié" #: src/pyams_content/root/zmi/__init__.py:283 -#: src/pyams_content/shared/common/zmi/dashboard.py:461 +#: src/pyams_content/shared/common/zmi/dashboard.py:486 msgid "My contents" msgstr "Mes contenus" #: src/pyams_content/root/zmi/__init__.py:298 #: src/pyams_content/root/zmi/templates/dashboard.pt:8 -#: src/pyams_content/shared/common/zmi/dashboard.py:476 +#: src/pyams_content/shared/common/zmi/dashboard.py:501 #: src/pyams_content/shared/common/zmi/templates/dashboard.pt:8 msgid "My favorites" msgstr "Mes favoris" #: src/pyams_content/root/zmi/__init__.py:307 -#: src/pyams_content/shared/common/zmi/dashboard.py:485 +#: src/pyams_content/shared/common/zmi/dashboard.py:510 #, python-format msgid "CONTRIBUTOR - {0} favorite" msgstr "CONTRIBUTEUR - {0} contenu favori" #: src/pyams_content/root/zmi/__init__.py:308 -#: src/pyams_content/shared/common/zmi/dashboard.py:486 +#: src/pyams_content/shared/common/zmi/dashboard.py:511 #, python-format msgid "CONTRIBUTOR - {0} favorites" msgstr "CONTRIBUTEUR - {0} contenus favoris" #: src/pyams_content/root/zmi/__init__.py:346 -#: src/pyams_content/shared/common/zmi/dashboard.py:561 +#: src/pyams_content/shared/common/zmi/dashboard.py:588 msgid "Your favorite contents" msgstr "Mes contenus favoris" #: src/pyams_content/root/zmi/__init__.py:359 -#: src/pyams_content/shared/common/zmi/dashboard.py:574 +#: src/pyams_content/shared/common/zmi/dashboard.py:601 msgid "My drafts" msgstr "Mes brouillons" #: src/pyams_content/root/zmi/__init__.py:368 -#: src/pyams_content/shared/common/zmi/dashboard.py:583 +#: src/pyams_content/shared/common/zmi/dashboard.py:610 #, python-format msgid "CONTRIBUTOR - {0} content in preparation" msgstr "CONTRIBUTEUR - {0} contenu en préparation" #: src/pyams_content/root/zmi/__init__.py:369 -#: src/pyams_content/shared/common/zmi/dashboard.py:584 +#: src/pyams_content/shared/common/zmi/dashboard.py:611 #, python-format msgid "CONTRIBUTOR - {0} contents in preparation" msgstr "CONTRIBUTEUR - {0} contenus en préparation" #: src/pyams_content/root/zmi/__init__.py:408 -#: src/pyams_content/shared/common/zmi/dashboard.py:625 +#: src/pyams_content/shared/common/zmi/dashboard.py:654 msgid "Your prepared contents" msgstr "Mes contenus en préparation" #: src/pyams_content/root/zmi/__init__.py:421 -#: src/pyams_content/shared/common/zmi/dashboard.py:638 +#: src/pyams_content/shared/common/zmi/dashboard.py:667 msgid "My submissions" msgstr "Mes demandes" #: src/pyams_content/root/zmi/__init__.py:430 -#: src/pyams_content/shared/common/zmi/dashboard.py:647 +#: src/pyams_content/shared/common/zmi/dashboard.py:676 #, python-format msgid "CONTRIBUTOR - {0} submitted content" msgstr "CONTRIBUTEUR - {0} contenu soumis à un responsable" #: src/pyams_content/root/zmi/__init__.py:431 -#: src/pyams_content/shared/common/zmi/dashboard.py:648 +#: src/pyams_content/shared/common/zmi/dashboard.py:677 #, python-format msgid "CONTRIBUTOR - {0} submitted contents" msgstr "CONTRIBUTEUR - {0} contenus soumis à un responsable" #: src/pyams_content/root/zmi/__init__.py:470 -#: src/pyams_content/shared/common/zmi/dashboard.py:689 +#: src/pyams_content/shared/common/zmi/dashboard.py:720 msgid "Your submitted contents" msgstr "Mes contenus soumis à un responsable" #: src/pyams_content/root/zmi/__init__.py:483 -#: src/pyams_content/shared/common/zmi/dashboard.py:702 +#: src/pyams_content/shared/common/zmi/dashboard.py:733 msgid "My publications" msgstr "Mes publications" #: src/pyams_content/root/zmi/__init__.py:492 -#: src/pyams_content/shared/common/zmi/dashboard.py:711 +#: src/pyams_content/shared/common/zmi/dashboard.py:742 #, python-format msgid "CONTRIBUTOR - {0} published content" msgstr "CONTRIBUTEUR - {0} contenu publié" #: src/pyams_content/root/zmi/__init__.py:493 -#: src/pyams_content/shared/common/zmi/dashboard.py:712 +#: src/pyams_content/shared/common/zmi/dashboard.py:743 #, python-format msgid "CONTRIBUTOR - {0} published contents" msgstr "CONTRIBUTEUR - {0} contenus publiés" #: src/pyams_content/root/zmi/__init__.py:532 -#: src/pyams_content/shared/common/zmi/dashboard.py:753 +#: src/pyams_content/shared/common/zmi/dashboard.py:786 msgid "Your published contents" msgstr "Mes contenus publiés" #: src/pyams_content/root/zmi/__init__.py:545 -#: src/pyams_content/shared/common/zmi/dashboard.py:766 +#: src/pyams_content/shared/common/zmi/dashboard.py:799 msgid "My retired contents" msgstr "Mes contenus retirés" #: src/pyams_content/root/zmi/__init__.py:554 -#: src/pyams_content/shared/common/zmi/dashboard.py:775 +#: src/pyams_content/shared/common/zmi/dashboard.py:808 #, python-format msgid "CONTRIBUTOR - {0} retired content" msgstr "CONTRIBUTEUR - {0} contenu retiré" #: src/pyams_content/root/zmi/__init__.py:555 -#: src/pyams_content/shared/common/zmi/dashboard.py:776 +#: src/pyams_content/shared/common/zmi/dashboard.py:809 #, python-format msgid "CONTRIBUTOR - {0} retired contents" msgstr "CONTRIBUTEUR - {0} contenus retirés" #: src/pyams_content/root/zmi/__init__.py:595 -#: src/pyams_content/shared/common/zmi/dashboard.py:817 +#: src/pyams_content/shared/common/zmi/dashboard.py:852 msgid "Your retired contents" msgstr "Mes contenus retirés" #: src/pyams_content/root/zmi/__init__.py:608 -#: src/pyams_content/shared/common/zmi/dashboard.py:830 +#: src/pyams_content/shared/common/zmi/dashboard.py:865 msgid "My archived contents" msgstr "Mes contenus archivés" #: src/pyams_content/root/zmi/__init__.py:617 -#: src/pyams_content/shared/common/zmi/dashboard.py:839 +#: src/pyams_content/shared/common/zmi/dashboard.py:874 #, python-format msgid "CONTRIBUTOR - {0} archived content" msgstr "CONTRIBUTEUR - {0} contenu archivé" #: src/pyams_content/root/zmi/__init__.py:618 -#: src/pyams_content/shared/common/zmi/dashboard.py:840 +#: src/pyams_content/shared/common/zmi/dashboard.py:875 #, python-format msgid "CONTRIBUTOR - {0} archived contents" msgstr "CONTRIBUTEUR - {0} contenus archivés" #: src/pyams_content/root/zmi/__init__.py:664 -#: src/pyams_content/shared/common/zmi/dashboard.py:887 +#: src/pyams_content/shared/common/zmi/dashboard.py:924 msgid "Your archived contents" msgstr "Mes contenus archivés" #: src/pyams_content/root/zmi/__init__.py:678 -#: src/pyams_content/shared/common/zmi/dashboard.py:901 +#: src/pyams_content/shared/common/zmi/dashboard.py:938 msgid "Other interventions" msgstr "Toutes les interventions" #: src/pyams_content/root/zmi/__init__.py:693 -#: src/pyams_content/shared/common/zmi/dashboard.py:916 +#: src/pyams_content/shared/common/zmi/dashboard.py:953 msgid "Last publications" msgstr "Dernières publications" #: src/pyams_content/root/zmi/__init__.py:702 -#: src/pyams_content/shared/common/zmi/dashboard.py:925 +#: src/pyams_content/shared/common/zmi/dashboard.py:962 #, python-format msgid "CONTRIBUTORS - {0} published content" msgstr "TOUS CONTRIBUTEURS - {0} contenu publié" #: src/pyams_content/root/zmi/__init__.py:748 -#: src/pyams_content/shared/common/zmi/dashboard.py:972 +#: src/pyams_content/shared/common/zmi/dashboard.py:1011 msgid "Last published contents" msgstr "Derniers contenus publiés" #: src/pyams_content/root/zmi/__init__.py:761 -#: src/pyams_content/shared/common/zmi/dashboard.py:985 +#: src/pyams_content/shared/common/zmi/dashboard.py:1024 msgid "Last updates" msgstr "Dernières modifications" #: src/pyams_content/root/zmi/__init__.py:770 -#: src/pyams_content/shared/common/zmi/dashboard.py:994 +#: src/pyams_content/shared/common/zmi/dashboard.py:1033 #, python-format msgid "CONTRIBUTORS - {0} updated content" msgstr "TOUS CONTRIBUTEURS - {0} contenu modifié" #: src/pyams_content/root/zmi/__init__.py:814 -#: src/pyams_content/shared/common/zmi/dashboard.py:1039 +#: src/pyams_content/shared/common/zmi/dashboard.py:1080 msgid "Last updated contents" msgstr "Derniers contenus modifiés" -#: src/pyams_content/root/zmi/__init__.py:825 -#: src/pyams_content/shared/site/zmi/container.py:461 -msgid "Content" -msgstr "Contenu" - #: src/pyams_content/root/zmi/__init__.py:245 -#: src/pyams_content/shared/common/zmi/dashboard.py:425 +#: src/pyams_content/shared/common/zmi/dashboard.py:448 #, python-format msgid "CONTRIBUTOR - {0} modified contents" msgstr "CONTRIBUTEUR - {0} contenus modifiés" #: src/pyams_content/root/zmi/__init__.py:247 -#: src/pyams_content/shared/common/zmi/dashboard.py:427 +#: src/pyams_content/shared/common/zmi/dashboard.py:450 #, python-format msgid "CONTRIBUTOR - Last {0} modified contents" msgstr "CONTRIBUTEUR - Les {0} dernières modifications" #: src/pyams_content/root/zmi/__init__.py:707 -#: src/pyams_content/shared/common/zmi/dashboard.py:930 +#: src/pyams_content/shared/common/zmi/dashboard.py:967 #, python-format msgid "CONTRIBUTORS - Last {0} published contents" msgstr "TOUS CONTRIBUTEURS - Les {0} dernières publications" #: src/pyams_content/root/zmi/__init__.py:709 -#: src/pyams_content/shared/common/zmi/dashboard.py:932 +#: src/pyams_content/shared/common/zmi/dashboard.py:969 msgid "CONTRIBUTORS - Last published contents (in the limit of 50)" msgstr "TOUS CONTRIBUTEURS - Les {0} dernières publications" #: src/pyams_content/root/zmi/__init__.py:775 -#: src/pyams_content/shared/common/zmi/dashboard.py:999 +#: src/pyams_content/shared/common/zmi/dashboard.py:1038 #, python-format msgid "CONTRIBUTORS - Last {0} updated contents" msgstr "TOUS CONTRIBUTEURS - Les {0} dernières modifications" #: src/pyams_content/root/zmi/__init__.py:777 -#: src/pyams_content/shared/common/zmi/dashboard.py:1001 +#: src/pyams_content/shared/common/zmi/dashboard.py:1040 msgid "CONTRIBUTORS - Last updated contents (in the limit of 50)" msgstr "TOUS CONTRIBUTEURS - Les {0} dernières modifications" @@ -3865,7 +3860,7 @@ msgstr "Types de contenus" #: src/pyams_content/root/zmi/search.py:162 -#: src/pyams_content/shared/common/zmi/dashboard.py:244 +#: src/pyams_content/shared/common/zmi/dashboard.py:258 #: src/pyams_content/shared/common/zmi/search.py:171 #: src/pyams_content/shared/common/zmi/types/updater.py:65 msgid "Owner" @@ -4844,7 +4839,7 @@ "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:294 +#: src/pyams_content/shared/view/interfaces.py:295 msgid "Other collections" msgstr "Autres collections" @@ -5067,7 +5062,7 @@ #: src/pyams_content/shared/common/interfaces/__init__.py:182 #: src/pyams_content/shared/site/interfaces.py:93 #: src/pyams_content/shared/site/interfaces.py:138 -#: src/pyams_content/shared/site/zmi/folder.py:74 +#: src/pyams_content/shared/site/zmi/folder.py:76 msgid "Notepad" msgstr "Bloc-notes" @@ -5075,51 +5070,51 @@ #: src/pyams_content/shared/common/interfaces/__init__.py:183 #: src/pyams_content/shared/site/interfaces.py:94 #: src/pyams_content/shared/site/interfaces.py:139 -#: src/pyams_content/shared/site/zmi/folder.py:75 +#: src/pyams_content/shared/site/zmi/folder.py:77 msgid "Internal information to be known about this content" msgstr "" "Pour prendre note d'informations internes utiles ou importantes à propos de " "ce contenu ; ces notes ne seront pas publiées sur internet." -#: src/pyams_content/shared/blog/zmi/manager.py:57 +#: src/pyams_content/shared/blog/zmi/manager.py:68 msgid "Blog management" msgstr "Gérer ce blog" -#: src/pyams_content/shared/blog/zmi/manager.py:80 -#: src/pyams_content/shared/blog/zmi/manager.py:94 -msgid "Add blog manager" -msgstr "Ajouter un blog" - #: src/pyams_content/shared/blog/zmi/manager.py:93 +#: src/pyams_content/shared/blog/zmi/manager.py:107 +msgid "Add blog manager" +msgstr "Ajouter un blog" + +#: src/pyams_content/shared/blog/zmi/manager.py:106 msgid "Blog manager" msgstr "Blog" -#: src/pyams_content/shared/blog/zmi/manager.py:148 +#: src/pyams_content/shared/blog/zmi/manager.py:166 msgid "Blog properties" msgstr "Propriétés du blog" -#: src/pyams_content/shared/blog/zmi/manager.py:163 -#: src/pyams_content/shared/blog/zmi/manager.py:175 +#: 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:153 #: src/pyams_content/shared/site/zmi/container.py:165 msgid "Publication dates..." msgstr "Dates de publication" -#: src/pyams_content/shared/blog/zmi/manager.py:189 +#: src/pyams_content/shared/blog/zmi/manager.py:209 #: src/pyams_content/shared/site/zmi/container.py:179 msgid "Update publication dates" msgstr "Dates de publication" -#: src/pyams_content/shared/blog/zmi/manager.py:124 -#: src/pyams_content/shared/site/zmi/manager.py:163 +#: src/pyams_content/shared/blog/zmi/manager.py:137 +#: src/pyams_content/shared/site/zmi/manager.py:176 msgid "You must provide a short name for default server language!" msgstr "Vous devez fournir un nom court pour la langue par défaut du serveur !" -#: src/pyams_content/shared/blog/zmi/manager.py:128 +#: src/pyams_content/shared/blog/zmi/manager.py:142 msgid "Specified blog manager name is already used!" msgstr "Le nom indiqué pour ce blog existe déjà !" -#: src/pyams_content/shared/blog/zmi/manager.py:132 +#: src/pyams_content/shared/blog/zmi/manager.py:147 msgid "A blog manager is already registered with this name!!" msgstr "Un blog est déjà inscrit dans le registre avec ce nom !" @@ -5137,19 +5132,19 @@ msgid "Blog post « {title} »" msgstr "Article « {title} »" -#: src/pyams_content/shared/common/__init__.py:268 +#: 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 msgid "Properties" msgstr "Propriétés" -#: src/pyams_content/shared/common/__init__.py:178 -#: src/pyams_content/shared/common/__init__.py:186 +#: src/pyams_content/shared/common/__init__.py:184 +#: src/pyams_content/shared/common/__init__.py:192 #, python-format msgid "{date} by {principal}" msgstr "{date} par {principal}" -#: src/pyams_content/shared/common/__init__.py:291 +#: src/pyams_content/shared/common/__init__.py:300 #, python-format msgid "title length should be between 40 and 66 characters ({length} actually)" msgstr "" @@ -5589,7 +5584,7 @@ msgstr "depuis {date}" #: src/pyams_content/shared/common/zmi/header.py:91 -#: src/pyams_content/shared/common/zmi/dashboard.py:184 +#: src/pyams_content/shared/common/zmi/dashboard.py:194 msgid "Content publication start date is not passed yet" msgstr "La date de début de publication n'est pas encore atteinte" @@ -5654,46 +5649,50 @@ msgid "Tool management" msgstr "Gérer cet outil" -#: src/pyams_content/shared/common/zmi/dashboard.py:105 +#: src/pyams_content/shared/common/zmi/dashboard.py:107 +msgid "Content type" +msgstr "Type de contenu" + +#: src/pyams_content/shared/common/zmi/dashboard.py:121 msgid "Type" msgstr "Type" -#: src/pyams_content/shared/common/zmi/dashboard.py:147 +#: src/pyams_content/shared/common/zmi/dashboard.py:156 msgid "Unique ID" msgstr "N° IN" -#: src/pyams_content/shared/common/zmi/dashboard.py:167 +#: src/pyams_content/shared/common/zmi/dashboard.py:177 #: src/pyams_content/shared/common/zmi/search.py:174 msgid "Status" msgstr "Statut" -#: src/pyams_content/shared/common/zmi/dashboard.py:194 +#: src/pyams_content/shared/common/zmi/dashboard.py:205 msgid "Status date" msgstr "En date du" -#: src/pyams_content/shared/common/zmi/dashboard.py:211 +#: src/pyams_content/shared/common/zmi/dashboard.py:223 #: src/pyams_content/shared/common/zmi/summary.py:165 msgid "Version" msgstr "Version" -#: src/pyams_content/shared/common/zmi/dashboard.py:226 +#: src/pyams_content/shared/common/zmi/dashboard.py:239 msgid "Status principal" msgstr "Intervenant" -#: src/pyams_content/shared/common/zmi/dashboard.py:266 +#: src/pyams_content/shared/common/zmi/dashboard.py:281 msgid "Last modification" msgstr "Dernière modification" -#: src/pyams_content/shared/common/zmi/dashboard.py:299 +#: src/pyams_content/shared/common/zmi/dashboard.py:315 msgid "Contents dashboard" msgstr "Mon tableau de bord" -#: src/pyams_content/shared/common/zmi/dashboard.py:498 +#: src/pyams_content/shared/common/zmi/dashboard.py:523 #: src/pyams_content/shared/common/zmi/templates/header.pt:26 msgid "Add/remove from favorites" msgstr "Ajouter/enlever des favoris" -#: src/pyams_content/shared/common/zmi/dashboard.py:322 +#: src/pyams_content/shared/common/zmi/dashboard.py:339 #, python-format msgid "SEARCH - Between all contents of type « {type} »" msgstr "RECHERCHE - Tous contenus « {type} » confondus" @@ -5787,30 +5786,30 @@ "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/__init__.py:289 +#: src/pyams_content/shared/common/zmi/__init__.py:292 msgid "Duplicate content..." msgstr "Dupliquer le contenu" -#: src/pyams_content/shared/common/zmi/__init__.py:309 +#: src/pyams_content/shared/common/zmi/__init__.py:312 msgid "Duplicate content" msgstr "Dupliquer ce contenu" -#: src/pyams_content/shared/common/zmi/__init__.py:85 +#: src/pyams_content/shared/common/zmi/__init__.py:88 msgid "This title can be modified afterwards" msgstr "Pourra être modifié ultérieurement" -#: src/pyams_content/shared/common/zmi/__init__.py:300 +#: src/pyams_content/shared/common/zmi/__init__.py:303 msgid "Duplicate this content" msgstr "Dupliquer ce contenu" -#: src/pyams_content/shared/common/zmi/__init__.py:357 +#: src/pyams_content/shared/common/zmi/__init__.py:360 #, python-format msgid "Clone created from version {source} of {oid} (in « {state} » state)" msgstr "" "Duplication de la version {source} du contenu {oid} (alors en statut " "« {state} »)" -#: src/pyams_content/shared/common/zmi/__init__.py:403 +#: src/pyams_content/shared/common/zmi/__init__.py:434 msgid "Created or modified in this version" msgstr "Créé ou modifié dans cette version" @@ -5988,11 +5987,11 @@ msgid "{state} {date}" msgstr "{state} {date}" -#: src/pyams_content/shared/common/zmi/reverse.py:57 +#: src/pyams_content/shared/common/zmi/reverse.py:53 msgid "Reverse links" msgstr "Liens amont" -#: src/pyams_content/shared/common/zmi/reverse.py:66 +#: src/pyams_content/shared/common/zmi/reverse.py:62 msgid "Content's internal links" msgstr "Autres contenus qui pointent vers ce contenu" @@ -6445,7 +6444,7 @@ msgstr "Actualité « {title} »" #: src/pyams_content/shared/site/manager.py:68 -#: src/pyams_content/shared/site/zmi/manager.py:121 +#: src/pyams_content/shared/site/zmi/manager.py:133 msgid "Site manager" msgstr "Site" @@ -6582,7 +6581,11 @@ msgid "Folders and topics" msgstr "Rubriquage" -#: src/pyams_content/shared/site/zmi/container.py:557 +#: src/pyams_content/shared/site/zmi/container.py:462 +msgid "Content" +msgstr "Contenu" + +#: src/pyams_content/shared/site/zmi/container.py:559 msgid "Delete site item" msgstr "Supprimer ce contenu" @@ -6642,54 +6645,54 @@ "Impossible de déplacer une rubrique dans l'une de ses sous-rubriques ou " "contenus ! Rechargement de la page..." -#: src/pyams_content/shared/site/zmi/manager.py:53 +#: src/pyams_content/shared/site/zmi/manager.py:63 msgid "Site management" msgstr "Gérer ce site" -#: src/pyams_content/shared/site/zmi/manager.py:108 -#: src/pyams_content/shared/site/zmi/manager.py:122 +#: src/pyams_content/shared/site/zmi/manager.py:120 +#: src/pyams_content/shared/site/zmi/manager.py:134 msgid "Add site manager" msgstr "Ajouter un site" -#: src/pyams_content/shared/site/zmi/manager.py:150 -#: src/pyams_content/shared/site/zmi/folder.py:185 +#: src/pyams_content/shared/site/zmi/manager.py:163 +#: src/pyams_content/shared/site/zmi/folder.py:194 msgid "Site folder properties" msgstr "Propriétés de la rubrique" -#: src/pyams_content/shared/site/zmi/manager.py:167 +#: src/pyams_content/shared/site/zmi/manager.py:181 msgid "Specified site manager name is already used!" msgstr "Le nom indiqué pour ce site existe déjà !" -#: src/pyams_content/shared/site/zmi/manager.py:171 +#: src/pyams_content/shared/site/zmi/manager.py:185 msgid "A site manager is already registered with this name!!" msgstr "Un site est déjà inscrit dans le registre avec ce nom !" -#: src/pyams_content/shared/site/zmi/folder.py:57 +#: src/pyams_content/shared/site/zmi/folder.py:59 msgid "Add site folder..." msgstr "Rubrique" -#: src/pyams_content/shared/site/zmi/folder.py:89 +#: src/pyams_content/shared/site/zmi/folder.py:91 msgid "Add site folder" msgstr "Ajout d'une rubrique" -#: src/pyams_content/shared/site/zmi/folder.py:156 +#: src/pyams_content/shared/site/zmi/folder.py:158 msgid "Site folder management" msgstr "Gérer cette rubrique" -#: src/pyams_content/shared/site/zmi/folder.py:70 +#: src/pyams_content/shared/site/zmi/folder.py:72 #: src/pyams_content/shared/site/zmi/link.py:75 #: src/pyams_content/shared/site/zmi/link.py:227 #: src/pyams_content/shared/site/zmi/__init__.py:62 msgid "Parent" msgstr "Niveau parent" -#: src/pyams_content/shared/site/zmi/folder.py:71 +#: src/pyams_content/shared/site/zmi/folder.py:73 #: src/pyams_content/shared/site/zmi/link.py:76 #: src/pyams_content/shared/site/zmi/link.py:228 msgid "Folder's parent" msgstr "Niveau de rattachement de cette rubrique" -#: src/pyams_content/shared/site/zmi/folder.py:149 +#: src/pyams_content/shared/site/zmi/folder.py:151 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 " @@ -7329,6 +7332,9 @@ msgid "Published version {0}" msgstr "Version {0} publiée" +#~ msgid "Content / type" +#~ msgstr "Gabarit / type" + #~ msgid "If 'yes', a captcha will be added automatically to the form" #~ msgstr "Si 'oui', un captcha sera ajouté automatiquement au formulaire" diff -r 9479901b53a5 -r ed31bfceddda src/pyams_content/locales/pyams_content.pot --- a/src/pyams_content/locales/pyams_content.pot Wed Jul 01 14:10:50 2020 +0200 +++ b/src/pyams_content/locales/pyams_content.pot Wed Jul 01 18:05:38 2020 +0200 @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE 1.0\n" -"POT-Creation-Date: 2020-06-24 12:02+0200\n" +"POT-Creation-Date: 2020-07-01 16:13+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" @@ -197,11 +197,11 @@ #: ./src/pyams_content/features/search/portlet/interfaces.py:25 #: ./src/pyams_content/root/zmi/templates/advanced-search.pt:197 #: ./src/pyams_content/shared/view/portlet/interfaces.py:52 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:122 -#: ./src/pyams_content/shared/common/zmi/reverse.py:73 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:128 +#: ./src/pyams_content/shared/common/zmi/reverse.py:69 #: ./src/pyams_content/shared/common/zmi/templates/advanced-search.pt:223 #: ./src/pyams_content/shared/site/portlet/interfaces.py:24 -#: ./src/pyams_content/shared/site/zmi/folder.py:66 +#: ./src/pyams_content/shared/site/zmi/folder.py:68 #: ./src/pyams_content/shared/imagemap/portlet/interfaces.py:28 #: ./src/pyams_content/shared/imagemap/zmi/container.py:123 #: ./src/pyams_content/shared/logo/interfaces.py:42 @@ -460,7 +460,7 @@ #: ./src/pyams_content/component/links/interfaces.py:36 #: ./src/pyams_content/component/paragraph/interfaces/audio.py:50 #: ./src/pyams_content/component/extfile/interfaces.py:36 -#: ./src/pyams_content/features/search/interfaces.py:45 +#: ./src/pyams_content/features/search/interfaces.py:50 #: ./src/pyams_content/shared/form/interfaces.py:125 msgid "Description" msgstr "" @@ -1674,7 +1674,7 @@ #: ./src/pyams_content/component/paragraph/zmi/__init__.py:262 #: ./src/pyams_content/component/paragraph/zmi/__init__.py:275 #: ./src/pyams_content/features/review/zmi/__init__.py:84 -#: ./src/pyams_content/shared/common/zmi/__init__.py:299 +#: ./src/pyams_content/shared/common/zmi/__init__.py:302 #: ./src/pyams_content/shared/common/zmi/owner.py:73 #: ./src/pyams_content/shared/common/zmi/workflow.py:119 #: ./src/pyams_content/shared/common/zmi/workflow.py:206 @@ -1996,9 +1996,9 @@ msgid "Add new illustration" msgstr "" -#: ./src/pyams_content/component/theme/__init__.py:76 -#: ./src/pyams_content/component/theme/interfaces.py:74 -#: ./src/pyams_content/component/theme/interfaces.py:88 +#: ./src/pyams_content/component/theme/__init__.py:73 +#: ./src/pyams_content/component/theme/interfaces.py:57 +#: ./src/pyams_content/component/theme/interfaces.py:71 #: ./src/pyams_content/component/theme/zmi/portlet.py:40 #: ./src/pyams_content/root/zmi/search.py:177 #: ./src/pyams_content/root/zmi/templates/advanced-search.pt:181 @@ -2006,150 +2006,98 @@ msgid "Tags" msgstr "" -#: ./src/pyams_content/component/theme/__init__.py:126 -#: ./src/pyams_content/component/theme/interfaces.py:115 -#: ./src/pyams_content/component/theme/interfaces.py:129 +#: ./src/pyams_content/component/theme/__init__.py:124 +#: ./src/pyams_content/component/theme/interfaces.py:98 +#: ./src/pyams_content/component/theme/interfaces.py:112 #: ./src/pyams_content/component/theme/zmi/portlet.py:55 #: ./src/pyams_content/shared/common/zmi/search.py:197 msgid "Themes" msgstr "" -#: ./src/pyams_content/component/theme/__init__.py:179 -#: ./src/pyams_content/component/theme/interfaces.py:175 -#: ./src/pyams_content/component/theme/interfaces.py:189 +#: ./src/pyams_content/component/theme/__init__.py:175 +#: ./src/pyams_content/component/theme/interfaces.py:139 +#: ./src/pyams_content/component/theme/interfaces.py:153 #: ./src/pyams_content/component/theme/zmi/portlet.py:70 #: ./src/pyams_content/shared/common/zmi/search.py:200 msgid "Collections" msgstr "" -#: ./src/pyams_content/component/theme/__init__.py:85 +#: ./src/pyams_content/component/theme/__init__.py:83 msgid "no defined tag" msgstr "" -#: ./src/pyams_content/component/theme/__init__.py:135 +#: ./src/pyams_content/component/theme/__init__.py:134 msgid "no defined theme" msgstr "" -#: ./src/pyams_content/component/theme/__init__.py:188 +#: ./src/pyams_content/component/theme/__init__.py:185 msgid "no defined collection" msgstr "" -#: ./src/pyams_content/component/theme/interfaces.py:36 -msgid "Enable search by tag?" -msgstr "" - -#: ./src/pyams_content/component/theme/interfaces.py:37 -msgid "" -"If 'yes', displayed tags will lead to a search engine displaying contents " -"matching given tag" -msgstr "" - -#: ./src/pyams_content/component/theme/interfaces.py:42 -msgid "Tags search target" -msgstr "" - -#: ./src/pyams_content/component/theme/interfaces.py:43 -msgid "Site or folder where tags search is displayed" -msgstr "" - -#: ./src/pyams_content/component/theme/interfaces.py:52 +#: ./src/pyams_content/component/theme/interfaces.py:35 msgid "Enable glossary?" msgstr "" -#: ./src/pyams_content/component/theme/interfaces.py:57 +#: ./src/pyams_content/component/theme/interfaces.py:40 msgid "Glossary thesaurus name" msgstr "" -#: ./src/pyams_content/component/theme/interfaces.py:148 -msgid "Enable search by collection?" -msgstr "" - -#: ./src/pyams_content/component/theme/interfaces.py:149 -msgid "" -"If 'yes', displayed collections will lead to a search engine displaying " -"contents matching given collection" -msgstr "" - -#: ./src/pyams_content/component/theme/interfaces.py:155 -msgid "Collections search target" -msgstr "" - -#: ./src/pyams_content/component/theme/interfaces.py:156 -msgid "Site or folder where collections search is displayed" -msgstr "" - -#: ./src/pyams_content/component/theme/interfaces.py:50 -msgid "You must specify search target when activating search by tags!" -msgstr "" - -#: ./src/pyams_content/component/theme/interfaces.py:64 +#: ./src/pyams_content/component/theme/interfaces.py:47 msgid "You must specify a glossary thesaurus to activate it!" msgstr "" -#: ./src/pyams_content/component/theme/interfaces.py:164 -msgid "You must specify search target when activating search by collections!" -msgstr "" - -#: ./src/pyams_content/component/theme/zmi/manager.py:46 +#: ./src/pyams_content/component/theme/zmi/manager.py:47 msgid "Tags settings..." msgstr "" -#: ./src/pyams_content/component/theme/zmi/manager.py:60 +#: ./src/pyams_content/component/theme/zmi/manager.py:61 msgid "Selected tags" msgstr "" -#: ./src/pyams_content/component/theme/zmi/manager.py:118 +#: ./src/pyams_content/component/theme/zmi/manager.py:111 msgid "Themes settings..." msgstr "" -#: ./src/pyams_content/component/theme/zmi/manager.py:132 +#: ./src/pyams_content/component/theme/zmi/manager.py:125 msgid "Selected themes" msgstr "" -#: ./src/pyams_content/component/theme/zmi/manager.py:169 +#: ./src/pyams_content/component/theme/zmi/manager.py:163 msgid "Collections settings..." msgstr "" -#: ./src/pyams_content/component/theme/zmi/manager.py:183 +#: ./src/pyams_content/component/theme/zmi/manager.py:177 msgid "Selected collections" msgstr "" #: ./src/pyams_content/component/theme/zmi/manager.py:94 -msgid "Enable search by tag" -msgstr "" - -#: ./src/pyams_content/component/theme/zmi/manager.py:101 msgid "Enable glossary" msgstr "" -#: ./src/pyams_content/component/theme/zmi/manager.py:217 -msgid "Enable search by collection" -msgstr "" - -#: ./src/pyams_content/component/theme/zmi/__init__.py:55 +#: ./src/pyams_content/component/theme/zmi/__init__.py:51 #: ./src/pyams_content/shared/view/zmi/theme.py:49 msgid "Tags..." msgstr "" -#: ./src/pyams_content/component/theme/zmi/__init__.py:66 +#: ./src/pyams_content/component/theme/zmi/__init__.py:64 msgid "Content tags" msgstr "" -#: ./src/pyams_content/component/theme/zmi/__init__.py:99 +#: ./src/pyams_content/component/theme/zmi/__init__.py:97 #: ./src/pyams_content/shared/view/zmi/theme.py:95 msgid "Themes..." msgstr "" -#: ./src/pyams_content/component/theme/zmi/__init__.py:107 +#: ./src/pyams_content/component/theme/zmi/__init__.py:105 msgid "Content themes" msgstr "" -#: ./src/pyams_content/component/theme/zmi/__init__.py:159 +#: ./src/pyams_content/component/theme/zmi/__init__.py:157 #: ./src/pyams_content/shared/view/zmi/theme.py:141 msgid "Collections..." msgstr "" -#: ./src/pyams_content/component/theme/zmi/__init__.py:172 +#: ./src/pyams_content/component/theme/zmi/__init__.py:170 msgid "Content collections" msgstr "" @@ -2164,7 +2112,7 @@ msgstr "" #: ./src/pyams_content/interfaces/__init__.py:102 -#: ./src/pyams_content/shared/site/zmi/folder.py:67 +#: ./src/pyams_content/shared/site/zmi/folder.py:69 msgid "Visible label used to display content" msgstr "" @@ -2957,35 +2905,71 @@ msgid "Search folder" msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:35 +#: ./src/pyams_content/features/search/interfaces.py:37 msgid "Main search engine" msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:36 +#: ./src/pyams_content/features/search/interfaces.py:38 msgid "" "Search folder handling main site search. You can search a reference using '+'" " followed by internal number, of by entering text matching content title." msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:41 +#: ./src/pyams_content/features/search/interfaces.py:46 msgid "Search engine name" msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:42 +#: ./src/pyams_content/features/search/interfaces.py:47 msgid "Name given to the search engine" msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:46 +#: ./src/pyams_content/features/search/interfaces.py:51 msgid "Description given to the search engine" msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:53 +#: ./src/pyams_content/features/search/interfaces.py:54 +msgid "Enable search by tag?" +msgstr "" + +#: ./src/pyams_content/features/search/interfaces.py:55 +msgid "" +"If 'yes', displayed tags will lead to a search engine displaying contents " +"matching given tag" +msgstr "" + +#: ./src/pyams_content/features/search/interfaces.py:60 +msgid "Tags search target" +msgstr "" + +#: ./src/pyams_content/features/search/interfaces.py:61 +msgid "Site or folder where tags search is displayed" +msgstr "" + +#: ./src/pyams_content/features/search/interfaces.py:72 +msgid "Enable search by collection?" +msgstr "" + +#: ./src/pyams_content/features/search/interfaces.py:73 +msgid "" +"If 'yes', displayed collections will lead to a search engine displaying " +"contents matching given collection" +msgstr "" + +#: ./src/pyams_content/features/search/interfaces.py:79 +msgid "Collections search target" +msgstr "" + +#: ./src/pyams_content/features/search/interfaces.py:80 +msgid "Site or folder where collections search is displayed" +msgstr "" + +#: ./src/pyams_content/features/search/interfaces.py:97 #: ./src/pyams_content/shared/common/interfaces/__init__.py:53 #: ./src/pyams_content/shared/common/interfaces/__init__.py:209 msgid "Managers" msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:54 +#: ./src/pyams_content/features/search/interfaces.py:98 #: ./src/pyams_content/shared/common/interfaces/__init__.py:54 #: ./src/pyams_content/shared/common/interfaces/__init__.py:210 msgid "" @@ -2993,35 +2977,35 @@ "retire contents" msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:59 +#: ./src/pyams_content/features/search/interfaces.py:103 #: ./src/pyams_content/shared/common/interfaces/__init__.py:65 #: ./src/pyams_content/shared/common/interfaces/__init__.py:221 msgid "Designers" msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:60 +#: ./src/pyams_content/features/search/interfaces.py:104 #: ./src/pyams_content/shared/common/interfaces/__init__.py:66 #: ./src/pyams_content/shared/common/interfaces/__init__.py:222 msgid "Designers are users which are allowed to manage presentation templates" msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:64 +#: ./src/pyams_content/features/search/interfaces.py:109 #: ./src/pyams_content/shared/common/interfaces/__init__.py:233 msgid "Guests" msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:65 +#: ./src/pyams_content/features/search/interfaces.py:110 #: ./src/pyams_content/shared/common/interfaces/__init__.py:234 msgid "" "Guests are users which are allowed to view contents with restricted access" msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:73 +#: ./src/pyams_content/features/search/interfaces.py:119 #: ./src/pyams_content/shared/view/interfaces.py:111 msgid "Order by" msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:74 +#: ./src/pyams_content/features/search/interfaces.py:120 #: ./src/pyams_content/shared/view/interfaces.py:112 msgid "" "Property to use to sort results; publication date can be different from first" @@ -3029,46 +3013,54 @@ "a different publication date" msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:81 +#: ./src/pyams_content/features/search/interfaces.py:128 #: ./src/pyams_content/shared/site/interfaces.py:97 msgid "Visible in folders list" msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:82 +#: ./src/pyams_content/features/search/interfaces.py:129 #: ./src/pyams_content/shared/site/interfaces.py:98 msgid "If 'no', folder will not be displayed into folders list" msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:86 +#: ./src/pyams_content/features/search/interfaces.py:134 #: ./src/pyams_content/shared/site/interfaces.py:102 #: ./src/pyams_content/shared/site/interfaces.py:171 msgid "Navigation title" msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:87 +#: ./src/pyams_content/features/search/interfaces.py:135 #: ./src/pyams_content/shared/site/interfaces.py:103 msgid "" "Folder's title displayed in navigation pages; original title will be used if " "none is specified" msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:91 +#: ./src/pyams_content/features/search/interfaces.py:140 msgid "Selected content types" msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:92 +#: ./src/pyams_content/features/search/interfaces.py:141 msgid "Searched content types; leave empty for all" msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:96 +#: ./src/pyams_content/features/search/interfaces.py:145 msgid "Selected data types" msgstr "" -#: ./src/pyams_content/features/search/interfaces.py:97 +#: ./src/pyams_content/features/search/interfaces.py:146 msgid "Searched data types; leave empty for all" msgstr "" -#: ./src/pyams_content/features/search/portlet/__init__.py:97 +#: ./src/pyams_content/features/search/interfaces.py:70 +msgid "You must specify search target when activating search by tags!" +msgstr "" + +#: ./src/pyams_content/features/search/interfaces.py:90 +msgid "You must specify search target when activating search by collections!" +msgstr "" + +#: ./src/pyams_content/features/search/portlet/__init__.py:99 msgid "Search results" msgstr "" @@ -3105,18 +3097,26 @@ msgstr "" #: ./src/pyams_content/features/search/zmi/properties.py:71 -#: ./src/pyams_content/shared/site/zmi/folder.py:203 +#: ./src/pyams_content/shared/site/zmi/folder.py:212 msgid "Navigation properties" msgstr "" -#: ./src/pyams_content/features/search/zmi/manager.py:43 +#: ./src/pyams_content/features/search/zmi/manager.py:45 msgid "Search settings..." msgstr "" -#: ./src/pyams_content/features/search/zmi/manager.py:57 +#: ./src/pyams_content/features/search/zmi/manager.py:59 msgid "Search engine settings" msgstr "" +#: ./src/pyams_content/features/search/zmi/manager.py:74 +msgid "Enable search by tag" +msgstr "" + +#: ./src/pyams_content/features/search/zmi/manager.py:82 +msgid "Enable search by collection" +msgstr "" + #: ./src/pyams_content/features/search/zmi/__init__.py:59 msgid "This search folder" msgstr "" @@ -3253,7 +3253,7 @@ msgid "Admin. profile" msgstr "" -#: ./src/pyams_content/root/__init__.py:65 +#: ./src/pyams_content/root/__init__.py:69 msgid "Site root" msgstr "" @@ -3314,252 +3314,247 @@ msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:110 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:289 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:304 msgid "Dashboard" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:159 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:345 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:364 #, python-format msgid "MANAGER - {0} content waiting for your action" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:160 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:346 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:365 #, python-format msgid "MANAGER - {0} contents waiting for your action" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:204 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:387 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:408 #, python-format msgid "CONTRIBUTOR - {0} content waiting for action" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:205 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:388 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:409 #, python-format msgid "CONTRIBUTOR - {0} contents waiting for action" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:240 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:420 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:443 #, python-format msgid "CONTRIBUTOR - {0} modified content" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:283 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:461 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:486 msgid "My contents" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:298 #: ./src/pyams_content/root/zmi/templates/dashboard.pt:8 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:476 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:501 #: ./src/pyams_content/shared/common/zmi/templates/dashboard.pt:8 msgid "My favorites" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:307 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:485 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:510 #, python-format msgid "CONTRIBUTOR - {0} favorite" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:308 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:486 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:511 #, python-format msgid "CONTRIBUTOR - {0} favorites" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:346 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:561 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:588 msgid "Your favorite contents" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:359 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:574 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:601 msgid "My drafts" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:368 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:583 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:610 #, python-format msgid "CONTRIBUTOR - {0} content in preparation" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:369 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:584 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:611 #, python-format msgid "CONTRIBUTOR - {0} contents in preparation" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:408 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:625 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:654 msgid "Your prepared contents" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:421 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:638 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:667 msgid "My submissions" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:430 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:647 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:676 #, python-format msgid "CONTRIBUTOR - {0} submitted content" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:431 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:648 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:677 #, python-format msgid "CONTRIBUTOR - {0} submitted contents" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:470 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:689 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:720 msgid "Your submitted contents" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:483 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:702 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:733 msgid "My publications" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:492 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:711 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:742 #, python-format msgid "CONTRIBUTOR - {0} published content" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:493 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:712 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:743 #, python-format msgid "CONTRIBUTOR - {0} published contents" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:532 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:753 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:786 msgid "Your published contents" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:545 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:766 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:799 msgid "My retired contents" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:554 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:775 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:808 #, python-format msgid "CONTRIBUTOR - {0} retired content" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:555 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:776 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:809 #, python-format msgid "CONTRIBUTOR - {0} retired contents" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:595 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:817 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:852 msgid "Your retired contents" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:608 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:830 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:865 msgid "My archived contents" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:617 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:839 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:874 #, python-format msgid "CONTRIBUTOR - {0} archived content" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:618 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:840 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:875 #, python-format msgid "CONTRIBUTOR - {0} archived contents" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:664 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:887 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:924 msgid "Your archived contents" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:678 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:901 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:938 msgid "Other interventions" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:693 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:916 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:953 msgid "Last publications" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:702 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:925 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:962 #, python-format msgid "CONTRIBUTORS - {0} published content" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:748 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:972 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:1011 msgid "Last published contents" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:761 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:985 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:1024 msgid "Last updates" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:770 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:994 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:1033 #, python-format msgid "CONTRIBUTORS - {0} updated content" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:814 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:1039 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:1080 msgid "Last updated contents" msgstr "" -#: ./src/pyams_content/root/zmi/__init__.py:825 -#: ./src/pyams_content/shared/site/zmi/container.py:461 -msgid "Content" -msgstr "" - #: ./src/pyams_content/root/zmi/__init__.py:245 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:425 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:448 #, python-format msgid "CONTRIBUTOR - {0} modified contents" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:247 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:427 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:450 #, python-format msgid "CONTRIBUTOR - Last {0} modified contents" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:707 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:930 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:967 #, python-format msgid "CONTRIBUTORS - Last {0} published contents" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:709 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:932 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:969 msgid "CONTRIBUTORS - Last published contents (in the limit of 50)" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:775 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:999 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:1038 #, python-format msgid "CONTRIBUTORS - Last {0} updated contents" msgstr "" #: ./src/pyams_content/root/zmi/__init__.py:777 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:1001 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:1040 msgid "CONTRIBUTORS - Last updated contents (in the limit of 50)" msgstr "" @@ -3585,7 +3580,7 @@ msgstr "" #: ./src/pyams_content/root/zmi/search.py:162 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:244 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:258 #: ./src/pyams_content/shared/common/zmi/search.py:171 #: ./src/pyams_content/shared/common/zmi/types/updater.py:65 msgid "Owner" @@ -4472,7 +4467,7 @@ msgid "If 'yes', collections will be extracted from context" msgstr "" -#: ./src/pyams_content/shared/view/interfaces.py:294 +#: ./src/pyams_content/shared/view/interfaces.py:295 msgid "Other collections" msgstr "" @@ -4653,7 +4648,7 @@ #: ./src/pyams_content/shared/common/interfaces/__init__.py:182 #: ./src/pyams_content/shared/site/interfaces.py:93 #: ./src/pyams_content/shared/site/interfaces.py:138 -#: ./src/pyams_content/shared/site/zmi/folder.py:74 +#: ./src/pyams_content/shared/site/zmi/folder.py:76 msgid "Notepad" msgstr "" @@ -4661,49 +4656,49 @@ #: ./src/pyams_content/shared/common/interfaces/__init__.py:183 #: ./src/pyams_content/shared/site/interfaces.py:94 #: ./src/pyams_content/shared/site/interfaces.py:139 -#: ./src/pyams_content/shared/site/zmi/folder.py:75 +#: ./src/pyams_content/shared/site/zmi/folder.py:77 msgid "Internal information to be known about this content" msgstr "" -#: ./src/pyams_content/shared/blog/zmi/manager.py:57 +#: ./src/pyams_content/shared/blog/zmi/manager.py:68 msgid "Blog management" msgstr "" -#: ./src/pyams_content/shared/blog/zmi/manager.py:80 -#: ./src/pyams_content/shared/blog/zmi/manager.py:94 -msgid "Add blog manager" -msgstr "" - #: ./src/pyams_content/shared/blog/zmi/manager.py:93 +#: ./src/pyams_content/shared/blog/zmi/manager.py:107 +msgid "Add blog manager" +msgstr "" + +#: ./src/pyams_content/shared/blog/zmi/manager.py:106 msgid "Blog manager" msgstr "" -#: ./src/pyams_content/shared/blog/zmi/manager.py:148 +#: ./src/pyams_content/shared/blog/zmi/manager.py:166 msgid "Blog properties" msgstr "" -#: ./src/pyams_content/shared/blog/zmi/manager.py:163 -#: ./src/pyams_content/shared/blog/zmi/manager.py:175 +#: ./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:153 #: ./src/pyams_content/shared/site/zmi/container.py:165 msgid "Publication dates..." msgstr "" -#: ./src/pyams_content/shared/blog/zmi/manager.py:189 +#: ./src/pyams_content/shared/blog/zmi/manager.py:209 #: ./src/pyams_content/shared/site/zmi/container.py:179 msgid "Update publication dates" msgstr "" -#: ./src/pyams_content/shared/blog/zmi/manager.py:124 -#: ./src/pyams_content/shared/site/zmi/manager.py:163 +#: ./src/pyams_content/shared/blog/zmi/manager.py:137 +#: ./src/pyams_content/shared/site/zmi/manager.py:176 msgid "You must provide a short name for default server language!" msgstr "" -#: ./src/pyams_content/shared/blog/zmi/manager.py:128 +#: ./src/pyams_content/shared/blog/zmi/manager.py:142 msgid "Specified blog manager name is already used!" msgstr "" -#: ./src/pyams_content/shared/blog/zmi/manager.py:132 +#: ./src/pyams_content/shared/blog/zmi/manager.py:147 msgid "A blog manager is already registered with this name!!" msgstr "" @@ -4721,19 +4716,19 @@ msgid "Blog post « {title} »" msgstr "" -#: ./src/pyams_content/shared/common/__init__.py:268 +#: ./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 msgid "Properties" msgstr "" -#: ./src/pyams_content/shared/common/__init__.py:178 -#: ./src/pyams_content/shared/common/__init__.py:186 +#: ./src/pyams_content/shared/common/__init__.py:184 +#: ./src/pyams_content/shared/common/__init__.py:192 #, python-format msgid "{date} by {principal}" msgstr "" -#: ./src/pyams_content/shared/common/__init__.py:291 +#: ./src/pyams_content/shared/common/__init__.py:300 #, python-format msgid "title length should be between 40 and 66 characters ({length} actually)" msgstr "" @@ -5110,7 +5105,7 @@ msgstr "" #: ./src/pyams_content/shared/common/zmi/header.py:91 -#: ./src/pyams_content/shared/common/zmi/dashboard.py:184 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:194 msgid "Content publication start date is not passed yet" msgstr "" @@ -5170,46 +5165,50 @@ msgid "Tool management" msgstr "" -#: ./src/pyams_content/shared/common/zmi/dashboard.py:105 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:107 +msgid "Content type" +msgstr "" + +#: ./src/pyams_content/shared/common/zmi/dashboard.py:121 msgid "Type" msgstr "" -#: ./src/pyams_content/shared/common/zmi/dashboard.py:147 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:156 msgid "Unique ID" msgstr "" -#: ./src/pyams_content/shared/common/zmi/dashboard.py:167 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:177 #: ./src/pyams_content/shared/common/zmi/search.py:174 msgid "Status" msgstr "" -#: ./src/pyams_content/shared/common/zmi/dashboard.py:194 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:205 msgid "Status date" msgstr "" -#: ./src/pyams_content/shared/common/zmi/dashboard.py:211 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:223 #: ./src/pyams_content/shared/common/zmi/summary.py:165 msgid "Version" msgstr "" -#: ./src/pyams_content/shared/common/zmi/dashboard.py:226 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:239 msgid "Status principal" msgstr "" -#: ./src/pyams_content/shared/common/zmi/dashboard.py:266 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:281 msgid "Last modification" msgstr "" -#: ./src/pyams_content/shared/common/zmi/dashboard.py:299 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:315 msgid "Contents dashboard" msgstr "" -#: ./src/pyams_content/shared/common/zmi/dashboard.py:498 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:523 #: ./src/pyams_content/shared/common/zmi/templates/header.pt:26 msgid "Add/remove from favorites" msgstr "" -#: ./src/pyams_content/shared/common/zmi/dashboard.py:322 +#: ./src/pyams_content/shared/common/zmi/dashboard.py:339 #, python-format msgid "SEARCH - Between all contents of type « {type} »" msgstr "" @@ -5300,28 +5299,28 @@ "which at least one criteria is matching." msgstr "" -#: ./src/pyams_content/shared/common/zmi/__init__.py:289 +#: ./src/pyams_content/shared/common/zmi/__init__.py:292 msgid "Duplicate content..." msgstr "" -#: ./src/pyams_content/shared/common/zmi/__init__.py:309 +#: ./src/pyams_content/shared/common/zmi/__init__.py:312 msgid "Duplicate content" msgstr "" -#: ./src/pyams_content/shared/common/zmi/__init__.py:85 +#: ./src/pyams_content/shared/common/zmi/__init__.py:88 msgid "This title can be modified afterwards" msgstr "" -#: ./src/pyams_content/shared/common/zmi/__init__.py:300 +#: ./src/pyams_content/shared/common/zmi/__init__.py:303 msgid "Duplicate this content" msgstr "" -#: ./src/pyams_content/shared/common/zmi/__init__.py:357 +#: ./src/pyams_content/shared/common/zmi/__init__.py:360 #, python-format msgid "Clone created from version {source} of {oid} (in « {state} » state)" msgstr "" -#: ./src/pyams_content/shared/common/zmi/__init__.py:403 +#: ./src/pyams_content/shared/common/zmi/__init__.py:434 msgid "Created or modified in this version" msgstr "" @@ -5493,11 +5492,11 @@ msgid "{state} {date}" msgstr "" -#: ./src/pyams_content/shared/common/zmi/reverse.py:57 +#: ./src/pyams_content/shared/common/zmi/reverse.py:53 msgid "Reverse links" msgstr "" -#: ./src/pyams_content/shared/common/zmi/reverse.py:66 +#: ./src/pyams_content/shared/common/zmi/reverse.py:62 msgid "Content's internal links" msgstr "" @@ -5895,7 +5894,7 @@ msgstr "" #: ./src/pyams_content/shared/site/manager.py:68 -#: ./src/pyams_content/shared/site/zmi/manager.py:121 +#: ./src/pyams_content/shared/site/zmi/manager.py:133 msgid "Site manager" msgstr "" @@ -6012,7 +6011,11 @@ msgid "Folders and topics" msgstr "" -#: ./src/pyams_content/shared/site/zmi/container.py:557 +#: ./src/pyams_content/shared/site/zmi/container.py:462 +msgid "Content" +msgstr "" + +#: ./src/pyams_content/shared/site/zmi/container.py:559 msgid "Delete site item" msgstr "" @@ -6070,54 +6073,54 @@ msgid "Can't reparent object to one of it's children. Reloading..." msgstr "" -#: ./src/pyams_content/shared/site/zmi/manager.py:53 +#: ./src/pyams_content/shared/site/zmi/manager.py:63 msgid "Site management" msgstr "" -#: ./src/pyams_content/shared/site/zmi/manager.py:108 -#: ./src/pyams_content/shared/site/zmi/manager.py:122 +#: ./src/pyams_content/shared/site/zmi/manager.py:120 +#: ./src/pyams_content/shared/site/zmi/manager.py:134 msgid "Add site manager" msgstr "" -#: ./src/pyams_content/shared/site/zmi/manager.py:150 -#: ./src/pyams_content/shared/site/zmi/folder.py:185 +#: ./src/pyams_content/shared/site/zmi/manager.py:163 +#: ./src/pyams_content/shared/site/zmi/folder.py:194 msgid "Site folder properties" msgstr "" -#: ./src/pyams_content/shared/site/zmi/manager.py:167 +#: ./src/pyams_content/shared/site/zmi/manager.py:181 msgid "Specified site manager name is already used!" msgstr "" -#: ./src/pyams_content/shared/site/zmi/manager.py:171 +#: ./src/pyams_content/shared/site/zmi/manager.py:185 msgid "A site manager is already registered with this name!!" msgstr "" -#: ./src/pyams_content/shared/site/zmi/folder.py:57 +#: ./src/pyams_content/shared/site/zmi/folder.py:59 msgid "Add site folder..." msgstr "" -#: ./src/pyams_content/shared/site/zmi/folder.py:89 +#: ./src/pyams_content/shared/site/zmi/folder.py:91 msgid "Add site folder" msgstr "" -#: ./src/pyams_content/shared/site/zmi/folder.py:156 +#: ./src/pyams_content/shared/site/zmi/folder.py:158 msgid "Site folder management" msgstr "" -#: ./src/pyams_content/shared/site/zmi/folder.py:70 +#: ./src/pyams_content/shared/site/zmi/folder.py:72 #: ./src/pyams_content/shared/site/zmi/link.py:75 #: ./src/pyams_content/shared/site/zmi/link.py:227 #: ./src/pyams_content/shared/site/zmi/__init__.py:62 msgid "Parent" msgstr "" -#: ./src/pyams_content/shared/site/zmi/folder.py:71 +#: ./src/pyams_content/shared/site/zmi/folder.py:73 #: ./src/pyams_content/shared/site/zmi/link.py:76 #: ./src/pyams_content/shared/site/zmi/link.py:228 msgid "Folder's parent" msgstr "" -#: ./src/pyams_content/shared/site/zmi/folder.py:149 +#: ./src/pyams_content/shared/site/zmi/folder.py:151 msgid "You must provide a folder name for default server language!" msgstr "" diff -r 9479901b53a5 -r ed31bfceddda src/pyams_content/root/zmi/__init__.py --- a/src/pyams_content/root/zmi/__init__.py Wed Jul 01 14:10:50 2020 +0200 +++ b/src/pyams_content/root/zmi/__init__.py Wed Jul 01 18:05:38 2020 +0200 @@ -10,54 +10,49 @@ # FOR A PARTICULAR PURPOSE. # -__docformat__ = 'restructuredtext' - +from hypatia.catalog import CatalogQuery +from hypatia.interfaces import ICatalog +from hypatia.query import And, Any, Eq, Or +from z3c.table.interfaces import IValues +from zope.dublincore.interfaces import IZopeDublinCore +from zope.interface import Interface, implementer +from zope.intid.interfaces import IIntIds -# import standard library - -# import interfaces -from hypatia.interfaces import ICatalog -from pyams_content.interfaces import PUBLISH_CONTENT_PERMISSION, MANAGE_SITE_ROOT_PERMISSION +from pyams_catalog.query import CatalogResultSet +from pyams_content.interfaces import MANAGE_SITE_ROOT_PERMISSION, PUBLISH_CONTENT_PERMISSION from pyams_content.profile.interfaces import IAdminProfile from pyams_content.root.interfaces import ISiteRoot +from pyams_content.shared.common import CONTENT_TYPES from pyams_content.shared.common.interfaces import IBaseSharedTool, IManagerRestrictions from pyams_content.shared.common.interfaces.zmi import ISiteRootDashboardTable -from pyams_content.zmi.interfaces import IDashboardMenu, IMyDashboardMenu, IAllContentsMenu +from pyams_content.shared.common.zmi.dashboard import BaseDashboardTable as BaseDashboardTableBase +from pyams_content.zmi.interfaces import IAllContentsMenu, IDashboardMenu, IMyDashboardMenu from pyams_i18n.interfaces import II18n +from pyams_pagelet.pagelet import pagelet_config +from pyams_skin.container import ContainerView from pyams_skin.interfaces import IInnerPage, IPageHeader from pyams_skin.interfaces.configuration import IBackOfficeConfiguration, IConfiguration -from pyams_skin.interfaces.container import ITableElementName, ITableElementEditor +from pyams_skin.interfaces.container import ITableElementEditor, ITableElementName from pyams_skin.interfaces.viewlet import IBreadcrumbItem from pyams_skin.layer import IPyAMSLayer -from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION -from pyams_workflow.interfaces import IWorkflowVersions, IWorkflowState, IWorkflow -from pyams_zmi.interfaces.menu import IContentManagementMenu -from pyams_zmi.layer import IAdminLayer -from z3c.table.interfaces import IValues, IColumn -from zope.dublincore.interfaces import IZopeDublinCore -from zope.intid.interfaces import IIntIds - -# import packages -from hypatia.catalog import CatalogQuery -from hypatia.query import And, Or, Eq, Any -from pyams_catalog.query import CatalogResultSet -from pyams_content.shared.common import CONTENT_TYPES -from pyams_content.shared.common.zmi.dashboard import BaseDashboardTable as BaseDashboardTableBase -from pyams_pagelet.pagelet import pagelet_config -from pyams_skin.container import ContainerView from pyams_skin.page import DefaultPageHeaderAdapter -from pyams_skin.table import I18nColumn, DefaultElementEditorAdapter +from pyams_skin.table import DefaultElementEditorAdapter from pyams_skin.viewlet.breadcrumb import BreadcrumbAdminLayerItem from pyams_skin.viewlet.menu import MenuItem from pyams_template.template import template_config -from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter, ContextRequestAdapter +from pyams_utils.adapter import ContextRequestAdapter, ContextRequestViewAdapter, adapter_config +from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION from pyams_utils.list import unique_iter -from pyams_utils.registry import get_utility, get_all_utilities_registered_for +from pyams_utils.registry import get_all_utilities_registered_for, get_utility from pyams_viewlet.manager import viewletmanager_config from pyams_viewlet.viewlet import viewlet_config +from pyams_workflow.interfaces import IWorkflow, IWorkflowState, IWorkflowVersions +from pyams_zmi.interfaces.menu import IContentManagementMenu +from pyams_zmi.layer import IAdminLayer from pyams_zmi.view import AdminView -from z3c.table.column import GetAttrColumn -from zope.interface import implementer, Interface + + +__docformat__ = 'restructuredtext' from pyams_content import _ @@ -812,22 +807,3 @@ icon_class = 'fa fa-fw fa-pencil-square' title = _("Last updated contents") - - -# -# Custom columns -# - -@adapter_config(name='tool', context=(Interface, IPyAMSLayer, ISiteRootDashboardTable), provides=IColumn) -class SiteRootDashboardContentTypeColumn(I18nColumn, GetAttrColumn): - """Shared tool dashboard content type column""" - - _header = _("Content") - cssClasses = {'td': 'nowrap'} - weight = 1 - - def getValue(self, obj): - try: - return self.request.localizer.translate(obj.content_name) - except AttributeError: - return '--' diff -r 9479901b53a5 -r ed31bfceddda src/pyams_content/shared/blog/zmi/manager.py --- a/src/pyams_content/shared/blog/zmi/manager.py Wed Jul 01 14:10:50 2020 +0200 +++ b/src/pyams_content/shared/blog/zmi/manager.py Wed Jul 01 18:05:38 2020 +0200 @@ -10,8 +10,6 @@ # FOR A PARTICULAR PURPOSE. # -__docformat__ = 'restructuredtext' - from datetime import datetime from pyramid.events import subscriber @@ -20,23 +18,26 @@ from z3c.form.interfaces import IDataExtractedEvent from zope.interface import Invalid -from pyams_content.interfaces import MANAGE_SITE_ROOT_PERMISSION, MANAGE_SITE_PERMISSION, MANAGE_TOOL_PERMISSION +from pyams_content.interfaces import MANAGE_SITE_PERMISSION, MANAGE_SITE_ROOT_PERMISSION, \ + MANAGE_TOOL_PERMISSION from pyams_content.root.interfaces import ISiteRoot from pyams_content.shared.blog.interfaces import IBlogManager, IBlogManagerFactory from pyams_content.shared.blog.manager import BlogManager -from pyams_content.shared.common import IBaseSharedTool +from pyams_content.shared.common import IBaseSharedTool, IDashboardTypeColumnValue +from pyams_content.shared.common.interfaces.zmi import IDashboardTable from pyams_content.shared.common.zmi.manager import SharedToolPropertiesEditForm from pyams_content.zmi.interfaces import ISiteTreeTable, IUserAddingsMenuLabel from pyams_form.form import AJAXAddForm, ajax_config from pyams_i18n.interfaces import II18n, INegotiator from pyams_pagelet.pagelet import pagelet_config from pyams_skin.interfaces.container import ITableElementEditor -from pyams_skin.interfaces.viewlet import IToolbarAddingMenu, ITableItemColumnActionsMenu, IMenuHeader +from pyams_skin.interfaces.viewlet import IMenuHeader, ITableItemColumnActionsMenu, \ + IToolbarAddingMenu from pyams_skin.layer import IPyAMSLayer from pyams_skin.table import DefaultElementEditorAdapter from pyams_skin.viewlet.menu import MenuItem from pyams_skin.viewlet.toolbar import ToolbarMenuItem -from pyams_utils.adapter import adapter_config, ContextRequestAdapter +from pyams_utils.adapter import ContextRequestAdapter, adapter_config from pyams_utils.registry import query_utility from pyams_utils.timezone import tztime from pyams_utils.unicode import translate_string @@ -47,9 +48,19 @@ from pyams_zmi.interfaces.menu import IPropertiesMenu, ISiteManagementMenu from pyams_zmi.layer import IAdminLayer + +__docformat__ = 'restructuredtext' + from pyams_content import _ +@adapter_config(context=(IDashboardTable, IPyAMSLayer, IBlogManager), + provides=IDashboardTypeColumnValue) +def blog_manager_dashboard_type(context, request): + """Blog manager dashboard type column adapter""" + return request.localizer.translate(context.content_name) + + @adapter_config(context=(IBlogManager, ISiteManagementMenu), provides=IMenuHeader) class BlogManagerSiteManagementMenuHeader(ContextRequestAdapter): """Blog manager site management menu header adapter""" @@ -68,12 +79,14 @@ @property def label(self): return '{content} ({blog})'.format( - content=self.request.localizer.translate(self.context.shared_content_factory.content_class.content_name), + content=self.request.localizer.translate( + self.context.shared_content_factory.content_class.content_name), blog=II18n(self.context).query_attribute('title', request=self.request)) @viewlet_config(name='add-blog-manager.menu', context=ISiteRoot, layer=IAdminLayer, - view=ISiteTreeTable, manager=IToolbarAddingMenu, permission=MANAGE_SITE_ROOT_PERMISSION) + view=ISiteTreeTable, manager=IToolbarAddingMenu, + permission=MANAGE_SITE_ROOT_PERMISSION) class BlogManagerAddMenu(ToolbarMenuItem): """Blog manager add menu""" @@ -121,18 +134,22 @@ negotiator = query_utility(INegotiator) short_name = event.data['short_name'].get(negotiator.server_language) if not short_name: - event.form.widgets.errors += (Invalid(_("You must provide a short name for default server language!")),) + event.form.widgets.errors += (Invalid(_("You must provide a short name for default " + "server language!")),) return name = translate_string(short_name, force_lower=True, spaces='-') if name in container: - event.form.widgets.errors += (Invalid(_("Specified blog manager name is already used!")),) + event.form.widgets.errors += (Invalid(_("Specified blog manager name is already " + "used!")),) return blog = query_utility(IBlogManager, name=short_name) if blog is not None: - event.form.widgets.errors += (Invalid(_("A blog manager is already registered with this name!!")),) + event.form.widgets.errors += (Invalid(_("A blog manager is already registered with " + "this name!!")),) -@adapter_config(context=(IBlogManager, IAdminLayer, ISiteTreeTable), provides=ITableElementEditor) +@adapter_config(context=(IBlogManager, IAdminLayer, ISiteTreeTable), + provides=ITableElementEditor) class BlogManagerTableElementEditor(DefaultElementEditorAdapter): """Blog manager table element editor""" @@ -140,14 +157,16 @@ modal_target = False -@pagelet_config(name='properties.html', context=IBlogManager, layer=IPyAMSLayer, permission=MANAGE_TOOL_PERMISSION) +@pagelet_config(name='properties.html', context=IBlogManager, layer=IPyAMSLayer, + permission=MANAGE_TOOL_PERMISSION) @ajax_config(name='properties.json', context=IBlogManager, layer=IPyAMSLayer) class BlogManagerPropertiesEditForm(SharedToolPropertiesEditForm): """Site folder properties edit form""" legend = _("Blog properties") - fields = field.Fields(IBlogManager).select('title', 'short_name', 'description', 'notepad') + \ + fields = field.Fields(IBlogManager).select('title', 'short_name', 'description', + 'notepad') + \ field.Fields(IBaseSharedTool).select('shared_content_workflow') @@ -155,8 +174,9 @@ # Blog manager publication views # -@viewlet_config(name='workflow-publication.menu', context=IBlogManager, layer=IPyAMSLayer, view=ISiteTreeTable, - manager=ITableItemColumnActionsMenu, permission=MANAGE_SITE_PERMISSION, weight=210) +@viewlet_config(name='workflow-publication.menu', context=IBlogManager, layer=IPyAMSLayer, + view=ISiteTreeTable, manager=ITableItemColumnActionsMenu, + permission=MANAGE_SITE_PERMISSION, weight=210) class BlogManagerTableItemWorkflowPublicationMenu(ToolbarMenuItem): """Blog manager tree item workflow publication menu""" @@ -167,8 +187,8 @@ stop_propagation = True -@viewlet_config(name='workflow-publication.menu', context=IBlogManager, layer=IAdminLayer, manager=IPropertiesMenu, - permission=MANAGE_SITE_PERMISSION, weight=210) +@viewlet_config(name='workflow-publication.menu', context=IBlogManager, layer=IAdminLayer, + manager=IPropertiesMenu, permission=MANAGE_SITE_PERMISSION, weight=210) class BlogManagerWorkflowPublicationMenu(MenuItem): """Blog manager workflow publication menu""" @@ -188,7 +208,8 @@ legend = _("Update publication dates") - fields = field.Fields(IWorkflowPublicationInfo).select('publication_effective_date', 'publication_expiration_date') + fields = field.Fields(IWorkflowPublicationInfo).select('publication_effective_date', + 'publication_expiration_date') edit_permission = MANAGE_SITE_PERMISSION def updateWidgets(self, prefix=None): @@ -196,4 +217,5 @@ if 'publication_effective_date' in self.widgets: pub_info = IWorkflowPublicationInfo(self.context) if pub_info.publication_effective_date is None: - self.widgets['publication_effective_date'].value = tztime(datetime.utcnow()).strftime('%d/%m/%y %H:%M') + self.widgets['publication_effective_date'].value = \ + tztime(datetime.utcnow()).strftime('%d/%m/%y %H:%M') diff -r 9479901b53a5 -r ed31bfceddda src/pyams_content/shared/common/interfaces/zmi.py --- a/src/pyams_content/shared/common/interfaces/zmi.py Wed Jul 01 14:10:50 2020 +0200 +++ b/src/pyams_content/shared/common/interfaces/zmi.py Wed Jul 01 18:05:38 2020 +0200 @@ -38,3 +38,7 @@ class ISiteRootDashboardTable(IDashboardTable): """Site root dashboard table marker interface""" + + +class IDashboardTypeColumnValue(Interface): + """Dashboard content type column interface""" diff -r 9479901b53a5 -r ed31bfceddda src/pyams_content/shared/common/zmi/__init__.py --- a/src/pyams_content/shared/common/zmi/__init__.py Wed Jul 01 14:10:50 2020 +0200 +++ b/src/pyams_content/shared/common/zmi/__init__.py Wed Jul 01 18:05:38 2020 +0200 @@ -24,8 +24,11 @@ from pyams_content.features.review.interfaces import IReviewComments from pyams_content.interfaces import CREATE_CONTENT_PERMISSION, MANAGE_CONTENT_PERMISSION, \ MANAGE_SITE_ROOT_PERMISSION, PUBLISH_CONTENT_PERMISSION +from pyams_content.shared.common import IDashboardTypeColumnValue from pyams_content.shared.common.interfaces import IBaseSharedTool, IContributorRestrictions, \ IManagerRestrictions, ISharedContent, IWfSharedContent +from pyams_content.shared.common.interfaces.types import IWfTypedSharedContent +from pyams_content.shared.common.interfaces.zmi import IDashboardTable, ISiteRootDashboardTable from pyams_form.form import AJAXAddForm, ajax_config from pyams_form.interfaces.form import IFormContextPermissionChecker, IWidgetsPrefixViewletsManager from pyams_form.schema import CloseButton @@ -387,6 +390,34 @@ # Custom columns mixins # +@adapter_config(context=(IWfSharedContent, IPyAMSLayer, IDashboardTable), + provides=IDashboardTypeColumnValue) +def typed_shared_content_tool_dashboard_type_adapter(context, request, view): + """Typed shared content dashboard type column adapter""" + content = IWfTypedSharedContent(context, None) + if content is not None: + data_type = content.get_data_type() + if data_type is not None: + return II18n(data_type).query_attribute('navigation_label', request=request) or \ + II18n(data_type).query_attribute('label', request=request) + + +@adapter_config(context=(IWfSharedContent, IPyAMSLayer, ISiteRootDashboardTable), + provides=IDashboardTypeColumnValue) +def typed_shared_content_root_dashboard_type_adapter(context, request, view): + """Typed shared content root dashboard type column adapter""" + result = request.localizer.translate(context.content_name) + content = IWfTypedSharedContent(context, None) + if content is not None: + data_type = content.get_data_type() + if data_type is not None: + result = '{} ({})'.format( + result, + II18n(data_type).query_attribute('navigation_label', request=request) or + II18n(data_type).query_attribute('label', request=request)) + return result + + class WfModifiedContentColumnMixin(object): """Shared content modified column mixin""" @@ -398,7 +429,7 @@ item_dc = IZopeDublinCore(item) if item_dc.modified and (item_dc.modified > IZopeDublinCore(content).created): translate = self.request.localizer.translate - value += ''.format( + value += ''.format( translate(_("Created or modified in this version"))) return value diff -r 9479901b53a5 -r ed31bfceddda src/pyams_content/shared/common/zmi/dashboard.py --- a/src/pyams_content/shared/common/zmi/dashboard.py Wed Jul 01 14:10:50 2020 +0200 +++ b/src/pyams_content/shared/common/zmi/dashboard.py Wed Jul 01 18:05:38 2020 +0200 @@ -10,27 +10,25 @@ # FOR A PARTICULAR PURPOSE. # -__docformat__ = 'restructuredtext' - from hypatia.catalog import CatalogQuery from hypatia.interfaces import ICatalog -from hypatia.query import And, Or, Eq, Any +from hypatia.query import And, Any, Eq, Or from z3c.table.column import GetAttrColumn -from z3c.table.interfaces import IValues, IColumn +from z3c.table.interfaces import IColumn, IValues from zope.dublincore.interfaces import IZopeDublinCore -from zope.interface import implementer, Interface +from zope.interface import Interface, implementer from zope.intid.interfaces import IIntIds from pyams_catalog.query import CatalogResultSet from pyams_content.interfaces import MANAGE_SITE_ROOT_PERMISSION, PUBLISH_CONTENT_PERMISSION from pyams_content.profile.interfaces import IAdminProfile from pyams_content.shared.common import CONTENT_TYPES -from pyams_content.shared.common.interfaces import IBaseSharedTool, IWfSharedContent, IManagerRestrictions -from pyams_content.shared.common.interfaces.types import IWfTypedSharedContent -from pyams_content.shared.common.interfaces.zmi import IDashboardTable, ISharedToolDashboardTable, \ - IDashboardSearchHeader +from pyams_content.shared.common.interfaces import IBaseSharedTool, IManagerRestrictions, \ + ISharedTool, IWfSharedContent +from pyams_content.shared.common.interfaces.zmi import IDashboardSearchHeader, IDashboardTable, \ + IDashboardTypeColumnValue, ISharedToolDashboardTable from pyams_content.zmi import pyams_content -from pyams_content.zmi.interfaces import IDashboardMenu, IMyDashboardMenu, IAllContentsMenu +from pyams_content.zmi.interfaces import IAllContentsMenu, IDashboardMenu, IMyDashboardMenu from pyams_i18n.interfaces import II18n from pyams_pagelet.pagelet import pagelet_config from pyams_security.interfaces import ISecurityManager @@ -40,11 +38,11 @@ from pyams_skin.interfaces.container import ITableElementName from pyams_skin.layer import IPyAMSLayer from pyams_skin.page import DefaultPageHeaderAdapter -from pyams_skin.table import BaseTable, I18nColumn, NameColumn, JsActionColumn +from pyams_skin.table import BaseTable, I18nColumn, JsActionColumn, NameColumn from pyams_skin.viewlet.menu import MenuItem from pyams_template.template import template_config -from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter -from pyams_utils.date import format_datetime, SH_DATETIME_FORMAT +from pyams_utils.adapter import ContextRequestViewAdapter, adapter_config +from pyams_utils.date import SH_DATETIME_FORMAT, format_datetime from pyams_utils.fanstatic import get_resource_path from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION from pyams_utils.list import unique_iter @@ -54,11 +52,15 @@ from pyams_utils.traversing import get_parent from pyams_viewlet.manager import viewletmanager_config from pyams_viewlet.viewlet import viewlet_config -from pyams_workflow.interfaces import IWorkflowState, IWorkflow, IWorkflowVersions, IWorkflowPublicationInfo +from pyams_workflow.interfaces import IWorkflow, IWorkflowPublicationInfo, IWorkflowState, \ + IWorkflowVersions from pyams_zmi.interfaces.menu import IContentManagementMenu from pyams_zmi.layer import IAdminLayer from pyams_zmi.view import InnerAdminView + +__docformat__ = 'restructuredtext' + from pyams_content import _ @@ -102,17 +104,21 @@ class SharedToolDashboardTypeColumn(I18nColumn, GetAttrColumn): """Shared tool dashboard type column""" - _header = _("Type") + _header = _("Content type") weight = 9 def getValue(self, obj): - content = IWfTypedSharedContent(obj, None) - if content is not None: - data_type = content.get_data_type() - if data_type is not None: - return II18n(data_type).query_attribute('navigation_label', request=self.request) or \ - II18n(data_type).query_attribute('label', request=self.request) - return '--' + value = self.request.registry.queryMultiAdapter((obj, self.request, self.table), + IDashboardTypeColumnValue) + return value or '--' + + +@adapter_config(name='type', context=(ISharedTool, IPyAMSLayer, ISharedToolDashboardTable), + provides=IColumn) +class SharedContentDashboardTypeColumn(SharedToolDashboardTypeColumn): + """Shared tool dashboard type column""" + + _header = _("Type") @adapter_config(name='name', context=(Interface, IPyAMSLayer, IDashboardTable), provides=IColumn) @@ -122,7 +128,8 @@ _header = _("Title") -@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, IDashboardTable), provides=ITableElementName) +@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, IDashboardTable), + provides=ITableElementName) class SharedToolDashboardNameAdapter(ContextRequestViewAdapter): """Shared tool dashboard name adapter""" @@ -131,7 +138,8 @@ return II18n(self.context).query_attribute('title', request=self.request) -@adapter_config(context=(IWfSharedContent, IPyAMSLayer, IDashboardTable), provides=ITableElementName) +@adapter_config(context=(IWfSharedContent, IPyAMSLayer, IDashboardTable), + provides=ITableElementName) class SharedToolDashboardContentNameAdapter(ContextRequestViewAdapter): """Shared tool dashboard content name adapter""" @@ -140,7 +148,8 @@ return II18n(self.context).query_attribute('title', request=self.request) -@adapter_config(name='sequence', context=(Interface, IPyAMSLayer, IDashboardTable), provides=IColumn) +@adapter_config(name='sequence', context=(Interface, IPyAMSLayer, IDashboardTable), + provides=IColumn) class SharedToolDashboardSequenceColumn(I18nColumn, GetAttrColumn): """Shared tool dashboard sequence ID column""" @@ -160,7 +169,8 @@ return '--' -@adapter_config(name='status', context=(Interface, IPyAMSLayer, IDashboardTable), provides=IColumn) +@adapter_config(name='status', context=(Interface, IPyAMSLayer, IDashboardTable), + provides=IColumn) class SharedToolDashboardStatusColumn(I18nColumn, GetAttrColumn): """Shared tool dashboard status column""" @@ -187,7 +197,8 @@ return '--' -@adapter_config(name='status_date', context=(Interface, IPyAMSLayer, IDashboardTable), provides=IColumn) +@adapter_config(name='status_date', context=(Interface, IPyAMSLayer, IDashboardTable), + provides=IColumn) class SharedToolDashboardStatusDateColumn(I18nColumn, GetAttrColumn): """Shared tool dashboard status date column""" @@ -204,7 +215,8 @@ return '--' -@adapter_config(name='version', context=(Interface, IPyAMSLayer, IDashboardTable), provides=IColumn) +@adapter_config(name='version', context=(Interface, IPyAMSLayer, IDashboardTable), + provides=IColumn) class SharedToolDashboardVersionColumn(I18nColumn, GetAttrColumn): """Shared tool dashboard version column""" @@ -219,7 +231,8 @@ return '--' -@adapter_config(name='status_principal', context=(Interface, IPyAMSLayer, IDashboardTable), provides=IColumn) +@adapter_config(name='status_principal', context=(Interface, IPyAMSLayer, IDashboardTable), + provides=IColumn) class SharedToolDashboardStatusPrincipalColumn(I18nColumn, GetAttrColumn): """Shared tool dashboard status principal column""" @@ -237,7 +250,8 @@ return '--' -@adapter_config(name='owner', context=(Interface, IPyAMSLayer, IDashboardTable), provides=IColumn) +@adapter_config(name='owner', context=(Interface, IPyAMSLayer, IDashboardTable), + provides=IColumn) class SharedToolDashboardOwnerColumn(I18nColumn, GetAttrColumn): """Shared tool dashboard owner column""" @@ -259,7 +273,8 @@ return '--' -@adapter_config(name='modified', context=(Interface, IPyAMSLayer, IDashboardTable), provides=IColumn) +@adapter_config(name='modified', context=(Interface, IPyAMSLayer, IDashboardTable), + provides=IColumn) class SharedToolDashboardModifiedColumn(I18nColumn, GetAttrColumn): """Shared tool dashboard modified column""" @@ -291,7 +306,8 @@ url = '#dashboard.html' -@pagelet_config(name='dashboard.html', context=IBaseSharedTool, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION) +@pagelet_config(name='dashboard.html', context=IBaseSharedTool, layer=IPyAMSLayer, + permission=VIEW_SYSTEM_PERMISSION) @template_config(template='templates/dashboard.pt', layer=IAdminLayer) class SharedToolDashboardView(InnerAdminView): """Shared tool dashboard view""" @@ -314,17 +330,20 @@ @property def header_title(self): registry = self.request.registry - adapter = registry.queryMultiAdapter((self.context, self.request, self), IDashboardSearchHeader) + adapter = registry.queryMultiAdapter((self.context, self.request, self), + IDashboardSearchHeader) if adapter is not None: return adapter.title else: translate = self.request.localizer.translate - return translate(_("SEARCH - Between all contents of type « {type} »")).format( + return translate(_("SEARCH - Between all contents of type " + "« {type} »")).format( type=II18n(self.context).query_attribute('title', request=self.request) ) -@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolDashboardView), provides=IPageHeader) +@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolDashboardView), + provides=IPageHeader) class SharedToolDashboardHeaderAdapter(DefaultPageHeaderAdapter): """Shared tool properties header adapter""" @@ -346,7 +365,8 @@ _plural_title = _("MANAGER - {0} contents waiting for your action") -@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolDashboardManagerWaitingTable), provides=IValues) +@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolDashboardManagerWaitingTable), + provides=IValues) class SharedToolDashboardManagerWaitingValues(ContextRequestViewAdapter): """Shared tool dashboard waiting values adapter""" @@ -359,8 +379,9 @@ Any(catalog['content_type'], CONTENT_TYPES.keys()) & \ Any(catalog['workflow_state'], workflow.waiting_states) yield from filter(self.check_access, - unique_iter(map(lambda x: sorted(IWorkflowVersions(x).get_versions(IWorkflowState(x).state), - key=lambda y: IZopeDublinCore(y).modified, reverse=True)[0], + unique_iter(map(lambda x: sorted( + IWorkflowVersions(x).get_versions(IWorkflowState(x).state), + key=lambda y: IZopeDublinCore(y).modified, reverse=True)[0], CatalogResultSet(CatalogQuery(catalog).query(params, sort_index='modified_date'))))) @@ -390,7 +411,8 @@ dt_sort_order = 'asc' -@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolDashboardOwnerWaitingTable), provides=IValues) +@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolDashboardOwnerWaitingTable), + provides=IValues) class SharedToolDashboardOwnerWaitingValues(ContextRequestViewAdapter): """Shared tool dashboard waiting owned contents values adapter""" @@ -403,10 +425,11 @@ Any(catalog['content_type'], CONTENT_TYPES.keys()) & \ Any(catalog['workflow_state'], workflow.waiting_states) & \ Eq(catalog['workflow_principal'], self.request.principal.id) - yield from unique_iter(map(lambda x: sorted(IWorkflowVersions(x).get_versions(IWorkflowState(x).state), - key=lambda y: IZopeDublinCore(y).modified, reverse=True)[0], - CatalogResultSet(CatalogQuery(catalog).query(params, - sort_index='modified_date')))) + yield from unique_iter( + map(lambda x: sorted(IWorkflowVersions(x).get_versions(IWorkflowState(x).state), + key=lambda y: IZopeDublinCore(y).modified, reverse=True)[0], + CatalogResultSet(CatalogQuery(catalog).query(params, + sort_index='modified_date')))) # @@ -427,7 +450,8 @@ return _("CONTRIBUTOR - Last {0} modified contents") -@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolDashboardOwnerModifiedTable), provides=IValues) +@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolDashboardOwnerModifiedTable), + provides=IValues) class SharedToolDashboardOwnerModifiedValues(ContextRequestViewAdapter): """Shared tool dashboard waiting owned contents values adapter""" @@ -439,12 +463,13 @@ Any(catalog['content_type'], CONTENT_TYPES.keys()), Or(Eq(catalog['role:owner'], self.request.principal.id), Eq(catalog['role:contributor'], self.request.principal.id))) - yield from unique_iter(map(lambda x: sorted(IWorkflowVersions(x).get_versions(IWorkflowState(x).state), - key=lambda y: IZopeDublinCore(y).modified, reverse=True)[0], - CatalogResultSet(CatalogQuery(catalog).query(params, - limit=50, - sort_index='modified_date', - reverse=True)))) + yield from unique_iter( + map(lambda x: sorted(IWorkflowVersions(x).get_versions(IWorkflowState(x).state), + key=lambda y: IZopeDublinCore(y).modified, reverse=True)[0], + CatalogResultSet(CatalogQuery(catalog).query(params, + limit=50, + sort_index='modified_date', + reverse=True)))) # @@ -540,14 +565,16 @@ reverse=True)))) -@pagelet_config(name='my-favorites.html', context=IBaseSharedTool, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION) +@pagelet_config(name='my-favorites.html', context=IBaseSharedTool, layer=IPyAMSLayer, + permission=VIEW_SYSTEM_PERMISSION) class SharedToolFavoritesView(InnerAdminView, ContainerView): """Shared tool favorites view""" table_class = SharedToolFavoritesTable -@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolFavoritesView), provides=IPageHeader) +@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolFavoritesView), + provides=IPageHeader) class SharedToolFavoritesHeaderAdapter(DefaultPageHeaderAdapter): """Shared tool favorites header adapter""" @@ -584,7 +611,8 @@ _plural_title = _("CONTRIBUTOR - {0} contents in preparation") -@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolPreparationsTable), provides=IValues) +@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolPreparationsTable), + provides=IValues) class SharedToolPreparationsValues(ContextRequestViewAdapter): """Shared tool preparations values adapter""" @@ -611,7 +639,8 @@ table_class = SharedToolPreparationsTable -@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolPreparationsView), provides=IPageHeader) +@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolPreparationsView), + provides=IPageHeader) class SharedToolPreparationsHeaderAdapter(DefaultPageHeaderAdapter): """Shared tool preparations header adapter""" @@ -648,7 +677,8 @@ _plural_title = _("CONTRIBUTOR - {0} submitted contents") -@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolSubmissionsTable), provides=IValues) +@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolSubmissionsTable), + provides=IValues) class SharedToolSubmissionsValues(ContextRequestViewAdapter): """Shared tool submissions values adapter""" @@ -675,7 +705,8 @@ table_class = SharedToolSubmissionsTable -@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolSubmissionsView), provides=IPageHeader) +@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolSubmissionsView), + provides=IPageHeader) class SharedToolSubmissionsHeaderAdapter(DefaultPageHeaderAdapter): """Shared tool submissions header adapter""" @@ -712,7 +743,8 @@ _plural_title = _("CONTRIBUTOR - {0} published contents") -@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolPublicationsTable), provides=IValues) +@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolPublicationsTable), + provides=IValues) class SharedToolPublicationsValues(ContextRequestViewAdapter): """Shared tool publications values adapter""" @@ -739,7 +771,8 @@ table_class = SharedToolPublicationsTable -@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolPublicationsView), provides=IPageHeader) +@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolPublicationsView), + provides=IPageHeader) class SharedToolPublicationsHeaderAdapter(DefaultPageHeaderAdapter): """Shared tool publications header adapter""" @@ -776,7 +809,8 @@ _plural_title = _("CONTRIBUTOR - {0} retired contents") -@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolRetiredContentsTable), provides=IValues) +@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolRetiredContentsTable), + provides=IValues) class SharedToolRetiredContentsValues(ContextRequestViewAdapter): """Shared tool retired contents values adapter""" @@ -803,7 +837,8 @@ table_class = SharedToolRetiredContentsTable -@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolRetiredContentsView), provides=IPageHeader) +@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolRetiredContentsView), + provides=IPageHeader) class SharedToolRetiredContentsHeaderAdapter(DefaultPageHeaderAdapter): """Shared tool retired contents header adapter""" @@ -840,7 +875,8 @@ _plural_title = _("CONTRIBUTOR - {0} archived contents") -@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolArchivedContentsTable), provides=IValues) +@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolArchivedContentsTable), + provides=IValues) class SharedToolArchivedContentsValues(ContextRequestViewAdapter): """Shared tool archived contents values adapter""" @@ -873,7 +909,8 @@ table_class = SharedToolArchivedContentsTable -@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolArchivedContentsView), provides=IPageHeader) +@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolArchivedContentsView), + provides=IPageHeader) class SharedToolArchivedContentsHeaderAdapter(DefaultPageHeaderAdapter): """Shared tool archived contents header adapter""" @@ -932,7 +969,8 @@ return _("CONTRIBUTORS - Last published contents (in the limit of 50)") -@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolAllPublicationsTable), provides=IValues) +@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolAllPublicationsTable), + provides=IValues) class SharedToolAllPublicationsValues(ContextRequestViewAdapter): """Shared tool published contents values adapter""" @@ -958,7 +996,8 @@ table_class = SharedToolAllPublicationsTable -@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolAllPublicationsView), provides=IPageHeader) +@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolAllPublicationsView), + provides=IPageHeader) class SharedToolAllPublicationsHeaderAdapter(DefaultPageHeaderAdapter): """Shared tool published contents header adapter""" @@ -1001,7 +1040,8 @@ return _("CONTRIBUTORS - Last updated contents (in the limit of 50)") -@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolAllUpdatesTable), provides=IValues) +@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolAllUpdatesTable), + provides=IValues) class SharedToolAllUpdatesValues(ContextRequestViewAdapter): """Shared tool updated contents values adapter""" @@ -1025,7 +1065,8 @@ table_class = SharedToolAllUpdatesTable -@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolAllUpdatesView), provides=IPageHeader) +@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolAllUpdatesView), + provides=IPageHeader) class SharedToolAllUpdatesHeaderAdapter(DefaultPageHeaderAdapter): """Shared tool updated contents header adapter""" diff -r 9479901b53a5 -r ed31bfceddda src/pyams_content/shared/site/zmi/folder.py --- a/src/pyams_content/shared/site/zmi/folder.py Wed Jul 01 14:10:50 2020 +0200 +++ b/src/pyams_content/shared/site/zmi/folder.py Wed Jul 01 18:05:38 2020 +0200 @@ -21,7 +21,9 @@ from zope.schema import Int, Text from pyams_content.interfaces import MANAGE_SITE_PERMISSION, MANAGE_TOOL_PERMISSION +from pyams_content.shared.common import IDashboardTypeColumnValue from pyams_content.shared.common.interfaces import IBaseSharedTool +from pyams_content.shared.common.interfaces.zmi import IDashboardTable from pyams_content.shared.common.zmi.manager import SharedToolPropertiesEditForm from pyams_content.shared.site.interfaces import ISiteContainer, ISiteFolder, ISiteManager from pyams_content.shared.site.zmi.widget import SiteManagerFoldersSelectorFieldWidget @@ -160,6 +162,13 @@ # Site folder edit form # +@adapter_config(context=(ISiteFolder, IPyAMSLayer, IDashboardTable), + provides=IDashboardTypeColumnValue) +def site_folder_dashboard_type(context, request, view): + """Site folder dashboard type column adapter""" + return request.localizer.translate(context.content_name) + + @adapter_config(context=(ISiteFolder, IPyAMSLayer), provides=ITableElementName) class SiteFolderTableElementNameAdapter(ContextRequestAdapter): """Site folder table element name adapter""" diff -r 9479901b53a5 -r ed31bfceddda src/pyams_content/shared/site/zmi/manager.py --- a/src/pyams_content/shared/site/zmi/manager.py Wed Jul 01 14:10:50 2020 +0200 +++ b/src/pyams_content/shared/site/zmi/manager.py Wed Jul 01 18:05:38 2020 +0200 @@ -10,18 +10,16 @@ # FOR A PARTICULAR PURPOSE. # -__docformat__ = 'restructuredtext' - from pyramid.events import subscriber from pyramid.path import DottedNameResolver from z3c.form import field from z3c.form.interfaces import IDataExtractedEvent from zope.interface import Interface, Invalid -from pyams_content import _ from pyams_content.interfaces import MANAGE_SITE_ROOT_PERMISSION, MANAGE_TOOL_PERMISSION from pyams_content.root.interfaces import ISiteRoot -from pyams_content.shared.common import IBaseSharedTool +from pyams_content.shared.common import IBaseSharedTool, IDashboardTypeColumnValue +from pyams_content.shared.common.interfaces.zmi import IDashboardTable from pyams_content.shared.common.zmi.manager import SharedToolPropertiesEditForm from pyams_content.shared.site import WfSiteTopic from pyams_content.shared.site.interfaces import ISiteManager, ISiteManagerFactory @@ -46,6 +44,18 @@ from pyams_zmi.layer import IAdminLayer +__docformat__ = 'restructuredtext' + +from pyams_content import _ + + +@adapter_config(context=(ISiteManager, IPyAMSLayer, IDashboardTable), + provides=IDashboardTypeColumnValue) +def site_manager_dashboard_type(context, request, view): + """Site manager dashboard type column adapter""" + return request.localizer.translate(context.content_name) + + @adapter_config(context=(ISiteManager, ISiteManagementMenu), provides=IMenuHeader) class SiteManagerSiteManagementMenuHeader(ContextRequestAdapter): """Site manager site management menu header adapter""" @@ -81,7 +91,8 @@ modal_target = False -@adapter_config(context=(ISiteManager, IAdminLayer, ISiteTreeTable), provides=ITableElementEditor) +@adapter_config(context=(ISiteManager, IAdminLayer, ISiteTreeTable), + provides=ITableElementEditor) class SiteManagerTableElementEditor(DefaultElementEditorAdapter): """Site tree table element editor""" @@ -101,7 +112,8 @@ @viewlet_config(name='add-site-manager.menu', context=ISiteRoot, layer=IAdminLayer, - view=ISiteTreeTable, manager=IToolbarAddingMenu, permission=MANAGE_SITE_ROOT_PERMISSION) + view=ISiteTreeTable, manager=IToolbarAddingMenu, + permission=MANAGE_SITE_ROOT_PERMISSION) class SiteManagerAddMenu(ToolbarMenuItem): """Site manager add menu""" @@ -142,7 +154,8 @@ return absolute_url(self.context, self.request, 'site-tree.html') -@pagelet_config(name='properties.html', context=ISiteManager, layer=IPyAMSLayer, permission=MANAGE_TOOL_PERMISSION) +@pagelet_config(name='properties.html', context=ISiteManager, layer=IPyAMSLayer, + permission=MANAGE_TOOL_PERMISSION) @ajax_config(name='properties.json', context=ISiteManager, layer=IPyAMSLayer) class SiteManagerPropertiesEditForm(SharedToolPropertiesEditForm): """Site manager properties edit form""" @@ -160,7 +173,8 @@ negotiator = query_utility(INegotiator) short_name = event.data.get('short_name', {}).get(negotiator.server_language) if not short_name: - event.form.widgets.errors += (Invalid(_("You must provide a short name for default server language!")),) + event.form.widgets.errors += (Invalid(_("You must provide a short name for default " + "server language!")),) return name = translate_string(short_name, force_lower=True, spaces='-') if name in container: @@ -168,4 +182,5 @@ return site = query_utility(ISiteManager, name=short_name) if site is not None: - event.form.widgets.errors += (Invalid(_("A site manager is already registered with this name!!")),) + event.form.widgets.errors += (Invalid(_("A site manager is already registered with " + "this name!!")),)