[Zope3-Users] Re: ObjectModifiedEvent but not
ContainerModifiedEvent
Jeff Shell
eucci.group at gmail.com
Fri Aug 17 22:03:08 EDT 2007
On Aug 17, 2007, at 5:29 PM, Chris Withers <chris at simplistix.co.uk>
wrote:
> Martin Aspeli wrote:
>> def handler(event):
>> if IContainerModifiedEvent.providedBy(event):
>> return
>
>
> ...which is pretty inefficient.
>
> All the subscriber lookup, etc, has to happen to get this far.
>
> There must be a better way..
Well,
a container is an object.
It's being modified by the sake of its content changing.
So it makes sense that a container modified event is a specialized
extension of object modified.
Better way? The only better way, really, would be doing a re-dispatch.
Or fire off your own event when you modify other properties on a
container.
Or kick all of the code that sends modified events so that they send
along descriptions of what has changed. Sometimes I want to respond
only when a Dublin core element has changed - ie, to clear a cache. I
ended up writing a replacement for formlib's applyChanges so that it
not only returns a true/false value if changes where made, but also a
sequence of Modified descriptions for each changed field. Then when
these are included with the modified event, I can do further filtering
within my code to see what exactly changed.
More information about the Zope3-users
mailing list