Version 0.1.7 0.1.7
authorThierry Florac <tflorac@ulthar.net>
Sun, 14 Jan 2018 14:50:30 +0100
changeset 44 5ed604e48055
parent 43 aa374e033e84
child 45 f842966dc45d
Version 0.1.7
bootstrap.py
buildout.cfg
docs/HISTORY.txt
setup.py
src/pyams_scheduler.egg-info/PKG-INFO
src/pyams_scheduler/locales/fr/LC_MESSAGES/pyams_scheduler.mo
src/pyams_scheduler/locales/fr/LC_MESSAGES/pyams_scheduler.po
src/pyams_scheduler/locales/pyams_scheduler.pot
--- a/bootstrap.py	Sun Jan 14 14:49:24 2018 +0100
+++ b/bootstrap.py	Sun Jan 14 14:50:30 2018 +0100
@@ -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])
 
--- a/buildout.cfg	Sun Jan 14 14:49:24 2018 +0100
+++ b/buildout.cfg	Sun Jan 14 14:50:30 2018 +0100
@@ -73,4 +73,4 @@
 eggs = pyams_scheduler [test]
 
 [versions]
-pyams_scheduler = 0.1.6
+pyams_scheduler = 0.1.7
--- a/docs/HISTORY.txt	Sun Jan 14 14:49:24 2018 +0100
+++ b/docs/HISTORY.txt	Sun Jan 14 14:50:30 2018 +0100
@@ -1,6 +1,12 @@
 History
 =======
 
+0.1.7
+-----
+ - use ZODBConnection class instead of ZEOConnection to handle any ZODB storage for scheduler
+ - add scheduler process connection test
+ - add Pyramid settings to start scheduler process
+
 0.1.6
 -----
  - added tasks settings view name attribute to handle tasks without settings view
--- a/setup.py	Sun Jan 14 14:49:24 2018 +0100
+++ b/setup.py	Sun Jan 14 14:50:30 2018 +0100
@@ -22,7 +22,7 @@
 README = os.path.join(DOCS, 'README.txt')
 HISTORY = os.path.join(DOCS, 'HISTORY.txt')
 
-version = '0.1.6'
+version = '0.1.7'
 long_description = open(README).read() + '\n\n' + open(HISTORY).read()
 
 tests_require = []
--- a/src/pyams_scheduler.egg-info/PKG-INFO	Sun Jan 14 14:49:24 2018 +0100
+++ b/src/pyams_scheduler.egg-info/PKG-INFO	Sun Jan 14 14:50:30 2018 +0100
@@ -1,11 +1,12 @@
 Metadata-Version: 1.1
 Name: pyams-scheduler
-Version: 0.1.6
+Version: 0.1.7
 Summary: PyAMS tasks scheduler
 Home-page: http://hg.ztfy.org/pyams/pyams_scheduler
 Author: Thierry Florac
 Author-email: tflorac@ulthar.net
 License: ZPL
+Description-Content-Type: UNKNOWN
 Description: =======================
         pyams_scheduler package
         =======================
@@ -61,6 +62,12 @@
         History
         =======
         
+        0.1.7
+        -----
+         - use ZODBConnection class instead of ZEOConnection to handle any ZODB storage for scheduler
+         - add scheduler process connection test
+         - add Pyramid settings to start scheduler process
+        
         0.1.6
         -----
          - added tasks settings view name attribute to handle tasks without settings view
Binary file src/pyams_scheduler/locales/fr/LC_MESSAGES/pyams_scheduler.mo has changed
--- a/src/pyams_scheduler/locales/fr/LC_MESSAGES/pyams_scheduler.po	Sun Jan 14 14:49:24 2018 +0100
+++ b/src/pyams_scheduler/locales/fr/LC_MESSAGES/pyams_scheduler.po	Sun Jan 14 14:50:30 2018 +0100
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2015-03-11 10:38+0100\n"
+"POT-Creation-Date: 2018-01-11 17:04+0100\n"
 "PO-Revision-Date: 2015-03-11 10:38+0100\n"
 "Last-Translator: Thierry Florac <tflorac@ulthar.net>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -16,41 +16,41 @@
 "Generated-By: Lingua 3.8\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: src/pyams_scheduler/trigger.py:81
+#: src/pyams_scheduler/trigger.py:78
 msgid "Task is not configured for cron-style scheduling!"
 msgstr "Cette tâche n'est pas configurée en mode 'cron' !"
 
-#: src/pyams_scheduler/trigger.py:126
+#: src/pyams_scheduler/trigger.py:123
 msgid "Task is not configured for date-style scheduling!"
 msgstr "Cette tâche n'est pas configurée en mode 'date' !"
 
-#: src/pyams_scheduler/trigger.py:168
+#: src/pyams_scheduler/trigger.py:165
 msgid "Task is not configured for loop-style scheduling!"
 msgstr "Cette tâche n'est pas configurée en mode 'interval' !"
 
-#: src/pyams_scheduler/zmi/url.py:45
+#: src/pyams_scheduler/zmi/url.py:46
 msgid "Add URL caller task..."
 msgstr "Ajouter un appel d'URL"
 
-#: src/pyams_scheduler/zmi/url.py:56 src/pyams_scheduler/zmi/task.py:64
+#: src/pyams_scheduler/zmi/url.py:57 src/pyams_scheduler/zmi/task.py:64
 msgid "Add URL caller task"
 msgstr "Ajout d'une tâche d'appel d'URL"
 
-#: src/pyams_scheduler/zmi/url.py:78 src/pyams_scheduler/zmi/ssh.py:78
-#: src/pyams_scheduler/zmi/zodb.py:78
+#: src/pyams_scheduler/zmi/url.py:79 src/pyams_scheduler/zmi/ssh.py:79
+#: src/pyams_scheduler/zmi/zodb.py:79
 msgid "Edit task settings"
 msgstr "Paramètres de la tâche"
 
