[Zope] Re: Automatically adding properties (keywords) to folders

Tres Seaver tseaver at palladion.com
Thu Apr 20 13:07:44 EDT 2006


-----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 at 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-----



More information about the Zope mailing list