diff --git a/composer/message/README.txt b/composer/message/README.txt index c91b933..6805bf4 100644 --- a/composer/message/README.txt +++ b/composer/message/README.txt @@ -9,21 +9,16 @@ Message Management >>> manager = MessageManager() - >>> manager.messages.append(Message('feedback_html', manager=manager)) - >>> manager.messages.append(Message('feedback_text', manager=manager)) - >>> manager.messages.append(Message('footer', manager=manager)) - >>> messageText = '''Dear $person.firstname $person.lastname, ... You have been registered for the following $services. ... $@@list_registrations ... $footer ... ''' - >>> manager.messages['feedback_text'].text = messageText - >>> manager.messages['footer'].text = 'Best regards, $sender' - - >>> manager.messages.append(Message('sender', manager=manager, text='Jack')) - >>> manager.messages.append(Message('services', manager=manager, text='events')) + >>> manager.addMessage('feedback_text', messageText) + >>> manager.addMessage('footer', 'Best regards, $sender') + >>> manager.addMessage('sender', 'Jack') + >>> manager.addMessage('services', 'events') Message interpolation --------------------- diff --git a/composer/rule/README.txt b/composer/rule/README.txt index 0c54bf0..5b39ff9 100644 --- a/composer/rule/README.txt +++ b/composer/rule/README.txt @@ -28,9 +28,10 @@ Rule-based Execution of Actions >>> manager.addRule(checkoutRule) >>> manager.handleEvent(Event(loginEvent)) + [] >>> from cybertools.composer.schema.client import Client >>> client = Client() >>> manager.handleEvent(Event(checkoutEvent, client)) - + [{}] diff --git a/composer/rule/message.py b/composer/rule/message.py new file mode 100644 index 0000000..af391d7 --- /dev/null +++ b/composer/rule/message.py @@ -0,0 +1,47 @@ +# +# Copyright (c) 2007 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 +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program 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 this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +""" +Action handler for providing messages. + +$Id$ +""" + +from zope.interface import implements + +from cybertools.composer.message.interfaces import IMessageManager +from cybertools.composer.message.instance import MessageInstance +from cybertools.composer.rule.base import ActionHandler + + +class MessageActionHandler(ActionHandler): + + def __call__(self, data, params={}): + messageName = params.get('messageName') + if messageName is None: + raise ValueError('No message name given.') + rule = self.context.template + client = self.context.context + manager = IMessageManager(client.manager) + message = manager.messages.get(messageName) + if message is None: + raise ValueError('Message %s does not exist.' % messageName) + #client = IClient(self.context) + mi = MessageInstance(client, message) + #mi.template = message + return mi.applyTemplate(data)