-#: src/pyams_scheduler/zmi/url.py:76 src/pyams_scheduler/zmi/task.py:104
-#: src/pyams_scheduler/zmi/task.py:132 src/pyams_scheduler/zmi/task.py:201
-#: src/pyams_scheduler/zmi/task.py:277 src/pyams_scheduler/zmi/ssh.py:76
-#: src/pyams_scheduler/zmi/zodb.py:76
+#: src/pyams_scheduler/zmi/url.py:77 src/pyams_scheduler/zmi/task.py:104
+#: src/pyams_scheduler/zmi/task.py:132 src/pyams_scheduler/zmi/task.py:213
+#: src/pyams_scheduler/zmi/task.py:289 src/pyams_scheduler/zmi/ssh.py:77
+#: src/pyams_scheduler/zmi/zodb.py:77
 #, python-format
 msgid "Scheduler task: {0}"
 msgstr "Tâche planifiée : {0}"
 
-#: src/pyams_scheduler/zmi/task.py:63 src/pyams_scheduler/zmi/scheduler.py:81
-#: src/pyams_scheduler/zmi/scheduler.py:225
+#: src/pyams_scheduler/zmi/task.py:63 src/pyams_scheduler/zmi/scheduler.py:82
+#: src/pyams_scheduler/zmi/scheduler.py:243
 msgid "Tasks scheduler"
 msgstr "Planificateur de tâches"
 
@@ -58,20 +58,19 @@
 msgid "Edit task properties"
 msgstr "Propriétés de la tâche"
 
-#: src/pyams_scheduler/zmi/task.py:134
-#: src/pyams_scheduler/zmi/scheduler.py:134
+#: src/pyams_scheduler/zmi/task.py:134 src/pyams_scheduler/zmi/scheduler.py:143
 msgid "Schedule task"
 msgstr "Planifier la tâche"
 
-#: src/pyams_scheduler/zmi/task.py:204
+#: src/pyams_scheduler/zmi/task.py:216
 msgid "Execute task"
 msgstr "Exécuter la tâche"
 
-#: src/pyams_scheduler/zmi/task.py:251
+#: src/pyams_scheduler/zmi/task.py:263
 msgid "Executing and debugging task"
 msgstr "Exécuter ou déboguer une tâche"
 
-#: src/pyams_scheduler/zmi/task.py:252
+#: src/pyams_scheduler/zmi/task.py:264
 msgid ""
 "You can choose to execute the task in 'normal' mode or in 'debug' mode.\n"
 "\n"
@@ -85,37 +84,39 @@
 "**WARNING**: in both mode, the task will be executed even if it's disabled "
 "in it's scheduling settings!"
 msgstr ""
-"Vous pouvez choisir d'exécuter cette tâche en mode 'normal' ou en mode 'debug'.\n"
+"Vous pouvez choisir d'exécuter cette tâche en mode 'normal' ou en mode "
+"'debug'.\n"
 "\n"
-"En mode 'normal', la tâche est planifiée normalement pour être exécutée au sein "
-"du processus de planification en arrière plan (passé un délai de 5 secondes).\n"
+"En mode 'normal', la tâche est planifiée normalement pour être exécutée au "
+"sein du processus de planification en arrière plan (passé un délai de 5 "
+"secondes).\n"
 "\n"
-"En mode 'debug', la tâche est exécutée dans le contexte du processus principal "
-"du serveur web : le but de ce mode est de permettre aux développeurs de placer "
-"des points d'arrêt pour faciliter le déboguage.\n"
+"En mode 'debug', la tâche est exécutée dans le contexte du processus "
+"principal du serveur web : le but de ce mode est de permettre aux "
+"développeurs de placer des points d'arrêt pour faciliter le déboguage.\n"
 "\n"
-"**ATTENTION** : quel que soit le mode, la tâche sera exécutée même si elle a été "
-"désactivée dans ses paramètres de planification !"
+"**ATTENTION** : quel que soit le mode, la tâche sera exécutée même si elle a "
+"été désactivée dans ses paramètres de planification !"
 
-#: src/pyams_scheduler/zmi/task.py:279 src/pyams_scheduler/zmi/task.py:295
+#: src/pyams_scheduler/zmi/task.py:291 src/pyams_scheduler/zmi/task.py:307
 #: src/pyams_scheduler/interfaces/__init__.py:131
-#: src/pyams_scheduler/interfaces/__init__.py:204
+#: src/pyams_scheduler/interfaces/__init__.py:208
 msgid "Task history"
 msgstr "Historique de la tâche"
 
-#: src/pyams_scheduler/zmi/task.py:318
+#: src/pyams_scheduler/zmi/task.py:330
 msgid "Date"
 msgstr "Date"
 
-#: src/pyams_scheduler/zmi/task.py:189
+#: src/pyams_scheduler/zmi/task.py:201
 msgid "Close"
 msgstr "Fermer"
 
-#: src/pyams_scheduler/zmi/task.py:190
+#: src/pyams_scheduler/zmi/task.py:202
 msgid "Run in debug mode"
 msgstr "Exécuter en mode 'debug'"
 
-#: src/pyams_scheduler/zmi/task.py:191
+#: src/pyams_scheduler/zmi/task.py:203
 msgid "Run in normal mode"
 msgstr "Exécuter la tâche"
 
@@ -123,96 +124,96 @@
 msgid "Specified task name is already used!"
 msgstr "Le nom indiqué est déjà utilisé !"
 
-#: src/pyams_scheduler/zmi/task.py:236
+#: src/pyams_scheduler/zmi/task.py:248
 msgid "Task scheduled in normal mode will start in 5 seconds..."
 msgstr "La tâche a été planifiée et sera exécutée dans 5 secondes..."
 
-#: src/pyams_scheduler/zmi/task.py:242
+#: src/pyams_scheduler/zmi/task.py:254
 msgid "Task run in debug mode. Please check your console..."
-msgstr "La tâche a été exécutée en mode 'debug'. Veuillez vérifier votre console..."
+msgstr ""
+"La tâche a été exécutée en mode 'debug'. Veuillez vérifier votre console..."
 
-#: src/pyams_scheduler/zmi/scheduler.py:90
-#: src/pyams_scheduler/zmi/scheduler.py:226
+#: src/pyams_scheduler/zmi/scheduler.py:91
 msgid "Scheduled tasks"
 msgstr "Tâches planifiées"
 
-#: src/pyams_scheduler/zmi/scheduler.py:110
-msgid "Name"
-msgstr "Nom"
-
-#: src/pyams_scheduler/zmi/scheduler.py:120
+#: src/pyams_scheduler/zmi/scheduler.py:119
 msgid "Task settings"
 msgstr "Paramètres de la tâche"
 
