diff options
| author | Barry Warsaw | 2012-07-02 16:56:35 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2012-07-02 16:56:35 -0400 |
| commit | bbbf437a64e2bcf2ac72c329f0faf53ed91f3432 (patch) | |
| tree | 3f6a9e84a67b003b65888a0ec2f7bb3397b4e26a /src/mailman/core | |
| parent | 8a84c3602094517d8690b6c7ab7e25c1570d59b7 (diff) | |
| download | mailman-bbbf437a64e2bcf2ac72c329f0faf53ed91f3432.tar.gz mailman-bbbf437a64e2bcf2ac72c329f0faf53ed91f3432.tar.zst mailman-bbbf437a64e2bcf2ac72c329f0faf53ed91f3432.zip | |
Diffstat (limited to 'src/mailman/core')
| -rw-r--r-- | src/mailman/core/i18n.py | 8 | ||||
| -rw-r--r-- | src/mailman/core/initialize.py | 6 | ||||
| -rw-r--r-- | src/mailman/core/switchboard.py | 30 |
3 files changed, 27 insertions, 17 deletions
diff --git a/src/mailman/core/i18n.py b/src/mailman/core/i18n.py index 2d7c382c7..73453ae65 100644 --- a/src/mailman/core/i18n.py +++ b/src/mailman/core/i18n.py @@ -31,7 +31,7 @@ import time from flufl.i18n import PackageStrategy, registry import mailman.messages - +from mailman.interfaces.configuration import ConfigurationUpdatedEvent _ = None @@ -113,3 +113,9 @@ def ctime(date): wday = daysofweek[wday] mon = months[mon] return _('$wday $mon $day $hh:$mm:$ss $tzname $year') + + + +def handle_ConfigurationUpdatedEvent(event): + if isinstance(event, ConfigurationUpdatedEvent): + _.default = event.config.mailman.default_language diff --git a/src/mailman/core/initialize.py b/src/mailman/core/initialize.py index 255e22ed9..f4659e638 100644 --- a/src/mailman/core/initialize.py +++ b/src/mailman/core/initialize.py @@ -112,8 +112,8 @@ def initialize_1(config_path=None): os.umask(007) # Initialize configuration event subscribers. This must be done before # setting up the configuration system. - from mailman.utilities.passwords import initialize as initialize_passwords - initialize_passwords() + from mailman.app.events import initialize as initialize_events + initialize_events() # config_path will be set if the command line argument -C is given. That # case overrides all others. When not given on the command line, the # configuration file is searched for in the file system. @@ -156,7 +156,6 @@ def initialize_2(debug=False, propagate_logs=None): # Initialize the rules and chains. Do the imports here so as to avoid # circular imports. from mailman.app.commands import initialize as initialize_commands - from mailman.app.events import initialize as initialize_events from mailman.core.chains import initialize as initialize_chains from mailman.core.pipelines import initialize as initialize_pipelines from mailman.core.rules import initialize as initialize_rules @@ -165,7 +164,6 @@ def initialize_2(debug=False, propagate_logs=None): initialize_chains() initialize_pipelines() initialize_commands() - initialize_events() def initialize_3(): diff --git a/src/mailman/core/switchboard.py b/src/mailman/core/switchboard.py index c65b92fac..1f16cb5fb 100644 --- a/src/mailman/core/switchboard.py +++ b/src/mailman/core/switchboard.py @@ -29,6 +29,7 @@ from __future__ import absolute_import, print_function, unicode_literals __metaclass__ = type __all__ = [ 'Switchboard', + 'handle_ConfigurationUpdatedEvent', ] @@ -44,6 +45,7 @@ from zope.interface import implementer from mailman.config import config from mailman.email.message import Message +from mailman.interfaces.configuration import ConfigurationUpdatedEvent from mailman.interfaces.switchboard import ISwitchboard from mailman.utilities.filesystem import makedirs from mailman.utilities.string import expand @@ -67,18 +69,6 @@ elog = logging.getLogger('mailman.error') class Switchboard: """See `ISwitchboard`.""" - @staticmethod - def initialize(): - """Initialize the global switchboards for input/output.""" - for conf in config.runner_configs: - name = conf.name.split('.')[-1] - assert name not in config.switchboards, ( - 'Duplicate runner name: {0}'.format(name)) - substitutions = config.paths - substitutions['name'] = name - path = expand(conf.path, substitutions) - config.switchboards[name] = Switchboard(name, path) - def __init__(self, name, queue_directory, slice=None, numslices=1, recover=False): """Create a switchboard object. @@ -264,3 +254,19 @@ class Switchboard: self.finish(filebase, preserve=True) else: os.rename(src, dst) + + + +def handle_ConfigurationUpdatedEvent(event): + """Initialize the global switchboards for input/output.""" + if not isinstance(event, ConfigurationUpdatedEvent): + return + config = event.config + for conf in config.runner_configs: + name = conf.name.split('.')[-1] + assert name not in config.switchboards, ( + 'Duplicate runner name: {0}'.format(name)) + substitutions = config.paths + substitutions['name'] = name + path = expand(conf.path, substitutions) + config.switchboards[name] = Switchboard(name, path) |
