[Product-Developers] IObjectModifiedEvent, object modified or added?
imran.azad at bradfordhospitals.nhs.uk
Thu Jul 28 20:30:06 UTC 2011
Thanks David, much appreciated.
From: "David Glick-3 [via Plone]" <ml-node+6631229-1978482888-347795 at n2.nabble.com>
To: Imran Azad <Imran.Azad at bradfordhospitals.nhs.uk>
Sent: 28/07/2011 21:23:20
Subject: Re: IObjectModifiedEvent, object modified or added?
On 7/28/11 12:54 PM, Gilles Lenfant wrote:
> Le 28 juil. 2011 à 16:15, imran.azad a écrit :
>> How can I workout if an object has been 'modified' or whether it's a new
>> object within the IObjectModifiedEvent event? The issue is that
>> IObjectModifiedEvent is trigged even if an object is added. I need the code
>> below to execute only when an object is 'modified:
> You could mark the creation in the request. I know this seems somehow overkill but, assuming the IObjectCreatedEvent comes first...
> @grok.subscribe(IPerson, IObjectCreatedEvent)
> def markCreationOnly(person, event):
> # Other stuffs ?
> request = person.REQUEST
> request.set('__created_person__', person.getPhysicalPath())
>> @grok.subscribe(IPerson, IObjectModifiedEvent)
>> def rename(person, event):
> request = person.REQUEST
> created = request.get('__created_person__', False)
> if created and person.getPhysicalPath() == created:
> # Object created and modified
>> id = person.getId()
>> parent = person.aq_parent
>> parent.manage_renameObject(id, baseNormalize(person.title))
Another possible approach would be to check if the item has a non-None
_p_oid attribute. That should only be set if the object has been
committed to the ZODB. (But test and make sure it works for your
case...there may be other scenarios like if savepoints are used.)
davidglick at groundwire.org
Online tools and strategies for the environmental movement.
Sign up for our newsletter: http://www.groundwire.org/email-capture
Product-Developers mailing list
Product-Developers at lists.plone.org
If you reply to this email, your message will be added to the discussion below:
To unsubscribe from IObjectModifiedEvent, object modified or added?, visit http://plone.293351.n2.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=6630019&code=aW1yYW4uYXphZEBicmFkZm9yZGhvc3BpdGFscy5uaHMudWt8NjYzMDAxOXw1MzM4MDY1MjU=
Your Hospital needs YOU! We need you to register as a Public, Patient or Staff member and help shape the future of your healthcare. Call 0800 280 2581 to register by phone or you can email bradfordhospitals at capitaregistrars.com and ask to be registered as a new member. For more information about our hospitals and Foundation Trust Membership please visit www.bradfordhospitals.nhs.uk
This message is confidential. It may also contain privileged information. The contents of this e-mail and any attachments are intended for the named addressee only. Unless you are the named addressee or authorised to receive the e-mail of the named addressee you may not disclose, use or copy the contents of the e-mail. If you are not the person for whom the message was intended, please notify the sender immediately at Bradford Teaching Hospitals NHS Foundation Trust and delete the material from your computer. You must not use the message for any other purpose, nor disclose its contents to any person other than the intended recipient. Bradford Teaching Hospitals NHS Foundation Trust does not accept responsibility for this message and any views or opinions contained in this e-mail are solely those of the author unless expressly stated otherwise.
View this message in context: http://plone.293351.n2.nabble.com/IObjectModifiedEvent-object-modified-or-added-tp6630019p6631255.html
Sent from the Product Developers mailing list archive at Nabble.com.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Product-Developers