-#: src/pyams_scheduler/zmi/scheduler.py:148
+#: src/pyams_scheduler/zmi/scheduler.py:156
+msgid "Name"
+msgstr "Nom"
+
+#: src/pyams_scheduler/zmi/scheduler.py:166
 msgid "Run task"
 msgstr "Exécuter en arrière plan"
 
-#: src/pyams_scheduler/zmi/scheduler.py:162
+#: src/pyams_scheduler/zmi/scheduler.py:180
 msgid "Task run history"
 msgstr "Historique"
 
-#: src/pyams_scheduler/zmi/scheduler.py:175
+#: src/pyams_scheduler/zmi/scheduler.py:193
 msgid "Delete task"
 msgstr "Supprimer la tâche"
 
-#: src/pyams_scheduler/zmi/scheduler.py:234
+#: src/pyams_scheduler/zmi/scheduler.py:251
 msgid "Properties..."
 msgstr "Propriétés"
 
-#: src/pyams_scheduler/zmi/scheduler.py:251
+#: src/pyams_scheduler/zmi/scheduler.py:268
 msgid "Update tasks scheduler properties"
 msgstr "Propriétés du planificateur de tâches"
 
-#: src/pyams_scheduler/zmi/scheduler.py:269
+#: src/pyams_scheduler/zmi/scheduler.py:286
 msgid "Active jobs..."
 msgstr "Tâches actives"
 
-#: src/pyams_scheduler/zmi/scheduler.py:287
+#: src/pyams_scheduler/zmi/scheduler.py:304
 msgid "Display scheduler active jobs"
 msgstr "Tâches actuellement planifiées"
 
-#: src/pyams_scheduler/zmi/scheduler.py:295
+#: src/pyams_scheduler/zmi/scheduler.py:312
 msgid "Scheduler jobs"
 msgstr "Jobs en cours de planification"
 
-#: src/pyams_scheduler/zmi/scheduler.py:312
+#: src/pyams_scheduler/zmi/scheduler.py:329
 msgid "Job name"
 msgstr "Nom du job"
 
-#: src/pyams_scheduler/zmi/scheduler.py:323
+#: src/pyams_scheduler/zmi/scheduler.py:340
 msgid "ID"
 msgstr "ID"
 
-#: src/pyams_scheduler/zmi/scheduler.py:334
+#: src/pyams_scheduler/zmi/scheduler.py:351
 msgid "Trigger"
 msgstr "Déclencheur"
 
-#: src/pyams_scheduler/zmi/scheduler.py:345
+#: src/pyams_scheduler/zmi/scheduler.py:362
 msgid "Next run"
 msgstr "Prochain lancement"
 
-#: src/pyams_scheduler/zmi/scheduler.py:188
+#: src/pyams_scheduler/zmi/scheduler.py:206
 msgid "No provided object_name argument!"
 msgstr "Argument 'object_name' non fourni !"
 
-#: src/pyams_scheduler/zmi/scheduler.py:192
+#: src/pyams_scheduler/zmi/scheduler.py:210
 msgid "Given task name doesn't exist!"
 msgstr "Le nom de la tâche indiquée n'existe pas !"
 
-#: src/pyams_scheduler/zmi/ssh.py:45
+#: src/pyams_scheduler/zmi/ssh.py:46
 msgid "Add SSH command..."
 msgstr "Ajouter une commande SSH"
 
-#: src/pyams_scheduler/zmi/ssh.py:56
+#: src/pyams_scheduler/zmi/ssh.py:57
 msgid "Add SSH command task"
 msgstr "Ajout d'une commande SSH"
 
-#: src/pyams_scheduler/zmi/zodb.py:45
+#: src/pyams_scheduler/zmi/zodb.py:46
 msgid "Add ZODB packing task..."
 msgstr "Ajouter un compacteur ZODB"
 
-#: src/pyams_scheduler/zmi/zodb.py:56
+#: src/pyams_scheduler/zmi/zodb.py:57
 msgid "Add ZODB packing task"
 msgstr "Ajout d'une commande de compactage de ZODB"
 
@@ -264,7 +265,9 @@
 
 #: src/pyams_scheduler/interfaces/url.py:54
 msgid "If 'Yes', remote DNS queries will be done by proxy server"
-msgstr "Si 'oui', les requêtes DNS distantes seront exécutées par le serveur mandataire"
+msgstr ""
+"Si 'oui', les requêtes DNS distantes seront exécutées par le serveur "
+"mandataire"
 
 #: src/pyams_scheduler/interfaces/url.py:58
 msgid "Proxy user name"
@@ -283,8 +286,8 @@
 "Connection timeout, in seconds; keep empty to use system's default, which is "
 "also none by default"
 msgstr ""
-"Délai de connexion, en secondes ; laisser cette valeur vide pour utiliser la valeur "
-"par défaut du système, qui est également nulle"
+"Délai de connexion, en secondes ; laisser cette valeur vide pour utiliser la "
+"valeur par défaut du système, qui est également nulle"
 
 #: src/pyams_scheduler/interfaces/url.py:74
 msgid "Missing hostname!"
@@ -294,14 +297,13 @@
 msgid "Proxy server defined without proxy port!"
 msgstr "Serveur mandataire défini sans numéro de port indiqué !"
 
+#: src/pyams_scheduler/interfaces/__init__.py:103
+msgid "ZODB connection name"
+msgstr "Connexion ZODB"
+
 #: src/pyams_scheduler/interfaces/__init__.py:104
-#: src/pyams_scheduler/interfaces/zodb.py:31
-msgid "ZEO connection name"
-msgstr "Connexion ZEO"
-
-#: src/pyams_scheduler/interfaces/__init__.py:105
-msgid "Name of ZEO connection utility defining scheduler connection"
-msgstr "Nom de la connexion ZEO utilisée par le service de planification"
+msgid "Name of ZODB defining scheduler connection"
+msgstr "Nom de la ZODB utilisée par le service de planification"
 
 #: src/pyams_scheduler/interfaces/__init__.py:109
 msgid "Reports mailer"
@@ -309,7 +311,9 @@
 
 #: src/pyams_scheduler/interfaces/__init__.py:110
 msgid "Mail delivery utility used to send mails"
