Binary file src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.mo has changed
--- 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 <tflorac@ulthar.net>\n"
"Language-Team: French <traduc@traduc.org>\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"
--- 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 <EMAIL@ADDRESS>, 2017.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS\n"
"Language-Team: LANGUAGE <LL@li.org>\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 ""
--- 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)