On Fri, May 14, 2004 at 11:54:13AM -0500, Laura McCord wrote:
I am starting out with this in my script
RESPONSE = context.REQUEST.RESPONSE success = 0 for id in context.objectIds(): success = success + 1 return success
All this does is count the contents in the folder. However, how do you specify what content to count. For instance, I do not want this script to count itself in the folder contents but I want it to include everything else. Any suggestions?
note that ObjectManager.objectIds() takes an optional parameter that is a list of meta types. Stuff like this is in the API reference: http://www.zope.org/Documentation/Books/ZopeBook/2_6Edition/AppendixB.stx ... not easy to read, but well worth spending some time with. So to count e.g. only DTML and ZPT objects: ... for id in context.objectIds(['DTML Document', 'DTML Method', 'Page Template']): success += 1 ... Another option is to get a complete list and filter it. Python's list comprehensions are a handy way to do this: all_ids = context.objectIds() filtered = [id for id in all_ids if id != script.getId()] for id in filtered: success += 1 ... List comprehensions are described in the Python language documentation, see this page: http://www.python.org/doc/current/tut/node7.html One more tip: if all you're doing is counting the length of the sequence, you don't have to use arithmetic, you can just use the built-in len() function, e.g. success = len(context.objectIds()) -- Paul Winkler http://www.slinkp.com