-msgstr "Nom du service de messagerie utilisé pour gérer les envois des rapports d'exécution"
+msgstr ""
+"Nom du service de messagerie utilisé pour gérer les envois des rapports "
+"d'exécution"
 
 #: src/pyams_scheduler/interfaces/__init__.py:114
 msgid "Reports source"
@@ -317,7 +321,9 @@
 
 #: src/pyams_scheduler/interfaces/__init__.py:115
 msgid "Mail address from which reports will be sent"
-msgstr "Adresse source à partir de laquelle seront effectués les envois des rapports d'exécution"
+msgstr ""
+"Adresse source à partir de laquelle seront effectués les envois des rapports "
+"d'exécution"
 
 #: src/pyams_scheduler/interfaces/__init__.py:126
 msgid "Scheduler tasks"
@@ -328,7 +334,7 @@
 msgstr "Liste des tâches assignées au service de planification"
 
 #: src/pyams_scheduler/interfaces/__init__.py:130
-#: src/pyams_scheduler/interfaces/__init__.py:203
+#: src/pyams_scheduler/interfaces/__init__.py:207
 msgid "History"
 msgstr "Historique"
 
@@ -346,7 +352,8 @@
 
 #: src/pyams_scheduler/interfaces/__init__.py:160
 msgid "Scheduling mode defines how task will be scheduled"
-msgstr "Le mode de planification détermine la façon dont la tâche sera planifiée"
+msgstr ""
+"Le mode de planification détermine la façon dont la tâche sera planifiée"
 
 #: src/pyams_scheduler/interfaces/__init__.py:164
 msgid "Reports target(s)"
@@ -369,9 +376,10 @@
 "Mail address(es) to which error reports will be sent; you can enter several "
 "addresses separated by semicolons; keep empty to use normal reports target"
 msgstr ""
-"Vous pouvez choisir des destinataires spécifiques pour les rapports d'erreurs ; "
-"vous pouvez indiquer plusieurs adresses séparées par un point-virgule ; si vous laissez "
-"ce champ vide, les erreurs seront adressées aux destinataires normaux"
+"Vous pouvez choisir des destinataires spécifiques pour les rapports "
+"d'erreurs ; vous pouvez indiquer plusieurs adresses séparées par un point-"
+"virgule ; si vous laissez ce champ vide, les erreurs seront adressées aux "
+"destinataires normaux"
 
 #: src/pyams_scheduler/interfaces/__init__.py:175
 msgid "Only report errors?"
@@ -379,7 +387,9 @@
 
 #: src/pyams_scheduler/interfaces/__init__.py:176
 msgid "If 'Yes', only error reports will be sent to given errors target"
-msgstr "Si 'oui', seuls les rapports d'exécution en erreur seront envoyés aux destinataires indiqués"
+msgstr ""
+"Si 'oui', seuls les rapports d'exécution en erreur seront envoyés aux "
+"destinataires indiqués"
 
 #: src/pyams_scheduler/interfaces/__init__.py:180
 msgid "Send empty reports?"
@@ -387,7 +397,9 @@
 
 #: src/pyams_scheduler/interfaces/__init__.py:181
 msgid "If 'No', empty reports will not be sent by mail"
-msgstr "Si 'non', les rapports d'exécution vides ne seront pas envoyés par la messagerie"
+msgstr ""
+"Si 'non', les rapports d'exécution vides ne seront pas envoyés par la "
+"messagerie"
 
 #: src/pyams_scheduler/interfaces/__init__.py:185
 msgid "Keep empty reports history?"
@@ -395,7 +407,9 @@
 
 #: src/pyams_scheduler/interfaces/__init__.py:186
 msgid "If 'Yes', empty reports will be kept in task history"
-msgstr "Si 'oui', les rapports d'exécution vides seront conservés dans l'historique de la tâche"
+msgstr ""
+"Si 'oui', les rapports d'exécution vides seront conservés dans l'historique "
+"de la tâche"
 
 #: src/pyams_scheduler/interfaces/__init__.py:190
 msgid "History duration"
@@ -406,8 +420,9 @@
 "Number of days during which execution reports are kept in history; enter 0 "
 "to remove limit"
 msgstr ""
-"Nombre de jours pendant lesquels les rapports d'exécution seront conservés dans l'historique ; "
-"laissez cette option vide pour ne pas appliquer cette limite"
+"Nombre de jours pendant lesquels les rapports d'exécution seront conservés "
+"dans l'historique ; laissez cette option vide pour ne pas appliquer cette "
+"limite"
 
 #: src/pyams_scheduler/interfaces/__init__.py:195
 msgid "History max length"
@@ -415,144 +430,155 @@
 
 #: src/pyams_scheduler/interfaces/__init__.py:196
 msgid "Number of execution reports to keep in history; enter 0 to remove limit"
-msgstr "Nombre maximal de rapports conservés dans l'historique ; laissez cette option "
-"vide pour ne pas appliquer cette limite"
+msgstr ""
+"Nombre maximal de rapports conservés dans l'historique ; laissez cette "
+"option vide pour ne pas appliquer cette limite"
 
-#: src/pyams_scheduler/interfaces/__init__.py:258
+#: src/pyams_scheduler/interfaces/__init__.py:203
+msgid "Settings view name"
+msgstr "Nom de la vue de paramétrage"
+
+#: src/pyams_scheduler/interfaces/__init__.py:262
 msgid "Active task"
 msgstr "Tâche active"
 
-#: src/pyams_scheduler/interfaces/__init__.py:259
+#: src/pyams_scheduler/interfaces/__init__.py:263
 msgid "You can disable a task by selecting 'No'"
-msgstr "Une tâche inactive reste visible dans les travaux planifiés mais n'est pas exécutée"
+msgstr ""
+"Une tâche inactive reste visible dans les travaux planifiés mais n'est pas "
+"exécutée"
 
-#: src/pyams_scheduler/interfaces/__init__.py:263
+#: src/pyams_scheduler/interfaces/__init__.py:267
 msgid "First execution date"
 msgstr "À partir du..."
 
-#: src/pyams_scheduler/interfaces/__init__.py:264
+#: src/pyams_scheduler/interfaces/__init__.py:268
 msgid "Date from which scheduling should start"
-msgstr "Date à partir de laquelle la tâche sera planifiée ; laisser vide pour une prise en compte immédiate"
+msgstr ""
+"Date à partir de laquelle la tâche sera planifiée ; laisser vide pour une "
+"prise en compte immédiate"
 
