On Friday 19 October 2001 04:29 pm, Laurie Nason allegedly wrote:
OK guys - here's the problem.... I have a number of ZClasses, each one has a title property that is actually a function and pulls information from other properties of the ZClass. I want to use this property to sort my tree object. So being the python genius that I am not - I have created a python script to return the branches in the correct order sorted by title.
# This is the code that returns objects for the tree view
con=context return_object=[]
for obj in con.objectValues(['Folder','Group', 'Project', 'Micrograph', 'Microscopy', 'Scan', 'Purification', 'Aliquot', 'Freezing', 'Progress', 'Publication', 'Reference', 'Reconstruction', 'Structure', 'CCD']): return_object.append(obj)
return_object.sort(lambda a,b:a.title<b.title) return return_object
However, this code does not evaluate the title - but simply returns the dtml-if statement and sorts on that.... not what I want!
Any ideas?
Laurie
Try: return_object.sort(lambda a,b:a.title(a,context.REQUEST)<b.title(b,context.REQUEST)) or possibly just return_object.sort(lambda a,b:a.title(a)<b.title(b)) depending on what environment title expects. I suspect title is a DTML method from what you decribe. This whole thing could be simplified by making title a Pyhon script. Calling DTML directly from Python is a bit weird... If I am wrong and title already is a Py script, the use: return_object.sort(lambda a,b:a.title()<b.title()) At any rate the key is the (), which tells Python to call the bugger. hth, /---------------------------------------------------\ Casey Duncan, Sr. Web Developer National Legal Aid and Defender Association c.duncan@nlada.org \---------------------------------------------------/