[Zope] sorting objects in python
Christopher N. Deckard
chris@globalfoo.net
Wed, 20 Nov 2002 22:40:30 -0500
On Wed, 20 Nov 2002 17:38:26 -0700, David Bear spoke forth:
> I have a script that uses getId to get all structured text
> documents in a folder. Each of those documents has an added
> property called 'priority' which is a string type. The value of
> 'priority' is is used to impose a sort order on the documents.
> However, I can't figure out how to sort the objects using the the
> sort method of lists. Any recommendations?
# If the object meta-type is 'ZWiki Page' (I forget for sure)
documents = container.objectValues('ZWiki Page')
documents.sort(lambda a, b: cmp(a.getProperty('priority'),
b.getProperty('priority')))
return documents
That should do it for ya. But let me tell you, if you've got more
than a couple hundred, you should put them in a ZCatalog and use the
search features of the catalog to give you the results. If that
were the case, create an index for 'priority', catalog all your
ZWiki Pages, and then do:
catalog = container.catalog # Or wherever it is
query = {}
query['sort_on'] = 'priority'
documents = catalog.searchResults(query)
return documents
Hope that helps. :-)
-Chris