Automatically adding properties (keywords) to folders
I'd like to set up a folder in Zope with the property that when an object is put into it, the object has a keyword added to it automatically (and when the object is moved out of the folder, the keyword is removed). If you could do this, you would have a nice way to maintain a collection of such folders and have their contents appear elsewhere in a collection of Plone Smart Folders (using keyword criteria). Can anyone tell me how I should best go about doing this? I can imagine writing some python to run once in a while, find all the contents of the folder, add the keywords, etc. But that's far from being an ideal solution. Any pointers would be much appreciated. Regards, Terry
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Terry Jones wrote:
I'd like to set up a folder in Zope with the property that when an object is put into it, the object has a keyword added to it automatically (and when the object is moved out of the folder, the keyword is removed).
If you could do this, you would have a nice way to maintain a collection of such folders and have their contents appear elsewhere in a collection of Plone Smart Folders (using keyword criteria).
Can anyone tell me how I should best go about doing this?
I can imagine writing some python to run once in a while, find all the contents of the folder, add the keywords, etc. But that's far from being an ideal solution.
Any pointers would be much appreciated.
The old way to do that we be to derive your own folder class and override '_setObject' / '_delObject' to add your semantics. The new way (for Zope >= 2.9) would be to register a subscriber for the "container" events which are published automatically. Something like (untested):: def update_keywords(event): keyword = getattr(event.newparent, 'keyword', None) event.object.keyword = None event.object.reindexObject() and then in ZCML:: <subscriber for="zope.app.event.objectevent.ObjectEvent" factory="Products.yourproduct.events.update_keywords" Tres. - -- =================================================================== Tres Seaver +1 202-558-7113 tseaver@palladion.com Palladion Software "Excellence by Design" http://palladion.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFER7/g+gerLs4ltQ4RAjcHAJ9WqoFcbrNIC9h3M5jYEZ8Bmq2jMQCeMjSh 7zE2AI2+rNc39s3bhOMsb4E= =yYJw -----END PGP SIGNATURE-----
Terry Jones wrote at 2006-4-20 17:30 +0200:
I'd like to set up a folder in Zope with the property that when an object is put into it, the object has a keyword added to it automatically (and when the object is moved out of the folder, the keyword is removed).
Thus, you want to customize the folder's "_setObject" and "_delObject". Define your own "Folder" class deriving from Zope's standard 'Folder' and reimplement "_setObject" and "_getObject" the way you like. -- Dieter
participants (3)
-
Dieter Maurer -
Terry Jones -
Tres Seaver