cybertools/composer/rule
2019-04-26 17:42:10 +02:00
..
__init__.py initial set up for new composer.rule package 2007-10-17 18:18:06 +00:00
base.py view for registrations listing for feedback message; improvements of registration forms 2007-11-14 09:06:27 +00:00
configure.zcml initial set up for new composer.rule package 2007-10-17 18:18:06 +00:00
instance.py view for registrations listing for feedback message; improvements of registration forms 2007-11-14 09:06:27 +00:00
interfaces.py view for registrations listing for feedback message; improvements of registration forms 2007-11-14 09:06:27 +00:00
mail.py more on checkout rule handling, including browser redirect 2007-11-20 10:54:17 +00:00
message.py Sending feedback message via rule manager OK 2007-11-11 10:58:55 +00:00
README.txt view for registrations listing for feedback message; improvements of registration forms 2007-11-14 09:06:27 +00:00
tests.py fix tests/doctests according to current ZTK and BlueBream versions 2019-04-26 17:42:10 +02:00
web.py add URL parameter for clearing client name 2009-06-20 11:14:23 +00:00

===============================
Rule-based Execution of Actions
===============================

  ($Id$)

  >>> from zope import component
  >>> from cybertools.composer.rule.base import RuleManager, Rule, Action
  >>> from cybertools.composer.rule.base import EventType, Event

  >>> from cybertools.composer.rule.instance import RuleInstance
  >>> from cybertools.composer.rule.interfaces import IRuleInstance
  >>> component.provideAdapter(RuleInstance, provides=IRuleInstance)
  >>> from cybertools.composer.rule.base import ActionHandler
  >>> component.provideAdapter(ActionHandler, name='message')
  >>> component.provideAdapter(ActionHandler, name='sendmail')

  >>> manager = RuleManager()

  >>> loginEvent = EventType('login')
  >>> checkoutEvent = EventType('service.checkout')

  >>> checkoutRule = Rule('regcheckoutmail', manager=manager)
  >>> checkoutRule.events.append(checkoutEvent)
  >>> checkoutRule.actions.append(Action('message',
  ...                   parameters = dict(messageName='confirmation_mail')))
  >>> checkoutRule.actions.append(Action('sendmail'))
  >>> manager.addRule(checkoutRule)

  >>> manager.handleEvent(Event(loginEvent))
  []

  >>> from cybertools.composer.schema.client import Client
  >>> client = Client()

  >>> manager.handleEvent(Event(checkoutEvent, client))
  [{'request': None}]