I have some object, let's say MyObject. The object should trigger some action,
based on some decision based on some conditions.
There are possible a few different kinds of decisions, so I have done Decider
helper object, and a few subclasses - because each kind of decision requires
different params. Accompanying interfaces are below:
"Returns True if need to trigger action".
inactivity_period = Int(title=u"Inactivity Period", default=3)
due_date = DateTime(title=u"Due Date")
I have decider Object field in IMyObject schema (MyObject delegates the
decision to self.decider.needTriggerAction method)
decider = Object(schema=IDecider, title=u"Condition")
*First question*: is this design (delegation to subobject implementing specific
interface) reasonable, or in Zope I should do that other way?
*Second question*: Can object implementing IDueDateDecider (inherited from
IDecider) be used in decider field (which has specified schema=IDecider)? How
to ensure that proper schema (i.e IDueDateDecider instead of IDecider) will be
displayed in ObjectWidget?
*Third question*: What way would you suggest to allow web user dynamically
'switch' decider object in MyObject (i.e change a kind of decision, for example
from IInactivityDecider to IDueDateDecider) - preferably using formlib-based
Zope3-users mailing list