-#: src/pyams_scheduler/interfaces/__init__.py:280
-#: src/pyams_scheduler/interfaces/__init__.py:354
+#: src/pyams_scheduler/interfaces/__init__.py:284
+#: src/pyams_scheduler/interfaces/__init__.py:358
 msgid "Last execution date"
 msgstr "Jusqu'au..."
 
-#: src/pyams_scheduler/interfaces/__init__.py:281
-#: src/pyams_scheduler/interfaces/__init__.py:355
+#: src/pyams_scheduler/interfaces/__init__.py:285
+#: src/pyams_scheduler/interfaces/__init__.py:359
 msgid "Date past which scheduling should end"
 msgstr "Date au-delà de laquelle la tâche ne sera plus planifiée"
 
-#: src/pyams_scheduler/interfaces/__init__.py:284
+#: src/pyams_scheduler/interfaces/__init__.py:288
 msgid "Years"
 msgstr "Années"
 
-#: src/pyams_scheduler/interfaces/__init__.py:285
+#: src/pyams_scheduler/interfaces/__init__.py:289
 msgid "Years for which to schedule the job"
 msgstr "Année pendant lesquelles la tâche est planifiée"
 
-#: src/pyams_scheduler/interfaces/__init__.py:289
+#: src/pyams_scheduler/interfaces/__init__.py:293
 msgid "Months"
 msgstr "Mois"
 
-#: src/pyams_scheduler/interfaces/__init__.py:290
+#: src/pyams_scheduler/interfaces/__init__.py:294
 msgid "Months (1-12) for which to schedule the job"
 msgstr "Mois (1 à 12) pendant lesquels la tâche est planifiée"
 
-#: src/pyams_scheduler/interfaces/__init__.py:294
+#: src/pyams_scheduler/interfaces/__init__.py:298
 msgid "Month days"
 msgstr "Jours du mois"
 
-#: src/pyams_scheduler/interfaces/__init__.py:295
+#: src/pyams_scheduler/interfaces/__init__.py:299
 msgid "Days (1-31) for which to schedule the job"
 msgstr "Jours du mois (1 à 31) pendant lesquels la tâche est planifiée"
 
-#: src/pyams_scheduler/interfaces/__init__.py:299
+#: src/pyams_scheduler/interfaces/__init__.py:303
 msgid "Weeks"
 msgstr "Semaines"
 
-#: src/pyams_scheduler/interfaces/__init__.py:300
+#: src/pyams_scheduler/interfaces/__init__.py:304
 msgid "Year weeks (1-53) for which to schedule the job"
 msgstr "Semaines de l'année (1 à 53) pendant lesquelles la tâche est planifiée"
 
-#: src/pyams_scheduler/interfaces/__init__.py:304
+#: src/pyams_scheduler/interfaces/__init__.py:308
 msgid "Week days"
 msgstr "Jours de la semaine"
 
-#: src/pyams_scheduler/interfaces/__init__.py:305
+#: src/pyams_scheduler/interfaces/__init__.py:309
 msgid "Week days (0-6, with 0 as monday) for which to schedule the job"
-msgstr "Jours de la semaine (0 à 6, 0 étant le dimanche) pendant lesquels la tâche est planifiée"
+msgstr ""
+"Jours de la semaine (0 à 6, 0 étant le dimanche) pendant lesquels la tâche "
+"est planifiée"
 
-#: src/pyams_scheduler/interfaces/__init__.py:309
+#: src/pyams_scheduler/interfaces/__init__.py:313
 msgid "Hours"
 msgstr "Heures"
 
-#: src/pyams_scheduler/interfaces/__init__.py:310
+#: src/pyams_scheduler/interfaces/__init__.py:314
 msgid "Hours (0-23) for which to schedule the job"
 msgstr "Heures du jour (0 à 23) auxquelles la tâche est planifiée"
 
-#: src/pyams_scheduler/interfaces/__init__.py:314
+#: src/pyams_scheduler/interfaces/__init__.py:318
 msgid "Minutes"
 msgstr "Minutes"
 
-#: src/pyams_scheduler/interfaces/__init__.py:315
+#: src/pyams_scheduler/interfaces/__init__.py:319
 msgid "Minutes (0-59) for which to schedule the job"
 msgstr "Minutes (0 à 59) auxquelles la tâche est planifiée"
 
-#: src/pyams_scheduler/interfaces/__init__.py:319
+#: src/pyams_scheduler/interfaces/__init__.py:323
 msgid "Seconds"
 msgstr "Secondes"
 
-#: src/pyams_scheduler/interfaces/__init__.py:320
+#: src/pyams_scheduler/interfaces/__init__.py:324
 msgid "Seconds (0-59) for which to schedule the job"
 msgstr "Secondes (0 à 59) auxquelles la tâche est planifiée"
 
-#: src/pyams_scheduler/interfaces/__init__.py:337
+#: src/pyams_scheduler/interfaces/__init__.py:341
 msgid "Execution date"
 msgstr "Date d'exécution"
 
-#: src/pyams_scheduler/interfaces/__init__.py:338
+#: src/pyams_scheduler/interfaces/__init__.py:342
 msgid "Date on which execution should start"
 msgstr "Date à laquelle la tâche sera exécutée"
 
-#: src/pyams_scheduler/interfaces/__init__.py:358
+#: src/pyams_scheduler/interfaces/__init__.py:362
 msgid "Weeks interval"
 msgstr "Semaines"
 
-#: src/pyams_scheduler/interfaces/__init__.py:359
+#: src/pyams_scheduler/interfaces/__init__.py:363
 msgid "Number of weeks between executions"
 msgstr "Nombre de semaines entre deux exécutions"
 
-#: src/pyams_scheduler/interfaces/__init__.py:363
+#: src/pyams_scheduler/interfaces/__init__.py:367
 msgid "Days interval"
 msgstr "Jours"
 
-#: src/pyams_scheduler/interfaces/__init__.py:364
+#: src/pyams_scheduler/interfaces/__init__.py:368
 msgid "Number of days between executions"
 msgstr "Nombre de jours entre deux exécutions"
 
-#: src/pyams_scheduler/interfaces/__init__.py:368
+#: src/pyams_scheduler/interfaces/__init__.py:372
 msgid "Hours interval"
 msgstr "Heures"
 
