At 09:29 PM 7/11/00 +0100, Steve Alexander wrote:
I've inserted print statements into the _objectChanging() and _objectAdding() methods of DataManagers.DataManager. It seems that when I add a DataSkin-derived-ZClass, it gets added and also changed set in a single transaction, and only one of them gets reported to the trigger.
Hm. That's a bug, since if an object is changed and added, it should only get the *add* event, not the change event.
Strangely, the call to _objectChanging() comes before the call to _objectAdding().
This would explain why you only get a change event, since if add happens after change, it is ignored. I'm curious how the change event is getting called first, since... Oh. I'll bet I know what it is. It's probably that manage_afterAdd is being called later in the ObjectManager code than it used to be, and/or Zope is trying to set an _owner attribute on the newly added object. Crap. This is going to take some rethinking to find another way to trap the Zope "add" event. :(