work in progress: rule handling - message handling basically working
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@2160 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
		
							parent
							
								
									985fcef56d
								
							
						
					
					
						commit
						fba622c294
					
				
					 3 changed files with 53 additions and 10 deletions
				
			
		|  | @ -9,21 +9,16 @@ Message Management | ||||||
| 
 | 
 | ||||||
|   >>> manager = MessageManager() |   >>> 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, |   >>> messageText = '''Dear $person.firstname $person.lastname, | ||||||
|   ... You have been registered for the following $services. |   ... You have been registered for the following $services. | ||||||
|   ... $@@list_registrations |   ... $@@list_registrations | ||||||
|   ... $footer |   ... $footer | ||||||
|   ... ''' |   ... ''' | ||||||
| 
 | 
 | ||||||
|   >>> manager.messages['feedback_text'].text = messageText |   >>> manager.addMessage('feedback_text', messageText) | ||||||
|   >>> manager.messages['footer'].text = 'Best regards, $sender' |   >>> manager.addMessage('footer', 'Best regards, $sender') | ||||||
| 
 |   >>> manager.addMessage('sender', 'Jack') | ||||||
|   >>> manager.messages.append(Message('sender', manager=manager, text='Jack')) |   >>> manager.addMessage('services', 'events') | ||||||
|   >>> manager.messages.append(Message('services', manager=manager, text='events')) |  | ||||||
| 
 | 
 | ||||||
| Message interpolation | Message interpolation | ||||||
| --------------------- | --------------------- | ||||||
|  |  | ||||||
|  | @ -28,9 +28,10 @@ Rule-based Execution of Actions | ||||||
|   >>> manager.addRule(checkoutRule) |   >>> manager.addRule(checkoutRule) | ||||||
| 
 | 
 | ||||||
|   >>> manager.handleEvent(Event(loginEvent)) |   >>> manager.handleEvent(Event(loginEvent)) | ||||||
|  |   [] | ||||||
| 
 | 
 | ||||||
|   >>> from cybertools.composer.schema.client import Client |   >>> from cybertools.composer.schema.client import Client | ||||||
|   >>> client = Client() |   >>> client = Client() | ||||||
| 
 | 
 | ||||||
|   >>> manager.handleEvent(Event(checkoutEvent, client)) |   >>> manager.handleEvent(Event(checkoutEvent, client)) | ||||||
| 
 |   [{}] | ||||||
|  |  | ||||||
							
								
								
									
										47
									
								
								composer/rule/message.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								composer/rule/message.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -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) | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 helmutm
						helmutm