-#: src/pyams_scheduler/interfaces/__init__.py:369
+#: src/pyams_scheduler/interfaces/__init__.py:373
 msgid "Number of hours between executions"
 msgstr "Nombre d'heures entre deux exécutions"
 
-#: src/pyams_scheduler/interfaces/__init__.py:373
+#: src/pyams_scheduler/interfaces/__init__.py:377
 msgid "Minutes interval"
 msgstr "Minutes"
 
-#: src/pyams_scheduler/interfaces/__init__.py:374
+#: src/pyams_scheduler/interfaces/__init__.py:378
 msgid "Number of minutes between executions"
 msgstr "Nombre de minutes entre deux exécutions"
 
-#: src/pyams_scheduler/interfaces/__init__.py:378
+#: src/pyams_scheduler/interfaces/__init__.py:382
 msgid "Seconds interval"
 msgstr "Secondes"
 
-#: src/pyams_scheduler/interfaces/__init__.py:379
+#: src/pyams_scheduler/interfaces/__init__.py:383
 msgid "Number of seconds between executions"
 msgstr "Nombre de secondes entre deux exécutions"
 
@@ -564,7 +590,8 @@
 msgid ""
 "Enter hostname or address of a remote hots; keep empty for local server host"
 msgstr ""
-"Nom de machine ou adresse IP d'un serveur distant ; laissez ce paramètre vide pour exécuter une commande locale"
+"Nom de machine ou adresse IP d'un serveur distant ; laissez ce paramètre "
+"vide pour exécuter une commande locale"
 
 #: src/pyams_scheduler/interfaces/ssh.py:35
 msgid "SSH port number"
@@ -579,13 +606,14 @@
 "Enter name of private key file; use '~' to identify running server user home "
 "directory, as in ~/.ssh/id_rsa"
 msgstr ""
-"Dans le cas d'une connexion SSH, vous pouvez indiquer le nom du fichier contenant la clé privée ; "
-"indiquez '~' pour indiquer le répertoire personnel de l'utilisateur qui exécute le serveur web, "
-"comme dans '~/.sh/id_rsa'"
+"Dans le cas d'une connexion SSH, vous pouvez indiquer le nom du fichier "
+"contenant la clé privée ; indiquez '~' pour indiquer le répertoire personnel "
+"de l'utilisateur qui exécute le serveur web, comme dans '~/.sh/id_rsa'"
 
 #: src/pyams_scheduler/interfaces/ssh.py:48
 msgid "If not using private key, you must provide user's password"
-msgstr "Vous devez indiquer un mot de passe si vous n'utilisez pas de clé privée..."
+msgstr ""
+"Vous devez indiquer un mot de passe si vous n'utilisez pas de clé privée..."
 
 #: src/pyams_scheduler/interfaces/ssh.py:51
 msgid "Command line"
@@ -600,7 +628,12 @@
 "You must provide a private key filename OR a password when defining remote "
 "tasks"
 msgstr ""
-"Vous devez fournir une clé privée OU un mot de passe pour vous connecter sur un serveur distant !"
+"Vous devez fournir une clé privée OU un mot de passe pour vous connecter sur "
+"un serveur distant !"
+
+#: src/pyams_scheduler/interfaces/zodb.py:31
+msgid "ZEO connection name"
+msgstr "Connexion ZEO"
 
 #: src/pyams_scheduler/interfaces/zodb.py:32
 msgid "Name of ZEO connection utility pointing to packed database"
@@ -612,4 +645,6 @@
 
 #: src/pyams_scheduler/interfaces/zodb.py:37
 msgid "Transactions older than this age, in days, will be removed"
-msgstr "Les transactions datant d'un nombre de jours supérieur à la valeur indiquée seront supprimées"
+msgstr ""
+"Les transactions datant d'un nombre de jours supérieur à la valeur indiquée "
+"seront supprimées"
--- a/src/pyams_scheduler/locales/pyams_scheduler.pot	Sun Jan 14 14:49:24 2018 +0100
+++ b/src/pyams_scheduler/locales/pyams_scheduler.pot	Sun Jan 14 14:50:30 2018 +0100
@@ -1,12 +1,12 @@
-# 
+#
 # SOME DESCRIPTIVE TITLE
 # This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2015.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2018.
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2015-03-11 10:38+0100\n"
+"POT-Creation-Date: 2018-01-11 17:04+0100\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,44 +14,44 @@
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Lingua 3.8\n"
+"Generated-By: Lingua 3.10.dev0\n"
 
-#: ./src/pyams_scheduler/trigger.py:81
+#: ./src/pyams_scheduler/trigger.py:78
 msgid "Task is not configured for cron-style scheduling!"
 msgstr ""
 
-#: ./src/pyams_scheduler/trigger.py:126
+#: ./src/pyams_scheduler/trigger.py:123
 msgid "Task is not configured for date-style scheduling!"
 msgstr ""
 
-#: ./src/pyams_scheduler/trigger.py:168
+#: ./src/pyams_scheduler/trigger.py:165
 msgid "Task is not configured for loop-style scheduling!"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/url.py:45
+#: ./src/pyams_scheduler/zmi/url.py:46
 msgid "Add URL caller task..."
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/url.py:56 ./src/pyams_scheduler/zmi/task.py:64
+#: ./src/pyams_scheduler/zmi/url.py:57 ./src/pyams_scheduler/zmi/task.py:64
 msgid "Add URL caller task"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/url.py:78 ./src/pyams_scheduler/zmi/ssh.py:78
-#: ./src/pyams_scheduler/zmi/zodb.py:78
+#: ./src/pyams_scheduler/zmi/url.py:79 ./src/pyams_scheduler/zmi/ssh.py:79
+#: ./src/pyams_scheduler/zmi/zodb.py:79
 msgid "Edit task settings"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/url.py:76 ./src/pyams_scheduler/zmi/task.py:104
