--- a/.installed.cfg Fri Jul 20 11:08:31 2018 +0200
+++ b/.installed.cfg Fri Jul 20 12:52:19 2018 +0200
@@ -128,3 +128,40 @@
[buildout]
parts = package i18n pyflakes test
+
+[buildout]
+installed_develop_eggs = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-media.egg-link
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-file.egg-link
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-sequence.egg-link
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-content.egg-link
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/lingua.egg-link
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-template.egg-link
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-default-theme.egg-link
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-security.egg-link
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-workflow.egg-link
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-skin.egg-link
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-pagelet.egg-link
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-viewlet.egg-link
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-i18n.egg-link
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-mail.egg-link
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/tmpkk0t98xgbuild
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-thesaurus.egg-link
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/tmp4n2_ujjtbuild
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-portal.egg-link
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-zmi.egg-link
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-zmq.egg-link
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-catalog.egg-link
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-form.egg-link
+ /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-utils.egg-link
+
+[buildout]
+parts = i18n pyflakes test package
+
+[buildout]
+parts = pyflakes test package i18n
+
+[buildout]
+parts = test package i18n pyflakes
+
+[buildout]
+parts = package i18n pyflakes test
--- a/docs/HISTORY.txt Fri Jul 20 11:08:31 2018 +0200
+++ b/docs/HISTORY.txt Fri Jul 20 12:52:19 2018 +0200
@@ -1,6 +1,12 @@
History
=======
+0.1.13
+------
+ - allow duplication of shared template
+ - use locale name in portlet cache key
+ - updated translations
+
0.1.12
------
- added support for portlet renderer settings
--- a/src/pyams_portal.egg-info/PKG-INFO Fri Jul 20 11:08:31 2018 +0200
+++ b/src/pyams_portal.egg-info/PKG-INFO Fri Jul 20 12:52:19 2018 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: pyams-portal
-Version: 0.1.12
+Version: 0.1.13
Summary: PyAMS portal and portlets interfaces and classes
Home-page: http://hg.ztfy.org/pyams/pyams_portal
Author: Thierry Florac
@@ -99,6 +99,12 @@
History
=======
+ 0.1.13
+ ------
+ - allow duplication of shared template
+ - use locale name in portlet cache key
+ - updated translations
+
0.1.12
------
- added support for portlet renderer settings
--- a/src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.po~ Fri Jul 20 11:08:31 2018 +0200
+++ b/src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.po~ Fri Jul 20 12:52:19 2018 +0200
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2018-06-26 08:40+0200\n"
+"POT-Creation-Date: 2018-07-03 15:29+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"
@@ -20,11 +20,11 @@
msgid "Portal template"
msgstr "Modèle de présentation"
-#: src/pyams_portal/__init__.py:43
+#: src/pyams_portal/__init__.py:46
msgid "Manage portal templates"
msgstr "Gérer les modèles de présentation"
-#: src/pyams_portal/__init__.py:47
+#: src/pyams_portal/__init__.py:50
msgid "Portal templates manager"
msgstr "Gestionnaire des modèles"
@@ -110,12 +110,12 @@
msgid "Add template"
msgstr "Ajouter un modèle"
-#: src/pyams_portal/zmi/template.py:144 src/pyams_portal/zmi/container.py:64
+#: src/pyams_portal/zmi/template.py:143 src/pyams_portal/zmi/container.py:64
#: src/pyams_portal/zmi/container.py:93
msgid "Portal templates"
msgstr "Modèles de présentation"
-#: src/pyams_portal/zmi/template.py:145
+#: src/pyams_portal/zmi/template.py:144
msgid "Add shared template"
msgstr "Ajout d'un modèle de présentation"
@@ -123,12 +123,13 @@
msgid "Presentation template"
msgstr "Présentation"
-#: src/pyams_portal/zmi/template.py:169 src/pyams_portal/zmi/layout.py:271
+#: src/pyams_portal/zmi/template.py:167 src/pyams_portal/zmi/layout.py:275
+#: src/pyams_portal/zmi/layout.py:644
msgid "Specified name is already used!"
msgstr "Le nom indiqué est déjà utilisé !"
-#: src/pyams_portal/zmi/template.py:111 src/pyams_portal/zmi/layout.py:235
-#: src/pyams_portal/zmi/layout.py:316 src/pyams_portal/zmi/layout.py:400
+#: src/pyams_portal/zmi/template.py:111 src/pyams_portal/zmi/layout.py:239
+#: src/pyams_portal/zmi/layout.py:320 src/pyams_portal/zmi/layout.py:404
#, python-format
msgid "« {0} » portal template"
msgstr "Modèle de présentation « {0} »"
@@ -138,61 +139,81 @@
msgid "{0} (local template)"
msgstr "{0} (modèle local)"
-#: src/pyams_portal/zmi/layout.py:79
+#: src/pyams_portal/zmi/layout.py:83
msgid "Properties"
msgstr "Propriétés"
-#: src/pyams_portal/zmi/layout.py:177
+#: src/pyams_portal/zmi/layout.py:181
msgid "Add row..."
msgstr "Ajouter une ligne"
-#: src/pyams_portal/zmi/layout.py:219
+#: src/pyams_portal/zmi/layout.py:223
msgid "Add slot..."
msgstr "Ajouter un panneau"
-#: src/pyams_portal/zmi/layout.py:237
+#: src/pyams_portal/zmi/layout.py:241
msgid "Add slot"
msgstr "Ajouter un panneau"
-#: src/pyams_portal/zmi/layout.py:384
+#: src/pyams_portal/zmi/layout.py:388
msgid "Add portlet..."
msgstr "Ajouter un composant"
-#: src/pyams_portal/zmi/layout.py:402
+#: src/pyams_portal/zmi/layout.py:406
msgid "Add portlet"
msgstr "Ajouter un composant"
-#: src/pyams_portal/zmi/layout.py:69
+#: src/pyams_portal/zmi/layout.py:583
+msgid "Duplicate template..."
+msgstr "Dupliquer le modèle"
+
+#: src/pyams_portal/zmi/layout.py:603
+msgid "Duplicate template"
+msgstr "Dupliquer le modèle"
+
+#: src/pyams_portal/zmi/layout.py:73
msgid "Template management"
msgstr "Ce modèle"
-#: src/pyams_portal/zmi/layout.py:103
+#: src/pyams_portal/zmi/layout.py:107
msgid "Template configuration"
msgstr "Configuration d'un modèle"
-#: src/pyams_portal/zmi/layout.py:98
+#: src/pyams_portal/zmi/layout.py:593
+msgid "Cancel"
+msgstr "Annuler"
+
+#: src/pyams_portal/zmi/layout.py:594
+msgid "Duplicate this template"
+msgstr "Dupliquer ce modèle"
+
+#: src/pyams_portal/zmi/layout.py:614
+msgid "New template name"
+msgstr "Nom du nouveau modèle"
+
+#: src/pyams_portal/zmi/layout.py:102
msgid "Local template configuration"
msgstr "Configuration d'un modèle local"
-#: src/pyams_portal/zmi/layout.py:146
+#: src/pyams_portal/zmi/layout.py:150
msgid "{{ missing portlet }}"
msgstr "{{ composant indisponible }}"
-#: src/pyams_portal/zmi/layout.py:137
-#, fuzzy, python-format
+#: src/pyams_portal/zmi/layout.py:141
+#, python-format
msgid ""
"Add component: {0}<br />Drag and drop button to page template to position "
"new row"
msgstr ""
-"Ajouter une ligne<br />Faire un lisser/déposer du bouton dans le modèle de "
-"présentation pour positionner la nouvelle ligne."
+"Ajouter un composant : <strong>{0}</strong><br />Faire un glisser/déposer du "
+"bouton dans le modèle de présentation pour positionner le nouveau composant."
-#: src/pyams_portal/zmi/layout.py:321
+#: src/pyams_portal/zmi/layout.py:325
#, python-format
msgid "Edit « {0} » slot properties"
msgstr "Propriétés du panneau « {0} »"
-#: src/pyams_portal/zmi/layout.py:101
+#: src/pyams_portal/zmi/layout.py:105
#, python-format
msgid "Shared template configuration ({0})"
msgstr "Configuration d'un modèle partagé ({0})"
@@ -232,7 +253,7 @@
#: src/pyams_portal/zmi/templates/layout.pt:24
msgid "Add row<br />Drag and drop button to page template to position new row"
msgstr ""
-"Ajouter une ligne<br />Faire un lisser/déposer du bouton dans le modèle de "
+"Ajouter une ligne<br />Faire un glisser/déposer du bouton dans le modèle de "
"présentation pour positionner la nouvelle ligne."
#: src/pyams_portal/zmi/templates/layout.pt:29
@@ -270,27 +291,27 @@
msgid "Large desktop device (> 1170px)"
msgstr "Écrans de grande taille (> 1170 px)"
-#: src/pyams_portal/zmi/templates/layout.pt:114
+#: src/pyams_portal/zmi/templates/layout.pt:116
msgid "Override parent or template settings"
msgstr "Remplacer le paramétrage du parent ou du modèle"
-#: src/pyams_portal/zmi/templates/layout.pt:133
+#: src/pyams_portal/zmi/templates/layout.pt:135
msgid "Delete row..."
msgstr "Supprimer la ligne"
-#: src/pyams_portal/zmi/templates/layout.pt:142
+#: src/pyams_portal/zmi/templates/layout.pt:144
msgid "Edit slot properties..."
msgstr "Propriétés"
-#: src/pyams_portal/zmi/templates/layout.pt:149
+#: src/pyams_portal/zmi/templates/layout.pt:151
msgid "Delete slot..."
msgstr "Supprimer le panneau"
-#: src/pyams_portal/zmi/templates/layout.pt:157
+#: src/pyams_portal/zmi/templates/layout.pt:159
msgid "Edit portlet properties..."
msgstr "Propriétés"
-#: src/pyams_portal/zmi/templates/layout.pt:165
+#: src/pyams_portal/zmi/templates/layout.pt:167
msgid "Delete portlet..."
msgstr "Supprimer le composant"
@@ -342,32 +363,32 @@
msgid "Hidden portlet"
msgstr "Composant non affiché"
-#: src/pyams_portal/interfaces/__init__.py:65
+#: src/pyams_portal/interfaces/__init__.py:68
msgid "Portlet"
msgstr "Composant"
-#: src/pyams_portal/interfaces/__init__.py:68
-#: src/pyams_portal/interfaces/__init__.py:195
+#: src/pyams_portal/interfaces/__init__.py:71
+#: src/pyams_portal/interfaces/__init__.py:198
msgid "Slot name"
msgstr "Nom du panneau"
-#: src/pyams_portal/interfaces/__init__.py:69
+#: src/pyams_portal/interfaces/__init__.py:72
msgid "Slot name to which this configuration applies"
msgstr "Nom du panneau correspondant à la configuration"
-#: src/pyams_portal/interfaces/__init__.py:82
+#: src/pyams_portal/interfaces/__init__.py:85
msgid "Portlet renderer"
msgstr "Mode de rendu"
-#: src/pyams_portal/interfaces/__init__.py:83
+#: src/pyams_portal/interfaces/__init__.py:86
msgid "Name of renderer used to render this portlet"
msgstr "Mode de rendu utilisé pour restituer ce composant"
-#: src/pyams_portal/interfaces/__init__.py:113
+#: src/pyams_portal/interfaces/__init__.py:116
msgid "Inherit parent configuration?"
msgstr "Hériter de la configuration du parent ?"
-#: src/pyams_portal/interfaces/__init__.py:114
+#: src/pyams_portal/interfaces/__init__.py:117
msgid ""
"This option is only available if context's parent is using the same "
"template..."
@@ -375,27 +396,27 @@
"Cette option n'est disponible que si le parent utilise le même modèle de "
"présentation..."
-#: src/pyams_portal/interfaces/__init__.py:196
+#: src/pyams_portal/interfaces/__init__.py:199
msgid "This name must be unique in a given template"
msgstr "Ce nom doit être unique au sein d'un modèle de présentation"
-#: src/pyams_portal/interfaces/__init__.py:199
+#: src/pyams_portal/interfaces/__init__.py:202
msgid "Row ID"
msgstr "ID de la ligne"
-#: src/pyams_portal/interfaces/__init__.py:213
+#: src/pyams_portal/interfaces/__init__.py:216
msgid "Visible slot?"
msgstr "Panneau visible ?"
-#: src/pyams_portal/interfaces/__init__.py:214
+#: src/pyams_portal/interfaces/__init__.py:217
msgid "Select 'no' to hide this slot..."
msgstr "Choisir 'non' pour masquer ce panneau..."
-#: src/pyams_portal/interfaces/__init__.py:218
+#: src/pyams_portal/interfaces/__init__.py:221
msgid "Extra small device width"
msgstr "Largeur sur très petits périphériques"
-#: src/pyams_portal/interfaces/__init__.py:219
+#: src/pyams_portal/interfaces/__init__.py:222
msgid ""
"Slot width, in columns count, on extra small devices (phones...); set to 0 "
"to hide the portlet"
@@ -403,11 +424,11 @@
"Largeur du panneau, en nombre de colonnes, sur les très petits périphériques "
"(téléphones...) ; indiquez une valeur de 0 pour masquer ce composant"
-#: src/pyams_portal/interfaces/__init__.py:225
+#: src/pyams_portal/interfaces/__init__.py:228
msgid "Small device width"
msgstr "Largeur sur petits périphériques"
-#: src/pyams_portal/interfaces/__init__.py:226
+#: src/pyams_portal/interfaces/__init__.py:229
msgid ""
"Slot width, in columns count, on small devices (tablets...); set to 0 to "
"hide the portlet"
@@ -415,11 +436,11 @@
"Largeur du panneau, en nombre de colonnes, sur les petits périphériques "
"(tablettes...) ; indiquez une valeur de 0 pour masquer ce composant"
-#: src/pyams_portal/interfaces/__init__.py:232
+#: src/pyams_portal/interfaces/__init__.py:235
msgid "Medium devices width"
msgstr "Largeur sur périphériques moyens"
-#: src/pyams_portal/interfaces/__init__.py:233
+#: src/pyams_portal/interfaces/__init__.py:236
msgid ""
"Slot width, in columns count, on medium desktop devices (>= 992 pixels); set "
"to 0 to hide the portlet"
@@ -427,11 +448,11 @@
"Largeur du panneau, en nombre de colonnes, sur les périphériques moyens (>= "
"992 pixels) ; indiquez une valeur de 0 pour masquer ce composant"
-#: src/pyams_portal/interfaces/__init__.py:239
+#: src/pyams_portal/interfaces/__init__.py:242
msgid "Large devices width"
msgstr "Largeur sur grands périphériques"
-#: src/pyams_portal/interfaces/__init__.py:240
+#: src/pyams_portal/interfaces/__init__.py:243
msgid ""
"Slot width, in columns count, on large desktop devices (>= 1200 pixels); set "
"to 0 to hide the portlet"
@@ -439,27 +460,27 @@
"Largeur du panneau, en nombre de colonnes, sur les grands périphériques (>= "
"1200 pixels) ; indiquez une valeur de 0 pour masquer ce composant"
-#: src/pyams_portal/interfaces/__init__.py:246
+#: src/pyams_portal/interfaces/__init__.py:249
msgid "CSS class"
msgstr "Class CSS"
-#: src/pyams_portal/interfaces/__init__.py:247
+#: src/pyams_portal/interfaces/__init__.py:250
msgid "CSS class applied to this slot"
msgstr "Classe CSS spécifique appliquée à ce panneau"
-#: src/pyams_portal/interfaces/__init__.py:360
+#: src/pyams_portal/interfaces/__init__.py:363
msgid "Template name"
msgstr "Nom du modèle"
-#: src/pyams_portal/interfaces/__init__.py:361
+#: src/pyams_portal/interfaces/__init__.py:364
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:382
+#: src/pyams_portal/interfaces/__init__.py:385
msgid "Toolbar portlets"
msgstr "Composants de la barre d'outils"
-#: src/pyams_portal/interfaces/__init__.py:383
+#: src/pyams_portal/interfaces/__init__.py:386
msgid ""
"These portlets will be directly available in templates configuration page "
"toolbar"
@@ -467,52 +488,52 @@
"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:412
+#: src/pyams_portal/interfaces/__init__.py:415
msgid "Inherit parent template?"
msgstr "Hériter du modèle du parent ?"
-#: src/pyams_portal/interfaces/__init__.py:413
+#: src/pyams_portal/interfaces/__init__.py:416
msgid "Should we reuse parent template?"
msgstr "Doit-on ré-utiliser le modèle du parent ?"
-#: src/pyams_portal/interfaces/__init__.py:417
+#: src/pyams_portal/interfaces/__init__.py:420
msgid "Override parent template?"
msgstr "Ne pas hériter du modèle du parent ?"
-#: src/pyams_portal/interfaces/__init__.py:418
+#: src/pyams_portal/interfaces/__init__.py:421
msgid "Should we override parent template?"
msgstr "Doit-on remplacer le modèle de présentation du parent ?"
-#: src/pyams_portal/interfaces/__init__.py:422
+#: src/pyams_portal/interfaces/__init__.py:425
msgid "Use local template?"
msgstr "Utiliser un modèle local ?"
-#: src/pyams_portal/interfaces/__init__.py:423
+#: src/pyams_portal/interfaces/__init__.py:426
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:428
+#: src/pyams_portal/interfaces/__init__.py:431
msgid "Local template"
msgstr "Modèle local"
-#: src/pyams_portal/interfaces/__init__.py:433
+#: src/pyams_portal/interfaces/__init__.py:436
msgid "Use shared template?"
msgstr "Utiliser un modèle partagé"
-#: src/pyams_portal/interfaces/__init__.py:434
+#: src/pyams_portal/interfaces/__init__.py:437
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"
-#: src/pyams_portal/interfaces/__init__.py:438
+#: src/pyams_portal/interfaces/__init__.py:441
msgid "Page template"
msgstr "Modèle de page"
-#: src/pyams_portal/interfaces/__init__.py:439
+#: src/pyams_portal/interfaces/__init__.py:442
msgid "Template used for this page"
msgstr "Modèle de présentation utilisé pour cette page"