[Grok-dev] Re: applyChanges and add forms

Philipp von Weitershausen philipp at weitershausen.de
Mon Apr 16 16:57:15 EDT 2007


Philipp von Weitershausen wrote:
>>>> We need to verify what happens with the applyChanges return value 
>>>> right now. We also need to study what triggers the ObjectModified 
>>>> event.
>>> Yes. Calling the applyChanges method currently sends the 
>>> ObjectModified event and it returns a boolean value which indicates 
>>> whether the object was changed at all.
>>
>> Do we want to do that in AddForm at all? AddForm after all creates the 
>> object and already (presumably) triggers an IObjectAdded event. Doing 
>> an IObjectModified event straight afterward would be doing things 
>> twice. Sounds like applyData in add forms want to do the real minimum 
>> to just set attributes based on the schema.
> 
> Yup.

I just realized that it would be useful to have applyData send an 
IObjectModifiedEvent all the time. Let's say you have the following add 
form action:

     @grok.action('Add entry')
     def add(self, **data):
         self.context['ellie'] = ellie = Mammoth()
         applyData(ellie, **data)

The first line of the method body would trigger an IObjectAddedEvent, 
causing the object to be added to a catalog index, for example. The 
second line would modify the object, but not send an appropriate event 
to update the index.

I think we want to send that event.


-- 
http://worldcookery.com -- Professional Zope documentation and training


More information about the Grok-dev mailing list