# HG changeset patch # User Thierry Florac # Date 1538747350 -7200 # Node ID 6b6236f258abc03ef4f62fc79ffd5628e2eda833 # Parent b2bb69f30e672b795ac8795d7b6e4f613218a87f Version 0.1.17 diff -r b2bb69f30e67 -r 6b6236f258ab .installed.cfg --- a/.installed.cfg Thu Oct 04 16:41:41 2018 +0200 +++ b/.installed.cfg Fri Oct 05 15:49:10 2018 +0200 @@ -1,5 +1,6 @@ [buildout] -installed_develop_eggs = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/pyams-media.egg-link +installed_develop_eggs = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs/tmphvzy_3pybuild + /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 @@ -23,15 +24,15 @@ parts = package i18n pyflakes test [package] -__buildout_installed__ = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/prequest - /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/proutes +__buildout_installed__ = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pserve + /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pdistreport /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pviews - /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pshell + /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pcreate /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/ptweens - /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pcreate - /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pserve - /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pdistreport -__buildout_signature__ = zc.recipe.egg-8f8815b05e6871a2c4acf8d9c9b6e98f zc.buildout-2.10.0-py3.5.egg setuptools-8f8815b05e6871a2c4acf8d9c9b6e98f + /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/prequest + /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/proutes + /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pshell +__buildout_signature__ = zc.recipe.egg-1cfa1feb0fa42aa4d8579505a97c12a0 zc.buildout-1cfa1feb0fa42aa4d8579505a97c12a0 setuptools-1cfa1feb0fa42aa4d8579505a97c12a0 _b = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin _d = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs _e = /var/local/env/pyams/eggs @@ -49,7 +50,7 @@ __buildout_installed__ = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pybabel /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/polint /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pot-create -__buildout_signature__ = zc.recipe.egg-8f8815b05e6871a2c4acf8d9c9b6e98f zc.buildout-2.10.0-py3.5.egg setuptools-8f8815b05e6871a2c4acf8d9c9b6e98f +__buildout_signature__ = zc.recipe.egg-1cfa1feb0fa42aa4d8579505a97c12a0 zc.buildout-1cfa1feb0fa42aa4d8579505a97c12a0 setuptools-1cfa1feb0fa42aa4d8579505a97c12a0 _b = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin _d = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs _e = /var/local/env/pyams/eggs @@ -64,7 +65,7 @@ [pyflakes] __buildout_installed__ = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pyflakes /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/pyflakes -__buildout_signature__ = zc.recipe.egg-8f8815b05e6871a2c4acf8d9c9b6e98f zc.buildout-2.10.0-py3.5.egg setuptools-8f8815b05e6871a2c4acf8d9c9b6e98f +__buildout_signature__ = zc.recipe.egg-1cfa1feb0fa42aa4d8579505a97c12a0 zc.buildout-1cfa1feb0fa42aa4d8579505a97c12a0 setuptools-1cfa1feb0fa42aa4d8579505a97c12a0 _b = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin _d = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs _e = /var/local/env/pyams/eggs @@ -81,7 +82,7 @@ [test] __buildout_installed__ = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/parts/test /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/test -__buildout_signature__ = six-8f8815b05e6871a2c4acf8d9c9b6e98f zc.recipe.testrunner-8f8815b05e6871a2c4acf8d9c9b6e98f zc.recipe.egg-8f8815b05e6871a2c4acf8d9c9b6e98f zc.buildout-2.10.0-py3.5.egg zope.exceptions-8f8815b05e6871a2c4acf8d9c9b6e98f zope.interface-8f8815b05e6871a2c4acf8d9c9b6e98f zope.testrunner-8f8815b05e6871a2c4acf8d9c9b6e98f setuptools-8f8815b05e6871a2c4acf8d9c9b6e98f +__buildout_signature__ = six-1cfa1feb0fa42aa4d8579505a97c12a0 zc.recipe.testrunner-1cfa1feb0fa42aa4d8579505a97c12a0 zc.recipe.egg-1cfa1feb0fa42aa4d8579505a97c12a0 zc.buildout-1cfa1feb0fa42aa4d8579505a97c12a0 zope.exceptions-1cfa1feb0fa42aa4d8579505a97c12a0 zope.interface-1cfa1feb0fa42aa4d8579505a97c12a0 zope.testrunner-1cfa1feb0fa42aa4d8579505a97c12a0 setuptools-1cfa1feb0fa42aa4d8579505a97c12a0 _b = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin _d = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/develop-eggs _e = /var/local/env/pyams/eggs @@ -93,73 +94,3 @@ location = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/parts/test recipe = zc.recipe.testrunner script = /home/tflorac/Dropbox/src/PyAMS/pyams_portal/bin/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/pyams-thesaurus.egg-link - /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 - -[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/pyams-thesaurus.egg-link - /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 diff -r b2bb69f30e67 -r 6b6236f258ab bootstrap.py --- a/bootstrap.py Thu Oct 04 16:41:41 2018 +0200 +++ b/bootstrap.py Fri Oct 05 15:49:10 2018 +0200 @@ -25,7 +25,10 @@ from optparse import OptionParser -tmpeggs = tempfile.mkdtemp() +__version__ = '2015-07-01' +# See zc.buildout's changelog if this version is up to date. + +tmpeggs = tempfile.mkdtemp(prefix='bootstrap-') usage = '''\ [DESIRED PYTHON FOR BUILDOUT] bootstrap.py [options] @@ -35,18 +38,19 @@ Simply run this script in a directory containing a buildout.cfg, using the Python that you want bin/buildout to use. -Note that by using --find-links to point to local resources, you can keep +Note that by using --find-links to point to local resources, you can keep this script from going over the network. ''' parser = OptionParser(usage=usage) -parser.add_option("-v", "--version", help="use a specific zc.buildout version") - +parser.add_option("--version", + action="store_true", default=False, + help=("Return bootstrap.py version.")) parser.add_option("-t", "--accept-buildout-test-releases", dest='accept_buildout_test_releases', action="store_true", default=False, - help=("Normally, if you do not specify a --version, the " - "bootstrap script and buildout gets the newest " + help=("Normally, if you do not specify a --buildout-version, " + "the bootstrap script and buildout gets the newest " "*final* versions of zc.buildout and its recipes and " "extensions for you. If you use this flag, " "bootstrap and buildout will get the newest releases " @@ -59,36 +63,57 @@ parser.add_option("--allow-site-packages", action="store_true", default=False, help=("Let bootstrap.py use existing site packages")) - +parser.add_option("--buildout-version", + help="Use a specific zc.buildout version") +parser.add_option("--setuptools-version", + help="Use a specific setuptools version") +parser.add_option("--setuptools-to-dir", + help=("Allow for re-use of existing directory of " + "setuptools versions")) options, args = parser.parse_args() +if options.version: + print("bootstrap.py version %s" % __version__) + sys.exit(0) + ###################################################################### # load/install setuptools try: - if options.allow_site_packages: - import setuptools - import pkg_resources from urllib.request import urlopen except ImportError: from urllib2 import urlopen ez = {} -exec(urlopen('https://bootstrap.pypa.io/ez_setup.py').read(), ez) +if os.path.exists('ez_setup.py'): + exec(open('ez_setup.py').read(), ez) +else: + exec(urlopen('https://bootstrap.pypa.io/ez_setup.py').read(), ez) if not options.allow_site_packages: # ez_setup imports site, which adds site packages - # this will remove them from the path to ensure that incompatible versions + # this will remove them from the path to ensure that incompatible versions # of setuptools are not in the path import site - # inside a virtualenv, there is no 'getsitepackages'. + # inside a virtualenv, there is no 'getsitepackages'. # We can't remove these reliably if hasattr(site, 'getsitepackages'): for sitepackage_path in site.getsitepackages(): - sys.path[:] = [x for x in sys.path if sitepackage_path not in x] + # Strip all site-packages directories from sys.path that + # are not sys.prefix; this is because on Windows + # sys.prefix is a site-package directory. + if sitepackage_path != sys.prefix: + sys.path[:] = [x for x in sys.path + if sitepackage_path not in x] setup_args = dict(to_dir=tmpeggs, download_delay=0) + +if options.setuptools_version is not None: + setup_args['version'] = options.setuptools_version +if options.setuptools_to_dir is not None: + setup_args['to_dir'] = options.setuptools_to_dir + ez['use_setuptools'](**setup_args) import setuptools import pkg_resources @@ -104,7 +129,12 @@ ws = pkg_resources.working_set +setuptools_path = ws.find( + pkg_resources.Requirement.parse('setuptools')).location + +# Fix sys.path here as easy_install.pth added before PYTHONPATH cmd = [sys.executable, '-c', + 'import sys; sys.path[0:0] = [%r]; ' % setuptools_path + 'from setuptools.command.easy_install import main; main()', '-mZqNxd', tmpeggs] @@ -117,21 +147,23 @@ if find_links: cmd.extend(['-f', find_links]) -setuptools_path = ws.find( - pkg_resources.Requirement.parse('setuptools')).location - requirement = 'zc.buildout' -version = options.version +version = options.buildout_version if version is None and not options.accept_buildout_test_releases: # Figure out the most recent final version of zc.buildout. import setuptools.package_index _final_parts = '*final-', '*final' def _final_version(parsed_version): - for part in parsed_version: - if (part[:1] == '*') and (part not in _final_parts): - return False - return True + try: + return not parsed_version.is_prerelease + except AttributeError: + # Older setuptools + for part in parsed_version: + if (part[:1] == '*') and (part not in _final_parts): + return False + return True + index = setuptools.package_index.PackageIndex( search_path=[setuptools_path]) if find_links: @@ -156,7 +188,7 @@ cmd.append(requirement) import subprocess -if subprocess.call(cmd, env=dict(os.environ, PYTHONPATH=setuptools_path)) != 0: +if subprocess.call(cmd) != 0: raise Exception( "Failed to execute command:\n%s" % repr(cmd)[1:-1]) diff -r b2bb69f30e67 -r 6b6236f258ab docs/HISTORY.txt --- a/docs/HISTORY.txt Thu Oct 04 16:41:41 2018 +0200 +++ b/docs/HISTORY.txt Fri Oct 05 15:49:10 2018 +0200 @@ -1,6 +1,13 @@ History ======= +0.1.17 +------ + - can't remove a template row or slot containing any portlet + - automatically remove cancelled slots + - added name to portlet renderer settings instances + - updated template properties edit form template + 0.1.16 ------ - added checks in slot adding form diff -r b2bb69f30e67 -r 6b6236f258ab src/pyams_portal.egg-info/PKG-INFO --- a/src/pyams_portal.egg-info/PKG-INFO Thu Oct 04 16:41:41 2018 +0200 +++ b/src/pyams_portal.egg-info/PKG-INFO Fri Oct 05 15:49:10 2018 +0200 @@ -1,12 +1,11 @@ -Metadata-Version: 1.1 +Metadata-Version: 2.1 Name: pyams-portal -Version: 0.1.16.1 +Version: 0.1.17 Summary: PyAMS portal and portlets interfaces and classes Home-page: http://hg.ztfy.org/pyams/pyams_portal Author: Thierry Florac Author-email: tflorac@ulthar.net License: ZPL -Description-Content-Type: UNKNOWN Description: Portal template configuration storage @@ -99,6 +98,13 @@ History ======= + 0.1.17 + ------ + - can't remove a template row or slot containing any portlet + - automatically remove cancelled slots + - added name to portlet renderer settings instances + - updated template properties edit form template + 0.1.16 ------ - added checks in slot adding form @@ -207,3 +213,4 @@ Classifier: Programming Language :: Python Classifier: Framework :: Pyramid Classifier: Topic :: Software Development :: Libraries :: Python Modules +Provides-Extra: test diff -r b2bb69f30e67 -r 6b6236f258ab src/pyams_portal.egg-info/SOURCES.txt --- a/src/pyams_portal.egg-info/SOURCES.txt Thu Oct 04 16:41:41 2018 +0200 +++ b/src/pyams_portal.egg-info/SOURCES.txt Fri Oct 05 15:49:10 2018 +0200 @@ -42,6 +42,27 @@ src/pyams_portal/resources/css/portal.min.css src/pyams_portal/resources/js/portal.js src/pyams_portal/resources/js/portal.min.js +src/pyams_portal/resources/js/i18n/fr.js +src/pyams_portal/resources/js/i18n/fr.min.js +src/pyams_portal/resources/js/i18n/fr.min.min.js +src/pyams_portal/resources/js/i18n/fr.min.min.min.js +src/pyams_portal/resources/js/i18n/fr.min.min.min.min.js +src/pyams_portal/resources/js/i18n/fr.min.min.min.min.min.js +src/pyams_portal/resources/js/i18n/fr.min.min.min.min.min.min.js +src/pyams_portal/resources/js/i18n/fr.min.min.min.min.min.min.min.js +src/pyams_portal/resources/js/i18n/fr.min.min.min.min.min.min.min.min.js +src/pyams_portal/resources/js/i18n/fr.min.min.min.min.min.min.min.min.min.js +src/pyams_portal/resources/js/i18n/fr.min.min.min.min.min.min.min.min.min.min.js +src/pyams_portal/resources/js/i18n/fr.min.min.min.min.min.min.min.min.min.min.min.js +src/pyams_portal/resources/js/i18n/fr.min.min.min.min.min.min.min.min.min.min.min.min.js +src/pyams_portal/resources/js/i18n/fr.min.min.min.min.min.min.min.min.min.min.min.min.min.js +src/pyams_portal/resources/js/i18n/fr.min.min.min.min.min.min.min.min.min.min.min.min.min.min.js +src/pyams_portal/resources/js/i18n/fr.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.js +src/pyams_portal/resources/js/i18n/fr.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.js +src/pyams_portal/resources/js/i18n/fr.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.js +src/pyams_portal/resources/js/i18n/fr.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.js +src/pyams_portal/resources/js/i18n/fr.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.js +src/pyams_portal/resources/js/i18n/fr.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.min.js src/pyams_portal/resources/less/portal.less src/pyams_portal/skin/__init__.py src/pyams_portal/templates/pagelet.pt diff -r b2bb69f30e67 -r 6b6236f258ab src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.po~ --- a/src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.po~ Thu Oct 04 16:41:41 2018 +0200 +++ b/src/pyams_portal/locales/fr/LC_MESSAGES/pyams_portal.po~ Fri Oct 05 15:49:10 2018 +0200 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE 1.0\n" -"POT-Creation-Date: 2018-09-21 16:10+0200\n" +"POT-Creation-Date: 2018-09-21 18:10+0200\n" "PO-Revision-Date: 2015-05-12 12:10+0200\n" "Last-Translator: Thierry Florac \n" "Language-Team: French \n" @@ -16,7 +16,7 @@ "Generated-By: Lingua 3.10.dev0\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: src/pyams_portal/template.py:86 +#: src/pyams_portal/template.py:80 msgid "Portal template" msgstr "Modèle de présentation" @@ -128,13 +128,13 @@ msgid "Presentation template" msgstr "Présentation" -#: src/pyams_portal/zmi/template.py:167 src/pyams_portal/zmi/layout.py:277 -#: src/pyams_portal/zmi/layout.py:646 +#: src/pyams_portal/zmi/template.py:167 src/pyams_portal/zmi/layout.py:280 +#: src/pyams_portal/zmi/layout.py:660 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:241 -#: src/pyams_portal/zmi/layout.py:322 src/pyams_portal/zmi/layout.py:406 +#: src/pyams_portal/zmi/template.py:111 src/pyams_portal/zmi/layout.py:240 +#: src/pyams_portal/zmi/layout.py:336 src/pyams_portal/zmi/layout.py:420 #, python-format msgid "« {0} » portal template" msgstr "Modèle de présentation « {0} »" @@ -144,71 +144,71 @@ msgid "{0} (local template)" msgstr "{0} (modèle local)" -#: src/pyams_portal/zmi/layout.py:82 +#: src/pyams_portal/zmi/layout.py:81 msgid "Properties" msgstr "Propriétés" -#: src/pyams_portal/zmi/layout.py:183 +#: src/pyams_portal/zmi/layout.py:182 msgid "Add row..." msgstr "Ajouter une ligne" -#: src/pyams_portal/zmi/layout.py:225 +#: src/pyams_portal/zmi/layout.py:224 msgid "Add slot..." msgstr "Ajouter un panneau" -#: src/pyams_portal/zmi/layout.py:243 +#: src/pyams_portal/zmi/layout.py:242 msgid "Add slot" msgstr "Ajouter un panneau" -#: src/pyams_portal/zmi/layout.py:390 +#: src/pyams_portal/zmi/layout.py:404 msgid "Add portlet..." msgstr "Ajouter un composant" -#: src/pyams_portal/zmi/layout.py:408 +#: src/pyams_portal/zmi/layout.py:422 msgid "Add portlet" msgstr "Ajouter un composant" -#: src/pyams_portal/zmi/layout.py:585 +#: src/pyams_portal/zmi/layout.py:599 msgid "Duplicate template..." msgstr "Dupliquer le modèle" -#: src/pyams_portal/zmi/layout.py:605 +#: src/pyams_portal/zmi/layout.py:619 msgid "Duplicate template" msgstr "Dupliquer le modèle" -#: src/pyams_portal/zmi/layout.py:72 +#: src/pyams_portal/zmi/layout.py:71 msgid "Template management" msgstr "Ce modèle" -#: src/pyams_portal/zmi/layout.py:109 +#: src/pyams_portal/zmi/layout.py:108 msgid "Template configuration" msgstr "Configuration d'un modèle" -#: src/pyams_portal/zmi/layout.py:595 +#: src/pyams_portal/zmi/layout.py:609 msgid "Cancel" msgstr "Annuler" -#: src/pyams_portal/zmi/layout.py:596 +#: src/pyams_portal/zmi/layout.py:610 msgid "Duplicate this template" msgstr "Dupliquer ce modèle" -#: src/pyams_portal/zmi/layout.py:616 +#: src/pyams_portal/zmi/layout.py:630 msgid "New template name" msgstr "Nom du nouveau modèle" -#: src/pyams_portal/zmi/layout.py:101 +#: src/pyams_portal/zmi/layout.py:100 msgid "Local template configuration" msgstr "Configuration d'un modèle local" -#: src/pyams_portal/zmi/layout.py:152 +#: src/pyams_portal/zmi/layout.py:151 msgid "{{ missing portlet }}" msgstr "{{ composant indisponible }}" -#: src/pyams_portal/zmi/layout.py:104 +#: src/pyams_portal/zmi/layout.py:103 msgid "Inherited local template configuration" msgstr "Configuration d'un modèle local hérité" -#: src/pyams_portal/zmi/layout.py:143 +#: src/pyams_portal/zmi/layout.py:142 #, python-format msgid "" "Add component: {0}
Drag and drop button to page template to position " @@ -217,16 +217,25 @@ "Ajouter un composant : {0}
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:327 +#: src/pyams_portal/zmi/layout.py:341 #, python-format msgid "Edit « {0} » slot properties" msgstr "Propriétés du panneau « {0} »" -#: src/pyams_portal/zmi/layout.py:107 +#: src/pyams_portal/zmi/layout.py:286 +msgid "Row ID must be an integer value!" +msgstr "Le numéro de ligne doit être un nombre entier !" + +#: src/pyams_portal/zmi/layout.py:106 #, python-format msgid "Shared template configuration ({0})" msgstr "Configuration d'un modèle partagé ({0})" +#: src/pyams_portal/zmi/layout.py:290 +#, python-format +msgid "Row ID must be between 1 and {0}!" +msgstr "Le numéro de ligne doit être compris entre 1 et {0}" + #: src/pyams_portal/zmi/container.py:102 msgid "Shared portal templates" msgstr "Modèles de présentation partagés" @@ -313,37 +322,37 @@ msgid "Large desktop device (> 1170px)" msgstr "Écrans de grande taille (> 1170 px)" -#: src/pyams_portal/zmi/templates/layout.pt:118 +#: src/pyams_portal/zmi/templates/layout.pt:116 msgid "Reduce/restore portlet" msgstr "Réduire/restaurer le composant" -#: src/pyams_portal/zmi/templates/layout.pt:123 +#: src/pyams_portal/zmi/templates/layout.pt:121 msgid "Edit portlet properties" msgstr "Propriétés" -#: src/pyams_portal/zmi/templates/layout.pt:125 +#: src/pyams_portal/zmi/templates/layout.pt:123 msgid "Portlet settings are not those of original template" msgstr "" "Les propriétés du composant ne sont pas celles héritées du modèle de " "présentation" -#: src/pyams_portal/zmi/templates/layout.pt:143 +#: src/pyams_portal/zmi/templates/layout.pt:141 msgid "Delete row..." msgstr "Supprimer la ligne" -#: src/pyams_portal/zmi/templates/layout.pt:152 +#: src/pyams_portal/zmi/templates/layout.pt:150 msgid "Edit slot properties..." msgstr "Propriétés" -#: src/pyams_portal/zmi/templates/layout.pt:159 +#: src/pyams_portal/zmi/templates/layout.pt:157 msgid "Delete slot..." msgstr "Supprimer le panneau" -#: src/pyams_portal/zmi/templates/layout.pt:167 +#: src/pyams_portal/zmi/templates/layout.pt:165 msgid "Edit portlet properties..." msgstr "Propriétés" -#: src/pyams_portal/zmi/templates/layout.pt:175 +#: src/pyams_portal/zmi/templates/layout.pt:173 msgid "Delete portlet..." msgstr "Supprimer le composant" @@ -395,32 +404,32 @@ msgid "Hidden portlet" msgstr "NON affiché" -#: src/pyams_portal/interfaces/__init__.py:70 +#: src/pyams_portal/interfaces/__init__.py:66 msgid "Portlet" msgstr "Composant" -#: src/pyams_portal/interfaces/__init__.py:73 -#: src/pyams_portal/interfaces/__init__.py:205 +#: src/pyams_portal/interfaces/__init__.py:69 +#: src/pyams_portal/interfaces/__init__.py:201 msgid "Slot name" msgstr "Nom du panneau" -#: src/pyams_portal/interfaces/__init__.py:74 +#: src/pyams_portal/interfaces/__init__.py:70 msgid "Slot name to which this configuration applies" msgstr "Nom du panneau correspondant à la configuration" -#: src/pyams_portal/interfaces/__init__.py:87 +#: src/pyams_portal/interfaces/__init__.py:83 msgid "Portlet renderer" msgstr "Mode de rendu" -#: src/pyams_portal/interfaces/__init__.py:88 +#: src/pyams_portal/interfaces/__init__.py:84 msgid "Name of renderer used to render this portlet" msgstr "Mode de rendu utilisé pour restituer ce composant" -#: src/pyams_portal/interfaces/__init__.py:121 +#: src/pyams_portal/interfaces/__init__.py:117 msgid "Inherit parent configuration?" msgstr "Hériter de la configuration du parent ?" -#: src/pyams_portal/interfaces/__init__.py:122 +#: src/pyams_portal/interfaces/__init__.py:118 msgid "" "This option is only available if context's parent is using the same " "template..." @@ -428,27 +437,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:206 +#: src/pyams_portal/interfaces/__init__.py:202 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:209 +#: src/pyams_portal/interfaces/__init__.py:205 msgid "Row ID" -msgstr "ID de la ligne" +msgstr "Numéro de la ligne" -#: src/pyams_portal/interfaces/__init__.py:223 +#: src/pyams_portal/interfaces/__init__.py:219 msgid "Visible slot?" msgstr "Panneau visible ?" -#: src/pyams_portal/interfaces/__init__.py:224 +#: src/pyams_portal/interfaces/__init__.py:220 msgid "Select 'no' to hide this slot..." msgstr "Choisir 'non' pour masquer ce panneau..." -#: src/pyams_portal/interfaces/__init__.py:228 +#: src/pyams_portal/interfaces/__init__.py:224 msgid "Extra small device width" msgstr "Largeur sur très petits périphériques" -#: src/pyams_portal/interfaces/__init__.py:229 +#: src/pyams_portal/interfaces/__init__.py:225 msgid "" "Slot width, in columns count, on extra small devices (phones...); set to 0 " "to hide the portlet" @@ -456,11 +465,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:235 +#: src/pyams_portal/interfaces/__init__.py:231 msgid "Small device width" msgstr "Largeur sur petits périphériques" -#: src/pyams_portal/interfaces/__init__.py:236 +#: src/pyams_portal/interfaces/__init__.py:232 msgid "" "Slot width, in columns count, on small devices (tablets...); set to 0 to " "hide the portlet" @@ -468,11 +477,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:242 +#: src/pyams_portal/interfaces/__init__.py:238 msgid "Medium devices width" msgstr "Largeur sur périphériques moyens" -#: src/pyams_portal/interfaces/__init__.py:243 +#: src/pyams_portal/interfaces/__init__.py:239 msgid "" "Slot width, in columns count, on medium desktop devices (>= 992 pixels); set " "to 0 to hide the portlet" @@ -480,11 +489,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:249 +#: src/pyams_portal/interfaces/__init__.py:245 msgid "Large devices width" msgstr "Largeur sur grands périphériques" -#: src/pyams_portal/interfaces/__init__.py:250 +#: src/pyams_portal/interfaces/__init__.py:246 msgid "" "Slot width, in columns count, on large desktop devices (>= 1200 pixels); set " "to 0 to hide the portlet" @@ -492,27 +501,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:256 +#: src/pyams_portal/interfaces/__init__.py:252 msgid "CSS class" msgstr "Class CSS" -#: src/pyams_portal/interfaces/__init__.py:257 +#: src/pyams_portal/interfaces/__init__.py:253 msgid "CSS class applied to this slot" msgstr "Classe CSS spécifique appliquée à ce panneau" -#: src/pyams_portal/interfaces/__init__.py:370 +#: src/pyams_portal/interfaces/__init__.py:366 msgid "Template name" msgstr "Nom du modèle" -#: src/pyams_portal/interfaces/__init__.py:371 +#: src/pyams_portal/interfaces/__init__.py:367 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:392 +#: src/pyams_portal/interfaces/__init__.py:388 msgid "Toolbar portlets" msgstr "Composants de la barre d'outils" -#: src/pyams_portal/interfaces/__init__.py:393 +#: src/pyams_portal/interfaces/__init__.py:389 msgid "" "These portlets will be directly available in templates configuration page " "toolbar" @@ -520,52 +529,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:422 +#: src/pyams_portal/interfaces/__init__.py:418 msgid "Inherit parent template?" msgstr "Hériter du modèle du parent ?" -#: src/pyams_portal/interfaces/__init__.py:423 +#: src/pyams_portal/interfaces/__init__.py:419 msgid "Should we reuse parent template?" msgstr "Doit-on ré-utiliser le modèle du parent ?" -#: src/pyams_portal/interfaces/__init__.py:427 +#: src/pyams_portal/interfaces/__init__.py:423 msgid "Override parent template?" msgstr "Ne pas hériter du modèle du parent ?" -#: src/pyams_portal/interfaces/__init__.py:428 +#: src/pyams_portal/interfaces/__init__.py:424 msgid "Should we override parent template?" msgstr "Doit-on remplacer le modèle de présentation du parent ?" -#: src/pyams_portal/interfaces/__init__.py:432 +#: src/pyams_portal/interfaces/__init__.py:428 msgid "Use local template?" msgstr "Utiliser un modèle local ?" -#: src/pyams_portal/interfaces/__init__.py:433 +#: src/pyams_portal/interfaces/__init__.py:429 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:438 +#: src/pyams_portal/interfaces/__init__.py:434 msgid "Local template" msgstr "Modèle local" -#: src/pyams_portal/interfaces/__init__.py:443 +#: src/pyams_portal/interfaces/__init__.py:439 msgid "Use shared template?" msgstr "Utiliser un modèle partagé" -#: src/pyams_portal/interfaces/__init__.py:444 +#: src/pyams_portal/interfaces/__init__.py:440 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:448 +#: src/pyams_portal/interfaces/__init__.py:444 msgid "Page template" msgstr "Modèle de page" -#: src/pyams_portal/interfaces/__init__.py:449 +#: src/pyams_portal/interfaces/__init__.py:445 msgid "Template used for this page" msgstr "Modèle de présentation utilisé pour cette page"