# HG changeset patch # User Thierry Florac # Date 1525340897 -7200 # Node ID e1bed28e3ff794b2ff25919c2f8d16068ffed4c9 # Parent 48af829c3e59c39ca19a22ddf256386687c806da Updated groups management diff -r 48af829c3e59 -r e1bed28e3ff7 src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.mo Binary file src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.mo has changed diff -r 48af829c3e59 -r e1bed28e3ff7 src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.po --- a/src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.po Thu May 03 11:36:20 2018 +0200 +++ b/src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.po Thu May 03 11:48:17 2018 +0200 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE 1.0\n" -"POT-Creation-Date: 2017-06-28 16:44+0200\n" +"POT-Creation-Date: 2018-05-03 11:36+0200\n" "PO-Revision-Date: 2015-05-12 12:10+0200\n" "Last-Translator: Thierry Florac \n" "Language-Team: French \n" @@ -24,63 +24,70 @@ msgid "Portal templates manager" msgstr "Gestionnaire des modèles" -#: src/pyams_portal/zmi/portlet.py:45 +#: src/pyams_portal/zmi/portlet.py:50 +msgid "Edit portlet settings" +msgstr "Propriétés du composant" + +#: src/pyams_portal/zmi/portlet.py:92 +msgid "Main properties" +msgstr "Propriétés" + +#: src/pyams_portal/zmi/portlet.py:66 src/pyams_portal/zmi/portlet.py:72 +msgid "Override template settings" +msgstr "Remplacer le paramétrage du modèle" + +#: src/pyams_portal/zmi/portlet.py:47 #, python-format msgid "« {0} » portal template - {1}" msgstr "Modèle de présentation « {0} » - {1}" -#: src/pyams_portal/zmi/portlet.py:48 -msgid "Edit portlet settings" -msgstr "Propriétés du composant" - -#: src/pyams_portal/zmi/portlet.py:63 +#: src/pyams_portal/zmi/portlet.py:70 msgid "Override parent settings" msgstr "Remplacer le paramétrage du parent" -#: src/pyams_portal/zmi/portlet.py:65 -msgid "Override template settings" -msgstr "Remplacer le paramétrage du modèle" - -#: src/pyams_portal/zmi/portlet.py:84 -msgid "Main properties" -msgstr "Propriétés" - -#: src/pyams_portal/zmi/page.py:63 +#: src/pyams_portal/zmi/page.py:67 msgid "Presentation" msgstr "Présentation" -#: src/pyams_portal/zmi/page.py:78 +#: src/pyams_portal/zmi/page.py:124 msgid "Edit template configuration" msgstr "Choix du modèle de présentation" -#: src/pyams_portal/zmi/page.py:98 -msgid "Use shared template" -msgstr "Utiliser un modèle de présentation partagé" - -#: src/pyams_portal/zmi/page.py:128 +#: src/pyams_portal/zmi/page.py:201 msgid "" "If you choose a shared template, you can only adjust settings of each " "portlet individually but can't change portlets list or page configuration.\n" "If you use a local template, you can define a whole custom configuration but " "the template definition can't be reused anywhere..." msgstr "" -"Si vous choisissez d'utiliser un modèle de présentation partagé, vous pourrez ajuster les " -"paramètres de chaque composant mais ne pourrez pas modifier la liste des composants ou leur " -"position et la configuration de la page.\n" -"Si vous choisissez d'utiliser un modèle de présentation local, vous pourrez définir l'ensemble de " -"la configuration mais le modèle de présentation ne pourra pas être réutilisé en dehors des sous-niveaux " -"qui pourront en hériter...\n" -"ATTENTION : si vous choisissez d'hériter du modèle du parent, les autres paramètres modifiés ici seront sans effet !!!" +"Si vous choisissez d'utiliser un modèle de présentation partagé, vous " +"pourrez ajuster les paramètres de chaque composant mais ne pourrez pas " +"modifier la liste des composants ou leur position et la configuration de la " +"page.\n" +"Si vous choisissez d'utiliser un modèle de présentation local, vous pourrez " +"définir l'ensemble de la configuration mais le modèle de présentation ne " +"pourra pas être réutilisé en dehors des sous-niveaux qui pourront en " +"hériter...\n" +"ATTENTION : si vous choisissez d'hériter du modèle du parent, les autres " +"paramètres modifiés ici seront sans effet !!!" -#: src/pyams_portal/zmi/page.py:144 +#: src/pyams_portal/zmi/page.py:217 msgid "Template properties" msgstr "Configuration du modèle" -#: src/pyams_portal/zmi/template.py:63 src/pyams_portal/zmi/layout.py:220 -#: src/pyams_portal/zmi/layout.py:382 -#, python-format -msgid "« {0} » portal template" -msgstr "Modèle de présentation « {0} »" +#: src/pyams_portal/zmi/page.py:93 src/pyams_portal/zmi/page.py:156 +msgid "Use shared template" +msgstr "Utiliser un modèle de présentation partagé" + +#: src/pyams_portal/zmi/page.py:110 src/pyams_portal/zmi/page.py:172 +msgid "You must choose to use a local template or select a shared one!" +msgstr "" +"Vous devez choisir un modèle de présentation partagé lorsque vous " +"n'appliquez pas de modèle local !" + +#: src/pyams_portal/zmi/page.py:146 +msgid "Override parent template" +msgstr "Ne pas hériter du modèle de présentation du parent" #: src/pyams_portal/zmi/template.py:84 msgid "Add template" @@ -94,31 +101,20 @@ msgid "Add shared template" msgstr "Ajout d'un modèle de présentation" -#: src/pyams_portal/zmi/template.py:119 src/pyams_portal/zmi/layout.py:246 +#: src/pyams_portal/zmi/template.py:119 src/pyams_portal/zmi/layout.py:247 msgid "Specified name is already used!" msgstr "Le nom indiqué est déjà utilisé !" -#: src/pyams_portal/zmi/layout.py:68 -msgid "Template management" -msgstr "Ce modèle" +#: src/pyams_portal/zmi/template.py:63 src/pyams_portal/zmi/layout.py:220 +#: src/pyams_portal/zmi/layout.py:393 +#, python-format +msgid "« {0} » portal template" +msgstr "Modèle de présentation « {0} »" -#: src/pyams_portal/zmi/layout.py:78 +#: src/pyams_portal/zmi/layout.py:77 msgid "Properties" msgstr "Propriétés" -#: src/pyams_portal/zmi/layout.py:96 -msgid "Local template configuration" -msgstr "Configuration d'un modèle local" - -#: src/pyams_portal/zmi/layout.py:99 -#, python-format -msgid "Shared template configuration ({0})" -msgstr "Configuration d'un modèle partagé ({0})" - -#: src/pyams_portal/zmi/layout.py:101 -msgid "Template configuration" -msgstr "Configuration d'un modèle" - #: src/pyams_portal/zmi/layout.py:164 msgid "Add row..." msgstr "Ajouter une ligne" @@ -132,49 +128,69 @@ msgid "Add slot" msgstr "Ajout d'un panneau" -#: src/pyams_portal/zmi/layout.py:300 +#: src/pyams_portal/zmi/layout.py:310 +msgid "Edit slot properties" +msgstr "Propriétés d'un panneau" + +#: src/pyams_portal/zmi/layout.py:379 +msgid "Add portlet..." +msgstr "Ajouter un composant" + +#: src/pyams_portal/zmi/layout.py:395 +msgid "Add portlet" +msgstr "Ajouter un composant" + +#: src/pyams_portal/zmi/layout.py:67 +msgid "Template management" +msgstr "Ce modèle" + +#: src/pyams_portal/zmi/layout.py:101 +msgid "Template configuration" +msgstr "Configuration d'un modèle" + +#: src/pyams_portal/zmi/layout.py:96 +msgid "Local template configuration" +msgstr "Configuration d'un modèle local" + +#: src/pyams_portal/zmi/layout.py:307 #, python-format msgid "« {0} » portal template - {1} slot" msgstr "Modèle de présentation « {0} » - Panneau {1}" -#: src/pyams_portal/zmi/layout.py:303 -msgid "Edit slot properties" -msgstr "Propriétés d'un panneau" - -#: src/pyams_portal/zmi/layout.py:368 -msgid "Add portlet..." -msgstr "Ajouter un composant" - -#: src/pyams_portal/zmi/layout.py:384 -msgid "Add portlet" -msgstr "Ajouter un composant" +#: src/pyams_portal/zmi/layout.py:99 +#, python-format +msgid "Shared template configuration ({0})" +msgstr "Configuration d'un modèle partagé ({0})" #: src/pyams_portal/zmi/container.py:87 msgid "Shared portal templates" msgstr "Modèles de présentation partagés" -#: src/pyams_portal/zmi/container.py:127 +#: src/pyams_portal/zmi/container.py:124 msgid "Delete template" msgstr "Supprimer le modèle" -#: src/pyams_portal/zmi/container.py:170 +#: src/pyams_portal/zmi/container.py:174 msgid "Selected portlets..." msgstr "Composants sélectionnés" -#: src/pyams_portal/zmi/container.py:186 +#: src/pyams_portal/zmi/container.py:192 msgid "Portal templates container" msgstr "Gestionnaire des modèles" -#: src/pyams_portal/zmi/container.py:187 +#: src/pyams_portal/zmi/container.py:193 msgid "Edit selected portlets" msgstr "Sélection des composants" -#: src/pyams_portal/zmi/templates/portlet.pt:129 -#: src/pyams_portal/zmi/templates/portlet.pt:144 +#: src/pyams_portal/zmi/templates/portlet.pt:134 msgid "Title" msgstr "Titre" -#: src/pyams_portal/zmi/templates/portlet.pt:159 +#: src/pyams_portal/zmi/templates/portlet.pt:149 +msgid "Legend" +msgstr "Légende" + +#: src/pyams_portal/zmi/templates/portlet.pt:164 msgid "Tab label" msgstr "Libellé de l'onglet" @@ -210,23 +226,27 @@ msgid "Large desktop device (> 1170px)" msgstr "Écrans de grande taille (> 1170 px)" -#: src/pyams_portal/zmi/templates/layout.pt:123 +#: src/pyams_portal/zmi/templates/layout.pt:110 +msgid "Override parent or template settings" +msgstr "Remplacer le paramétrage du parent ou du modèle" + +#: src/pyams_portal/zmi/templates/layout.pt:129 msgid "Delete row..." msgstr "Supprimer la ligne" -#: src/pyams_portal/zmi/templates/layout.pt:132 +#: src/pyams_portal/zmi/templates/layout.pt:138 msgid "Edit slot properties..." msgstr "Propriétés" -#: src/pyams_portal/zmi/templates/layout.pt:139 +#: src/pyams_portal/zmi/templates/layout.pt:145 msgid "Delete slot..." msgstr "Supprimer le panneau" -#: src/pyams_portal/zmi/templates/layout.pt:147 +#: src/pyams_portal/zmi/templates/layout.pt:153 msgid "Edit portlet properties..." msgstr "Propriétés" -#: src/pyams_portal/zmi/templates/layout.pt:155 +#: src/pyams_portal/zmi/templates/layout.pt:161 msgid "Delete portlet..." msgstr "Supprimer le composant" @@ -250,6 +270,38 @@ msgid "Default content renderer" msgstr "Rendu de contenu (par défaut)" +#: src/pyams_portal/portlets/html/__init__.py:53 +msgid "Raw HTML" +msgstr "Code HTML" + +#: src/pyams_portal/portlets/html/__init__.py:65 +msgid "Default code renderer" +msgstr "Rendu de code HTML (par défaut)" + +#: src/pyams_portal/portlets/html/__init__.py:87 +msgid "Rich text" +msgstr "Texte enrichi" + +#: src/pyams_portal/portlets/html/__init__.py:99 +msgid "Default text renderer" +msgstr "Rendu de code HTML (par défaut)" + +#: src/pyams_portal/portlets/html/interfaces.py:31 +msgid "Raw HTML code" +msgstr "Code HTML" + +#: src/pyams_portal/portlets/html/interfaces.py:32 +msgid "" +"This HTML code will be used 'as is', without any transformation. Use with " +"care!!" +msgstr "" +"Ce code HTML sera utilisé 'en l'état', sans aucune vérification ni transformation. " +"À utiliser donc avec précaution !!" + +#: src/pyams_portal/portlets/html/interfaces.py:40 +msgid "Body" +msgstr "Contenu HTML" + #: src/pyams_portal/interfaces/__init__.py:65 msgid "Portlet" msgstr "Composant" @@ -363,19 +415,19 @@ msgid "CSS class applied to this slot" msgstr "Classe CSS spécifique appliquée à ce panneau" -#: src/pyams_portal/interfaces/__init__.py:344 +#: src/pyams_portal/interfaces/__init__.py:346 msgid "Template name" msgstr "Nom du modèle" -#: src/pyams_portal/interfaces/__init__.py:345 +#: src/pyams_portal/interfaces/__init__.py:347 msgid "Two registered templates can't share the same name..." msgstr "Deux modèles partagés ne peuvent pas utiliser le même nom..." -#: src/pyams_portal/interfaces/__init__.py:366 +#: src/pyams_portal/interfaces/__init__.py:368 msgid "Toolbar portlets" msgstr "Composants de la barre d'outils" -#: src/pyams_portal/interfaces/__init__.py:367 +#: src/pyams_portal/interfaces/__init__.py:369 msgid "" "These portlets will be directly available in templates configuration page " "toolbar" @@ -383,48 +435,51 @@ "Ces composants seront directement accessibles dans la page de configuration " "des modèles de présentation sous la forme d'une barre d'icônes" -#: src/pyams_portal/interfaces/__init__.py:393 +#: src/pyams_portal/interfaces/__init__.py:395 msgid "Inherit parent template?" msgstr "Hériter du modèle du parent ?" -#: src/pyams_portal/interfaces/__init__.py:394 +#: src/pyams_portal/interfaces/__init__.py:396 msgid "Should we reuse parent template?" msgstr "Doit-on ré-utiliser le modèle du parent ?" -#: src/pyams_portal/interfaces/__init__.py:398 +#: src/pyams_portal/interfaces/__init__.py:400 +msgid "Override parent template?" +msgstr "Ne pas hériter du modèle du parent ?" + +#: src/pyams_portal/interfaces/__init__.py:401 +msgid "Should we override parent template?" +msgstr "Doit-on remplacer le modèle de présentation du parent ?" + +#: src/pyams_portal/interfaces/__init__.py:405 msgid "Use local template?" msgstr "Utiliser un modèle local ?" -#: src/pyams_portal/interfaces/__init__.py:399 +#: src/pyams_portal/interfaces/__init__.py:406 msgid "" "If 'yes', you can define a custom local template instead of a shared template" msgstr "" "Si 'oui', vous pouvez définir un modèle de présentation local au lieu d'un " "modèle partagé" -#: src/pyams_portal/interfaces/__init__.py:404 +#: src/pyams_portal/interfaces/__init__.py:411 +msgid "Local template" +msgstr "Modèle local" + +#: src/pyams_portal/interfaces/__init__.py:416 msgid "Use shared template?" msgstr "Utiliser un modèle partagé" -#: src/pyams_portal/interfaces/__init__.py:405 +#: src/pyams_portal/interfaces/__init__.py:417 msgid "If 'yes', you can select a shared template" msgstr "" -"Si 'oui', vous pouvez sélectionner un modèle de présentation partagé au lieu d'un modèle local" +"Si 'oui', vous pouvez sélectionner un modèle de présentation partagé au lieu " +"d'un modèle local" -#: src/pyams_portal/interfaces/__init__.py:409 +#: src/pyams_portal/interfaces/__init__.py:421 msgid "Page template" msgstr "Modèle de page" -#: src/pyams_portal/interfaces/__init__.py:410 +#: src/pyams_portal/interfaces/__init__.py:422 msgid "Template used for this page" msgstr "Modèle de présentation utilisé pour cette page" - -#: src/pyams_portal/interfaces/__init__.py:417 -msgid "You must choose to use a local template or select a shared one!" -msgstr "" -"Vous devez choisir un modèle de présentation partagé lorsque vous " -"n'appliquez pas de modèle local !" - -#: src/pyams_portal/interfaces/__init__.py:419 -msgid "Local template" -msgstr "Modèle local" diff -r 48af829c3e59 -r e1bed28e3ff7 src/pyams_portal/locales/pyams_portal.pot --- a/src/pyams_portal/locales/pyams_portal.pot Thu May 03 11:36:20 2018 +0200 +++ b/src/pyams_portal/locales/pyams_portal.pot Thu May 03 11:48:17 2018 +0200 @@ -1,12 +1,12 @@ # # SOME DESCRIPTIVE TITLE # This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , 2017. +# FIRST AUTHOR , 2018. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE 1.0\n" -"POT-Creation-Date: 2017-06-28 16:44+0200\n" +"POT-Creation-Date: 2018-05-03 11:36+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Lingua 4.13\n" +"Generated-By: Lingua 3.10.dev0\n" #: ./src/pyams_portal/__init__.py:43 msgid "Manage portal templates" @@ -24,53 +24,55 @@ msgid "Portal templates manager" msgstr "" -#: ./src/pyams_portal/zmi/portlet.py:45 +#: ./src/pyams_portal/zmi/portlet.py:50 +msgid "Edit portlet settings" +msgstr "" + +#: ./src/pyams_portal/zmi/portlet.py:92 +msgid "Main properties" +msgstr "" + +#: ./src/pyams_portal/zmi/portlet.py:66 ./src/pyams_portal/zmi/portlet.py:72 +msgid "Override template settings" +msgstr "" + +#: ./src/pyams_portal/zmi/portlet.py:47 #, python-format msgid "« {0} » portal template - {1}" msgstr "" -#: ./src/pyams_portal/zmi/portlet.py:48 -msgid "Edit portlet settings" -msgstr "" - -#: ./src/pyams_portal/zmi/portlet.py:63 +#: ./src/pyams_portal/zmi/portlet.py:70 msgid "Override parent settings" msgstr "" -#: ./src/pyams_portal/zmi/portlet.py:65 -msgid "Override template settings" -msgstr "" - -#: ./src/pyams_portal/zmi/portlet.py:84 -msgid "Main properties" -msgstr "" - -#: ./src/pyams_portal/zmi/page.py:63 +#: ./src/pyams_portal/zmi/page.py:67 msgid "Presentation" msgstr "" -#: ./src/pyams_portal/zmi/page.py:78 +#: ./src/pyams_portal/zmi/page.py:124 msgid "Edit template configuration" msgstr "" -#: ./src/pyams_portal/zmi/page.py:98 -msgid "Use shared template" -msgstr "" - -#: ./src/pyams_portal/zmi/page.py:128 +#: ./src/pyams_portal/zmi/page.py:201 msgid "" "If you choose a shared template, you can only adjust settings of each portlet individually but can't change portlets list or page configuration.\n" "If you use a local template, you can define a whole custom configuration but the template definition can't be reused anywhere..." msgstr "" -#: ./src/pyams_portal/zmi/page.py:144 +#: ./src/pyams_portal/zmi/page.py:217 msgid "Template properties" msgstr "" -#: ./src/pyams_portal/zmi/template.py:63 ./src/pyams_portal/zmi/layout.py:220 -#: ./src/pyams_portal/zmi/layout.py:382 -#, python-format -msgid "« {0} » portal template" +#: ./src/pyams_portal/zmi/page.py:93 ./src/pyams_portal/zmi/page.py:156 +msgid "Use shared template" +msgstr "" + +#: ./src/pyams_portal/zmi/page.py:110 ./src/pyams_portal/zmi/page.py:172 +msgid "You must choose to use a local template or select a shared one!" +msgstr "" + +#: ./src/pyams_portal/zmi/page.py:146 +msgid "Override parent template" msgstr "" #: ./src/pyams_portal/zmi/template.py:84 @@ -85,29 +87,18 @@ msgid "Add shared template" msgstr "" -#: ./src/pyams_portal/zmi/template.py:119 ./src/pyams_portal/zmi/layout.py:246 +#: ./src/pyams_portal/zmi/template.py:119 ./src/pyams_portal/zmi/layout.py:247 msgid "Specified name is already used!" msgstr "" -#: ./src/pyams_portal/zmi/layout.py:68 -msgid "Template management" -msgstr "" - -#: ./src/pyams_portal/zmi/layout.py:78 -msgid "Properties" +#: ./src/pyams_portal/zmi/template.py:63 ./src/pyams_portal/zmi/layout.py:220 +#: ./src/pyams_portal/zmi/layout.py:393 +#, python-format +msgid "« {0} » portal template" msgstr "" -#: ./src/pyams_portal/zmi/layout.py:96 -msgid "Local template configuration" -msgstr "" - -#: ./src/pyams_portal/zmi/layout.py:99 -#, python-format -msgid "Shared template configuration ({0})" -msgstr "" - -#: ./src/pyams_portal/zmi/layout.py:101 -msgid "Template configuration" +#: ./src/pyams_portal/zmi/layout.py:77 +msgid "Properties" msgstr "" #: ./src/pyams_portal/zmi/layout.py:164 @@ -123,49 +114,69 @@ msgid "Add slot" msgstr "" -#: ./src/pyams_portal/zmi/layout.py:300 +#: ./src/pyams_portal/zmi/layout.py:310 +msgid "Edit slot properties" +msgstr "" + +#: ./src/pyams_portal/zmi/layout.py:379 +msgid "Add portlet..." +msgstr "" + +#: ./src/pyams_portal/zmi/layout.py:395 +msgid "Add portlet" +msgstr "" + +#: ./src/pyams_portal/zmi/layout.py:67 +msgid "Template management" +msgstr "" + +#: ./src/pyams_portal/zmi/layout.py:101 +msgid "Template configuration" +msgstr "" + +#: ./src/pyams_portal/zmi/layout.py:96 +msgid "Local template configuration" +msgstr "" + +#: ./src/pyams_portal/zmi/layout.py:307 #, python-format msgid "« {0} » portal template - {1} slot" msgstr "" -#: ./src/pyams_portal/zmi/layout.py:303 -msgid "Edit slot properties" -msgstr "" - -#: ./src/pyams_portal/zmi/layout.py:368 -msgid "Add portlet..." -msgstr "" - -#: ./src/pyams_portal/zmi/layout.py:384 -msgid "Add portlet" +#: ./src/pyams_portal/zmi/layout.py:99 +#, python-format +msgid "Shared template configuration ({0})" msgstr "" #: ./src/pyams_portal/zmi/container.py:87 msgid "Shared portal templates" msgstr "" -#: ./src/pyams_portal/zmi/container.py:127 +#: ./src/pyams_portal/zmi/container.py:124 msgid "Delete template" msgstr "" -#: ./src/pyams_portal/zmi/container.py:170 +#: ./src/pyams_portal/zmi/container.py:174 msgid "Selected portlets..." msgstr "" -#: ./src/pyams_portal/zmi/container.py:186 +#: ./src/pyams_portal/zmi/container.py:192 msgid "Portal templates container" msgstr "" -#: ./src/pyams_portal/zmi/container.py:187 +#: ./src/pyams_portal/zmi/container.py:193 msgid "Edit selected portlets" msgstr "" -#: ./src/pyams_portal/zmi/templates/portlet.pt:129 -#: ./src/pyams_portal/zmi/templates/portlet.pt:144 +#: ./src/pyams_portal/zmi/templates/portlet.pt:134 msgid "Title" msgstr "" -#: ./src/pyams_portal/zmi/templates/portlet.pt:159 +#: ./src/pyams_portal/zmi/templates/portlet.pt:149 +msgid "Legend" +msgstr "" + +#: ./src/pyams_portal/zmi/templates/portlet.pt:164 msgid "Tab label" msgstr "" @@ -201,23 +212,27 @@ msgid "Large desktop device (> 1170px)" msgstr "" -#: ./src/pyams_portal/zmi/templates/layout.pt:123 +#: ./src/pyams_portal/zmi/templates/layout.pt:110 +msgid "Override parent or template settings" +msgstr "" + +#: ./src/pyams_portal/zmi/templates/layout.pt:129 msgid "Delete row..." msgstr "" -#: ./src/pyams_portal/zmi/templates/layout.pt:132 +#: ./src/pyams_portal/zmi/templates/layout.pt:138 msgid "Edit slot properties..." msgstr "" -#: ./src/pyams_portal/zmi/templates/layout.pt:139 +#: ./src/pyams_portal/zmi/templates/layout.pt:145 msgid "Delete slot..." msgstr "" -#: ./src/pyams_portal/zmi/templates/layout.pt:147 +#: ./src/pyams_portal/zmi/templates/layout.pt:153 msgid "Edit portlet properties..." msgstr "" -#: ./src/pyams_portal/zmi/templates/layout.pt:155 +#: ./src/pyams_portal/zmi/templates/layout.pt:161 msgid "Delete portlet..." msgstr "" @@ -241,6 +256,36 @@ msgid "Default content renderer" msgstr "" +#: ./src/pyams_portal/portlets/html/__init__.py:53 +msgid "Raw HTML" +msgstr "" + +#: ./src/pyams_portal/portlets/html/__init__.py:65 +msgid "Default code renderer" +msgstr "" + +#: ./src/pyams_portal/portlets/html/__init__.py:87 +msgid "Rich text" +msgstr "" + +#: ./src/pyams_portal/portlets/html/__init__.py:99 +msgid "Default text renderer" +msgstr "" + +#: ./src/pyams_portal/portlets/html/interfaces.py:31 +msgid "Raw HTML code" +msgstr "" + +#: ./src/pyams_portal/portlets/html/interfaces.py:32 +msgid "" +"This HTML code will be used 'as is', without any transformation. Use with " +"care!!" +msgstr "" + +#: ./src/pyams_portal/portlets/html/interfaces.py:40 +msgid "Body" +msgstr "" + #: ./src/pyams_portal/interfaces/__init__.py:65 msgid "Portlet" msgstr "" @@ -344,61 +389,65 @@ msgid "CSS class applied to this slot" msgstr "" -#: ./src/pyams_portal/interfaces/__init__.py:344 +#: ./src/pyams_portal/interfaces/__init__.py:346 msgid "Template name" msgstr "" -#: ./src/pyams_portal/interfaces/__init__.py:345 +#: ./src/pyams_portal/interfaces/__init__.py:347 msgid "Two registered templates can't share the same name..." msgstr "" -#: ./src/pyams_portal/interfaces/__init__.py:366 +#: ./src/pyams_portal/interfaces/__init__.py:368 msgid "Toolbar portlets" msgstr "" -#: ./src/pyams_portal/interfaces/__init__.py:367 +#: ./src/pyams_portal/interfaces/__init__.py:369 msgid "" "These portlets will be directly available in templates configuration page " "toolbar" msgstr "" -#: ./src/pyams_portal/interfaces/__init__.py:393 +#: ./src/pyams_portal/interfaces/__init__.py:395 msgid "Inherit parent template?" msgstr "" -#: ./src/pyams_portal/interfaces/__init__.py:394 +#: ./src/pyams_portal/interfaces/__init__.py:396 msgid "Should we reuse parent template?" msgstr "" -#: ./src/pyams_portal/interfaces/__init__.py:398 +#: ./src/pyams_portal/interfaces/__init__.py:400 +msgid "Override parent template?" +msgstr "" + +#: ./src/pyams_portal/interfaces/__init__.py:401 +msgid "Should we override parent template?" +msgstr "" + +#: ./src/pyams_portal/interfaces/__init__.py:405 msgid "Use local template?" msgstr "" -#: ./src/pyams_portal/interfaces/__init__.py:399 +#: ./src/pyams_portal/interfaces/__init__.py:406 msgid "" "If 'yes', you can define a custom local template instead of a shared template" msgstr "" -#: ./src/pyams_portal/interfaces/__init__.py:404 +#: ./src/pyams_portal/interfaces/__init__.py:411 +msgid "Local template" +msgstr "" + +#: ./src/pyams_portal/interfaces/__init__.py:416 msgid "Use shared template?" msgstr "" -#: ./src/pyams_portal/interfaces/__init__.py:405 +#: ./src/pyams_portal/interfaces/__init__.py:417 msgid "If 'yes', you can select a shared template" msgstr "" -#: ./src/pyams_portal/interfaces/__init__.py:409 +#: ./src/pyams_portal/interfaces/__init__.py:421 msgid "Page template" msgstr "" -#: ./src/pyams_portal/interfaces/__init__.py:410 +#: ./src/pyams_portal/interfaces/__init__.py:422 msgid "Template used for this page" msgstr "" - -#: ./src/pyams_portal/interfaces/__init__.py:417 -msgid "You must choose to use a local template or select a shared one!" -msgstr "" - -#: ./src/pyams_portal/interfaces/__init__.py:419 -msgid "Local template" -msgstr "" diff -r 48af829c3e59 -r e1bed28e3ff7 src/pyams_portal/zmi/page.py --- a/src/pyams_portal/zmi/page.py Thu May 03 11:36:20 2018 +0200 +++ b/src/pyams_portal/zmi/page.py Thu May 03 11:48:17 2018 +0200 @@ -16,7 +16,7 @@ # import standard library # import interfaces -from pyams_form.interfaces.form import IWidgetForm, IFormHelp +from pyams_form.interfaces.form import IWidgetForm, IFormHelp, IInnerSubForm from pyams_portal.interfaces import IPortalContext, IPortalPage, IPortalTemplateConfiguration, \ MANAGE_TEMPLATE_PERMISSION from pyams_portal.zmi.interfaces import IPortalContextTemplatePropertiesMenu @@ -25,11 +25,12 @@ from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION from pyams_zmi.interfaces.menu import ISiteManagementMenu from pyams_zmi.layer import IAdminLayer +from z3c.form.interfaces import IDataExtractedEvent # import packages from pyramid.view import view_config from pyams_form.form import AJAXEditForm -from pyams_form.group import NamedWidgetsGroup +from pyams_form.group import NamedWidgetsGroup, FormWidgetsGroup from pyams_form.help import FormHelp from pyams_pagelet.pagelet import pagelet_config from pyams_portal.zmi.layout import PortalTemplateLayoutView, PortalTemplatePortletEditForm, \ @@ -40,11 +41,12 @@ from pyams_utils.url import absolute_url from pyams_viewlet.manager import viewletmanager_config from pyams_viewlet.viewlet import viewlet_config -from pyams_zmi.form import AdminEditForm +from pyams_zmi.form import AdminEditForm, InnerAdminEditForm from pyams_zmi.zmi.site import PropertiesEditFormHeaderAdapter +from pyramid.events import subscriber from z3c.form import field from z3c.form.browser.checkbox import SingleCheckBoxFieldWidget -from zope.interface import implementer, Interface +from zope.interface import implementer, Interface, Invalid from pyams_portal import _ @@ -66,6 +68,48 @@ url = '#template-properties.html' +class InheritedTemplateWidgetsGroup(FormWidgetsGroup): + """Inherit template widgets groups""" + + +@adapter_config(context=(IPortalContext, IPyAMSLayer, InheritedTemplateWidgetsGroup), provides=IInnerSubForm) +class InheritedPortalContextTemplatePropertiesEditForm(InnerAdminEditForm): + """Inherited portal context template properties""" + + def __new__(cls, context, request, group): + if not group.form.getContent().can_inherit: + return None + return InnerAdminEditForm.__new__(cls) + + legend = None + + fields = field.Fields(IPortalPage).select('use_shared_template', 'shared_template') + fields['use_shared_template'].widgetFactory = SingleCheckBoxFieldWidget + + def updateGroups(self): + self.add_group(NamedWidgetsGroup(self, 'inherited_template_properties', self.widgets, + ('use_shared_template', 'shared_template',), + legend=_("Use shared template"), + css_class='inner', + switch=True, + checkbox_switch=True, + checkbox_field=IPortalPage['use_shared_template'])) + super(InheritedPortalContextTemplatePropertiesEditForm, self).updateGroups() + + +@subscriber(IDataExtractedEvent, form_selector=InheritedPortalContextTemplatePropertiesEditForm) +def handle_inherited_template_proterties_extract_event(event): + """Handle template properties extract event""" + form = event.form + parent = form.parent_form # parent group! + form_data, form_errors = parent.form.extractData() + if form_data.get('override_parent'): + data = event.data + if data.get('use_shared_template') and not data.get('shared_template'): + parent.form.widgets.errors += (Invalid(_("You must choose to use a local template or select a shared " + "one!")),) + + @pagelet_config(name='template-properties.html', context=IPortalContext, layer=IPyAMSLayer, permission=MANAGE_TEMPLATE_PERMISSION) @implementer(IWidgetForm, IInnerPage) @@ -80,10 +124,12 @@ @property def fields(self): - fields = field.Fields(IPortalPage).select('inherit_parent', 'use_shared_template', 'shared_template') - if not self.getContent().can_inherit: - fields = fields.omit('inherit_parent') - fields['use_shared_template'].widgetFactory = SingleCheckBoxFieldWidget + if self.getContent().can_inherit: + fields = field.Fields(IPortalPage).select('override_parent') + fields['override_parent'].widgetFactory = SingleCheckBoxFieldWidget + else: + fields = field.Fields(IPortalPage).select('use_shared_template', 'shared_template') + fields['use_shared_template'].widgetFactory = SingleCheckBoxFieldWidget return fields ajax_handler = 'template-properties.json' @@ -92,15 +138,37 @@ def getContent(self): return IPortalPage(self.context) - def update(self): - super(PortalContextTemplatePropertiesEditForm, self).update() - self.add_group(NamedWidgetsGroup(self, 'template_properties', self.widgets, - ('use_shared_template', 'shared_template', ), - legend=_("Use shared template"), - css_class='inner', - switch=True, - checkbox_switch=True, - checkbox_field=IPortalPage['use_shared_template'])) + def updateGroups(self): + if self.getContent().can_inherit: + group = NamedWidgetsGroup(self, 'template_properties', self.widgets, + ('override_parent',), + legend=_("Override parent template"), + css_class='inner', + switch=True, + checkbox_switch=True, + checkbox_mode='disable', + checkbox_field=IPortalPage['override_parent'], + factory=InheritedTemplateWidgetsGroup) + else: + group = NamedWidgetsGroup(self, 'template_properties', self.widgets, + ('use_shared_template', 'shared_template',), + legend=_("Use shared template"), + css_class='inner', + switch=True, + checkbox_switch=True, + checkbox_field=IPortalPage['use_shared_template']) + self.add_group(group) + super(PortalContextTemplatePropertiesEditForm, self).updateGroups() + + +@subscriber(IDataExtractedEvent, form_selector=PortalContextTemplatePropertiesEditForm) +def handle_template_proterties_extract_event(event): + """Handle template properties extract event""" + form = event.form + if not form.getContent().can_inherit: + data = event.data + if data.get('use_shared_template') and not data.get('shared_template'): + form.widgets.errors += (Invalid(_("You must choose to use a local template or select a shared one!")),) @view_config(name='template-properties.json', context=IPortalContext, request_type=IPyAMSLayer, @@ -109,11 +177,13 @@ """Portal context template properties edit form, JSON renderer""" def get_ajax_output(self, changes): - if ('inherit_parent' in changes.get(IPortalPage, ())) or \ - ('use_shared_template' in changes.get(IPortalPage, ())): - return {'status': 'redirect'} - else: - return super(PortalContextTemplatePropertiesAJAXEditForm, self).get_ajax_output(changes) + output = super(PortalContextTemplatePropertiesAJAXEditForm, self).get_ajax_output(changes) + if changes: + output.update({ + 'status': 'redirect', + 'message': self.request.localizer.translate(self.successMessage) + }) + return output @adapter_config(context=(Interface, IPyAMSLayer, PortalContextTemplatePropertiesEditForm), provides=IPageHeader)