-#: ./src/pyams_scheduler/zmi/task.py:132 ./src/pyams_scheduler/zmi/task.py:201
-#: ./src/pyams_scheduler/zmi/task.py:277 ./src/pyams_scheduler/zmi/ssh.py:76
-#: ./src/pyams_scheduler/zmi/zodb.py:76
+#: ./src/pyams_scheduler/zmi/url.py:77 ./src/pyams_scheduler/zmi/task.py:104
+#: ./src/pyams_scheduler/zmi/task.py:132 ./src/pyams_scheduler/zmi/task.py:213
+#: ./src/pyams_scheduler/zmi/task.py:289 ./src/pyams_scheduler/zmi/ssh.py:77
+#: ./src/pyams_scheduler/zmi/zodb.py:77
 #, python-format
 msgid "Scheduler task: {0}"
 msgstr ""
 
 #: ./src/pyams_scheduler/zmi/task.py:63
-#: ./src/pyams_scheduler/zmi/scheduler.py:81
-#: ./src/pyams_scheduler/zmi/scheduler.py:225
+#: ./src/pyams_scheduler/zmi/scheduler.py:82
+#: ./src/pyams_scheduler/zmi/scheduler.py:243
 msgid "Tasks scheduler"
 msgstr ""
 
@@ -60,19 +60,19 @@
 msgstr ""
 
 #: ./src/pyams_scheduler/zmi/task.py:134
-#: ./src/pyams_scheduler/zmi/scheduler.py:134
+#: ./src/pyams_scheduler/zmi/scheduler.py:143
 msgid "Schedule task"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/task.py:204
+#: ./src/pyams_scheduler/zmi/task.py:216
 msgid "Execute task"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/task.py:251
+#: ./src/pyams_scheduler/zmi/task.py:263
 msgid "Executing and debugging task"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/task.py:252
+#: ./src/pyams_scheduler/zmi/task.py:264
 msgid ""
 "You can choose to execute the task in 'normal' mode or in 'debug' mode.\n"
 "\n"
@@ -84,122 +84,121 @@
 "**WARNING**: in both mode, the task will be executed even if it's disabled in it's scheduling settings!"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/task.py:279 ./src/pyams_scheduler/zmi/task.py:295
+#: ./src/pyams_scheduler/zmi/task.py:291 ./src/pyams_scheduler/zmi/task.py:307
 #: ./src/pyams_scheduler/interfaces/__init__.py:131
-#: ./src/pyams_scheduler/interfaces/__init__.py:204
+#: ./src/pyams_scheduler/interfaces/__init__.py:208
 msgid "Task history"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/task.py:318
+#: ./src/pyams_scheduler/zmi/task.py:330
 msgid "Date"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/task.py:189
+#: ./src/pyams_scheduler/zmi/task.py:201
 msgid "Close"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/task.py:190
+#: ./src/pyams_scheduler/zmi/task.py:202
 msgid "Run in debug mode"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/task.py:191
+#: ./src/pyams_scheduler/zmi/task.py:203
 msgid "Run in normal mode"
 msgstr ""
 
 #: ./src/pyams_scheduler/zmi/task.py:94
-msgid "Specified prefix is already used!"
+msgid "Specified task name is already used!"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/task.py:236
+#: ./src/pyams_scheduler/zmi/task.py:248
 msgid "Task scheduled in normal mode will start in 5 seconds..."
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/task.py:242
+#: ./src/pyams_scheduler/zmi/task.py:254
 msgid "Task run in debug mode. Please check your console..."
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/scheduler.py:90
-#: ./src/pyams_scheduler/zmi/scheduler.py:226
+#: ./src/pyams_scheduler/zmi/scheduler.py:91
 msgid "Scheduled tasks"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/scheduler.py:110
+#: ./src/pyams_scheduler/zmi/scheduler.py:119
+msgid "Task settings"
+msgstr ""
+
+#: ./src/pyams_scheduler/zmi/scheduler.py:156
 msgid "Name"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/scheduler.py:120
-msgid "Task settings"
-msgstr ""
-
-#: ./src/pyams_scheduler/zmi/scheduler.py:148
+#: ./src/pyams_scheduler/zmi/scheduler.py:166
 msgid "Run task"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/scheduler.py:162
+#: ./src/pyams_scheduler/zmi/scheduler.py:180
 msgid "Task run history"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/scheduler.py:175
+#: ./src/pyams_scheduler/zmi/scheduler.py:193
 msgid "Delete task"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/scheduler.py:234
+#: ./src/pyams_scheduler/zmi/scheduler.py:251
 msgid "Properties..."
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/scheduler.py:251
+#: ./src/pyams_scheduler/zmi/scheduler.py:268
 msgid "Update tasks scheduler properties"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/scheduler.py:269
+#: ./src/pyams_scheduler/zmi/scheduler.py:286
 msgid "Active jobs..."
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/scheduler.py:287
+#: ./src/pyams_scheduler/zmi/scheduler.py:304
 msgid "Display scheduler active jobs"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/scheduler.py:295
+#: ./src/pyams_scheduler/zmi/scheduler.py:312
 msgid "Scheduler jobs"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/scheduler.py:312
+#: ./src/pyams_scheduler/zmi/scheduler.py:329
 msgid "Job name"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/scheduler.py:323
+#: ./src/pyams_scheduler/zmi/scheduler.py:340
 msgid "ID"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/scheduler.py:334
+#: ./src/pyams_scheduler/zmi/scheduler.py:351
 msgid "Trigger"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/scheduler.py:345
+#: ./src/pyams_scheduler/zmi/scheduler.py:362
 msgid "Next run"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/scheduler.py:188
+#: ./src/pyams_scheduler/zmi/scheduler.py:206
 msgid "No provided object_name argument!"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/scheduler.py:192
+#: ./src/pyams_scheduler/zmi/scheduler.py:210
 msgid "Given task name doesn't exist!"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/ssh.py:45
+#: ./src/pyams_scheduler/zmi/ssh.py:46
 msgid "Add SSH command..."
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/ssh.py:56
+#: ./src/pyams_scheduler/zmi/ssh.py:57
 msgid "Add SSH command task"
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/zodb.py:45
+#: ./src/pyams_scheduler/zmi/zodb.py:46
 msgid "Add ZODB packing task..."
 msgstr ""
 
-#: ./src/pyams_scheduler/zmi/zodb.py:56
+#: ./src/pyams_scheduler/zmi/zodb.py:57
 msgid "Add ZODB packing task"
 msgstr ""
 
@@ -279,13 +278,12 @@
 msgid "Proxy server defined without proxy port!"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:104
