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)