From e2a19d5ffc85852457f284c13c47932ffa0eeede Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Sun, 24 Mar 2013 17:13:13 +0100 Subject: [PATCH] allow specification of message factory for states definition in order to provide package-specific translation domains --- stateful/base.py | 5 ++--- stateful/definition.py | 4 ++++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/stateful/base.py b/stateful/base.py index 9f41686..5083ae6 100644 --- a/stateful/base.py +++ b/stateful/base.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2009 Helmut Merz helmutm@cy55.de +# Copyright (c) 2013 Helmut Merz helmutm@cy55.de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,8 +18,6 @@ """ Basic implementations for stateful objects and adapters. - -$Id$ """ from persistent.interfaces import IPersistent @@ -99,6 +97,7 @@ class StatefulAdapter(Stateful): def __init__(self, context): self.context = context + self.msgFactory = self.getStatesDefinition().msgFactory def getState(self): statesAttr = getattr(self.context, self.statesAttributeName, {}) diff --git a/stateful/definition.py b/stateful/definition.py index 1c3d8c6..4f773c5 100644 --- a/stateful/definition.py +++ b/stateful/definition.py @@ -76,11 +76,13 @@ class StatesDefinition(object): implements(IStatesDefinition) initialState = 'started' + msgFactory = None def __init__(self, name, *details, **kw): self.name = self.__name__ = name self.states = Jeep() self.transitions = Jeep() + msgFactory = kw.get('msgFactory') for d in details: if ITransition.providedBy(d): self.transitions.append(d) @@ -89,6 +91,8 @@ class StatesDefinition(object): else: raise TypeError('Only states or transitions are allowed here, ' 'got %s instead.' % repr(d)) + if msgFactory: + d.title = msgFactory(d.title) for k, v in kw.items(): setattr(self, k, v)