Re: [Zope-dev] zope.dublincore and zope.copypastemove not compatible?

2010-09-14 Thread Michael Howitz
Am 19.08.2010 um 15:43 schrieb Michael Howitz:
 Am 19.08.2010 um 11:56 schrieb Michael Howitz:
 Am 06.02.2010 um 17:43 schrieb Michael Howitz:
 Hi,
 
 I found something strange in metadata when copying a persistent object.
 
 My situation is the following:
 I have a container with some elements inside. I create a copy of this 
 container using
 
 zope.copypastemove.ObjectCopier(my_container).copyTo(my_container.__parent__)
 
 (Actually I use zope.copypastemove.interfaces.IObjectCopier(my_container) 
 but this calls the adapter mentioned above.)
 
 Side note: Is this the right way to copy an persistent object nowadays?
 
 This happens tho dublin core metadata then:
 As zope.dublincore.timeannotators.CreatedAnnotator is subscribed to 
 zope.lifecycleevent.IObjectCreatedEvent it gets called as the 
 ObjectCopiedEvent is a subclass of ObjectCreatedEvent. The copy of the 
 container gets a new creation date set in its metadata.
 
 But zope.copypastemove.dispatchToSublocations calls the subscribers for the 
 sublocations using 
 zope.component.subscribers((sub, event), None)
 
 So the zope.dublincore.timeannotators.CreatedAnnotator does not get called 
 as it is not registered for (object, event) but only for (event,).
 
 This leads to a strange situation: the metadata of the copied container get 
 updated but not the metadata of its contents.
 This behavior has not changed since version 3.4.0 which was about 2,5 years 
 ago.
 
 I think this is a long-standing bug and it should it be fixed in 
 zope.dublincore by registering the subscribers for (object, event)? 
 (Additionally or exclusively, I'm not sure.)
 
 Any thoughts?
 
 As there were no replies I this bug into launchpad: 
 https://bugs.launchpad.net/zope.copypastemove/+bug/620353
 
 I implemented a solution, see comment 
 https://bugs.launchpad.net/zope.copypastemove/+bug/620353/comments/1
 
 Could someone please review the solution before I merge it into trunk?
 Thanks in advance.

As there were no comments, I merged the changes into trunk and released
zope.dublincore 3.8.0 and zope.copypastemove 3.8.0 today.

Yours sincerely,
-- 
Michael Howitz · m...@gocept.com · software developer
gocept gmbh  co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 8 · fax +49 345 1229889 1
Zope and Plone consulting and development

___
Zope-Dev maillist  -  Zope-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] zope.dublincore and zope.copypastemove not compatible?

2010-08-19 Thread Michael Howitz
Am 06.02.2010 um 17:43 schrieb Michael Howitz:
 Hi,
 
 I found something strange in metadata when copying a persistent object.
 
 My situation is the following:
 I have a container with some elements inside. I create a copy of this 
 container using
 
 zope.copypastemove.ObjectCopier(my_container).copyTo(my_container.__parent__)
 
 (Actually I use zope.copypastemove.interfaces.IObjectCopier(my_container) but 
 this calls the adapter mentioned above.)
 
 Side note: Is this the right way to copy an persistent object nowadays?
 
 This happens tho dublin core metadata then:
 As zope.dublincore.timeannotators.CreatedAnnotator is subscribed to 
 zope.lifecycleevent.IObjectCreatedEvent it gets called as the 
 ObjectCopiedEvent is a subclass of ObjectCreatedEvent. The copy of the 
 container gets a new creation date set in its metadata.
 
 But zope.copypastemove.dispatchToSublocations calls the subscribers for the 
 sublocations using 
 zope.component.subscribers((sub, event), None)
 
 So the zope.dublincore.timeannotators.CreatedAnnotator does not get called as 
 it is not registered for (object, event) but only for (event,).
 
 This leads to a strange situation: the metadata of the copied container get 
 updated but not the metadata of its contents.
 This behavior has not changed since version 3.4.0 which was about 2,5 years 
 ago.
 
 I think this is a long-standing bug and it should it be fixed in 
 zope.dublincore by registering the subscribers for (object, event)? 
 (Additionally or exclusively, I'm not sure.)
 
 Any thoughts?

As there were no replies I this bug into launchpad: 
https://bugs.launchpad.net/zope.copypastemove/+bug/620353

Yours sincerely,
-- 
Michael Howitz · m...@gocept.com · software developer
gocept gmbh  co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 8 · fax +49 345 1229889 1
Zope and Plone consulting and development

___
Zope-Dev maillist  -  Zope-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] zope.dublincore and zope.copypastemove not compatible?

2010-08-19 Thread Michael Howitz
Am 19.08.2010 um 11:56 schrieb Michael Howitz:
 Am 06.02.2010 um 17:43 schrieb Michael Howitz:
 Hi,
 
 I found something strange in metadata when copying a persistent object.
 
 My situation is the following:
 I have a container with some elements inside. I create a copy of this 
 container using
 
 zope.copypastemove.ObjectCopier(my_container).copyTo(my_container.__parent__)
 
 (Actually I use zope.copypastemove.interfaces.IObjectCopier(my_container) 
 but this calls the adapter mentioned above.)
 
 Side note: Is this the right way to copy an persistent object nowadays?
 
 This happens tho dublin core metadata then:
 As zope.dublincore.timeannotators.CreatedAnnotator is subscribed to 
 zope.lifecycleevent.IObjectCreatedEvent it gets called as the 
 ObjectCopiedEvent is a subclass of ObjectCreatedEvent. The copy of the 
 container gets a new creation date set in its metadata.
 
 But zope.copypastemove.dispatchToSublocations calls the subscribers for the 
 sublocations using 
 zope.component.subscribers((sub, event), None)
 
 So the zope.dublincore.timeannotators.CreatedAnnotator does not get called 
 as it is not registered for (object, event) but only for (event,).
 
 This leads to a strange situation: the metadata of the copied container get 
 updated but not the metadata of its contents.
 This behavior has not changed since version 3.4.0 which was about 2,5 years 
 ago.
 
 I think this is a long-standing bug and it should it be fixed in 
 zope.dublincore by registering the subscribers for (object, event)? 
 (Additionally or exclusively, I'm not sure.)
 
 Any thoughts?
 
 As there were no replies I this bug into launchpad: 
 https://bugs.launchpad.net/zope.copypastemove/+bug/620353

I implemented a solution, see comment 
https://bugs.launchpad.net/zope.copypastemove/+bug/620353/comments/1

Could someone please review the solution before I merge it into trunk?
Thanks in advance.


Yours sincerely,
-- 
Michael Howitz · m...@gocept.com · software developer
gocept gmbh  co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 8 · fax +49 345 1229889 1
Zope and Plone consulting and development

___
Zope-Dev maillist  -  Zope-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )