diff options
| author | J08nY | 2017-07-04 22:06:07 +0200 |
|---|---|---|
| committer | J08nY | 2017-08-30 13:18:38 +0200 |
| commit | 34bf9690fd808d1ece8f6c2d674605fc25018894 (patch) | |
| tree | b0b2b7d2ca731c9a6c31dee944835749082feefb | |
| parent | 53ce68a20c349749e4a8c70e2ec254351b5d2477 (diff) | |
| download | mailman-34bf9690fd808d1ece8f6c2d674605fc25018894.tar.gz mailman-34bf9690fd808d1ece8f6c2d674605fc25018894.tar.zst mailman-34bf9690fd808d1ece8f6c2d674605fc25018894.zip | |
| -rw-r--r-- | src/mailman/config/config.py | 1 | ||||
| -rw-r--r-- | src/mailman/core/initialize.py | 2 | ||||
| -rw-r--r-- | src/mailman/core/workflows.py | 34 |
3 files changed, 37 insertions, 0 deletions
diff --git a/src/mailman/config/config.py b/src/mailman/config/config.py index c004d6e63..838795276 100644 --- a/src/mailman/config/config.py +++ b/src/mailman/config/config.py @@ -90,6 +90,7 @@ class Configuration: self.pipelines = {} self.commands = {} self.plugins = {} + self.workflows = {} self.password_context = None self.db = None diff --git a/src/mailman/core/initialize.py b/src/mailman/core/initialize.py index 5696cc3bb..b1efa6e64 100644 --- a/src/mailman/core/initialize.py +++ b/src/mailman/core/initialize.py @@ -174,6 +174,7 @@ def initialize_2(debug=False, propagate_logs=None, testing=False): config.db = getUtility(IDatabaseFactory, utility_name).create() # Initialize the rules and chains. Do the imports here so as to avoid # circular imports. + from mailman.core.workflows import initialize as initialize_workflows from mailman.app.commands import initialize as initialize_commands from mailman.core.chains import initialize as initialize_chains from mailman.core.pipelines import initialize as initialize_pipelines @@ -183,6 +184,7 @@ def initialize_2(debug=False, propagate_logs=None, testing=False): initialize_chains() initialize_pipelines() initialize_commands() + initialize_workflows() @public diff --git a/src/mailman/core/workflows.py b/src/mailman/core/workflows.py new file mode 100644 index 000000000..b16da7df9 --- /dev/null +++ b/src/mailman/core/workflows.py @@ -0,0 +1,34 @@ +# Copyright (C) 2007-2017 by the Free Software Foundation, Inc. +# +# This file is part of GNU Mailman. +# +# GNU Mailman is free software: you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free +# Software Foundation, either version 3 of the License, or (at your option) +# any later version. +# +# GNU Mailman is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# +# You should have received a copy of the GNU General Public License along with +# GNU Mailman. If not, see <http://www.gnu.org/licenses/>. + +"""""" + +from mailman.config import config +from mailman.interfaces.workflows import IWorkflow +from mailman.utilities.modules import find_components +from public import public + + +@public +def initialize(): + """Find and register all workflows in all plugins.""" + for workflow in find_components('mailman.workflows', IWorkflow): + assert workflow.name not in config.workflows, ( + 'Duplicate key "{}" found in {}: "{}"'.format( + workflow.name, config.workflows, + config.workflows[workflow.name])) + config.workflows[workflow.name] = workflow |