-#: ./src/pyams_scheduler/interfaces/zodb.py:31
-msgid "ZEO connection name"
+#: ./src/pyams_scheduler/interfaces/__init__.py:103
+msgid "ZODB connection name"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:105
-msgid "Name of ZEO connection utility defining scheduler connection"
+#: ./src/pyams_scheduler/interfaces/__init__.py:104
+msgid "Name of ZODB defining scheduler connection"
 msgstr ""
 
 #: ./src/pyams_scheduler/interfaces/__init__.py:109
@@ -313,7 +311,7 @@
 msgstr ""
 
 #: ./src/pyams_scheduler/interfaces/__init__.py:130
-#: ./src/pyams_scheduler/interfaces/__init__.py:203
+#: ./src/pyams_scheduler/interfaces/__init__.py:207
 msgid "History"
 msgstr ""
 
@@ -395,141 +393,145 @@
 msgid "Number of execution reports to keep in history; enter 0 to remove limit"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:258
+#: ./src/pyams_scheduler/interfaces/__init__.py:203
+msgid "Settings view name"
+msgstr ""
+
+#: ./src/pyams_scheduler/interfaces/__init__.py:262
 msgid "Active task"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:259
+#: ./src/pyams_scheduler/interfaces/__init__.py:263
 msgid "You can disable a task by selecting 'No'"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:263
+#: ./src/pyams_scheduler/interfaces/__init__.py:267
 msgid "First execution date"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:264
+#: ./src/pyams_scheduler/interfaces/__init__.py:268
 msgid "Date from which scheduling should start"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:280
-#: ./src/pyams_scheduler/interfaces/__init__.py:354
+#: ./src/pyams_scheduler/interfaces/__init__.py:284
+#: ./src/pyams_scheduler/interfaces/__init__.py:358
 msgid "Last execution date"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:281
-#: ./src/pyams_scheduler/interfaces/__init__.py:355
-msgid "Date past which scheduling should end"
-msgstr ""
-
-#: ./src/pyams_scheduler/interfaces/__init__.py:284
-msgid "Years"
-msgstr ""
-
 #: ./src/pyams_scheduler/interfaces/__init__.py:285
-msgid "Years for which to schedule the job"
+#: ./src/pyams_scheduler/interfaces/__init__.py:359
+msgid "Date past which scheduling should end"
+msgstr ""
+
+#: ./src/pyams_scheduler/interfaces/__init__.py:288
+msgid "Years"
 msgstr ""
 
 #: ./src/pyams_scheduler/interfaces/__init__.py:289
+msgid "Years for which to schedule the job"
+msgstr ""
+
+#: ./src/pyams_scheduler/interfaces/__init__.py:293
 msgid "Months"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:290
+#: ./src/pyams_scheduler/interfaces/__init__.py:294
 msgid "Months (1-12) for which to schedule the job"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:294
+#: ./src/pyams_scheduler/interfaces/__init__.py:298
 msgid "Month days"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:295
+#: ./src/pyams_scheduler/interfaces/__init__.py:299
 msgid "Days (1-31) for which to schedule the job"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:299
+#: ./src/pyams_scheduler/interfaces/__init__.py:303
 msgid "Weeks"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:300
+#: ./src/pyams_scheduler/interfaces/__init__.py:304
 msgid "Year weeks (1-53) for which to schedule the job"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:304
+#: ./src/pyams_scheduler/interfaces/__init__.py:308
 msgid "Week days"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:305
-msgid "Week days (0-6, with 0 as monday) for which to schedule the job"
-msgstr ""
-
 #: ./src/pyams_scheduler/interfaces/__init__.py:309
+msgid "Week days (0-6, with 0 as monday) for which to schedule the job"
+msgstr ""
+
+#: ./src/pyams_scheduler/interfaces/__init__.py:313
 msgid "Hours"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:310
+#: ./src/pyams_scheduler/interfaces/__init__.py:314
 msgid "Hours (0-23) for which to schedule the job"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:314
+#: ./src/pyams_scheduler/interfaces/__init__.py:318
 msgid "Minutes"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:315
+#: ./src/pyams_scheduler/interfaces/__init__.py:319
 msgid "Minutes (0-59) for which to schedule the job"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:319
+#: ./src/pyams_scheduler/interfaces/__init__.py:323
 msgid "Seconds"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:320
+#: ./src/pyams_scheduler/interfaces/__init__.py:324
 msgid "Seconds (0-59) for which to schedule the job"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:337
+#: ./src/pyams_scheduler/interfaces/__init__.py:341
 msgid "Execution date"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:338
+#: ./src/pyams_scheduler/interfaces/__init__.py:342
 msgid "Date on which execution should start"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:358
+#: ./src/pyams_scheduler/interfaces/__init__.py:362
 msgid "Weeks interval"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:359
+#: ./src/pyams_scheduler/interfaces/__init__.py:363
 msgid "Number of weeks between executions"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:363
+#: ./src/pyams_scheduler/interfaces/__init__.py:367
 msgid "Days interval"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:364
-msgid "Number of days between executions"
-msgstr ""
-
 #: ./src/pyams_scheduler/interfaces/__init__.py:368
-msgid "Hours interval"
+msgid "Number of days between executions"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:369
-msgid "Number of hours between executions"
+#: ./src/pyams_scheduler/interfaces/__init__.py:372
+msgid "Hours interval"
 msgstr ""
 
 #: ./src/pyams_scheduler/interfaces/__init__.py:373
+msgid "Number of hours between executions"
+msgstr ""
+
+#: ./src/pyams_scheduler/interfaces/__init__.py:377
 msgid "Minutes interval"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:374
+#: ./src/pyams_scheduler/interfaces/__init__.py:378
 msgid "Number of minutes between executions"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:378
+#: ./src/pyams_scheduler/interfaces/__init__.py:382
 msgid "Seconds interval"
 msgstr ""
 
-#: ./src/pyams_scheduler/interfaces/__init__.py:379
+#: ./src/pyams_scheduler/interfaces/__init__.py:383
 msgid "Number of seconds between executions"
 msgstr ""
 
@@ -574,6 +576,10 @@
 "tasks"
 msgstr ""
 
+#: ./src/pyams_scheduler/interfaces/zodb.py:31
+msgid "ZEO connection name"
+msgstr ""
+
 #: ./src/pyams_scheduler/interfaces/zodb.py:32
 msgid "Name of ZEO connection utility pointing to packed database"
 msgstr ""