this is great! i'll give this - or something similar - a try in the near future. in know that zope has a reputation for less than cohesive documentation, but can someone point me in the direction of some zope api documentation? On Sun, 19 Nov 2000, Cees de Groot wrote:
wade@fizzylab.com said:
any insight as to how one might code something like that?
Document traversal is a simple recursive Python function - with one call to objectValues on a folder you can extract all documents (and iterate over them, check their creation date, remove them if necessary); with a second call to objectValues you get all subfolders and recurse into them.
objectValues matches on meta type, which is 'Folder' for a folder, and 'DTML Method' for a DTML method. So you'd get something like:
def expire(folder): for i in self.objectItems('DTML Method'): id = i[0]; value = i[1] if value.bobobase_modification_time() < """now minus two weeks""": # remove i. Maybe tricky because you're iterating # and removing from a collection. check. folder.manage_delObjects(id) for i in folder.objectValues('Folder'): expire(i)
Add this as a Python method (or similar) to the top-level folder where you want to expire, and kicking it off is as simple as a HTTP GET from a cron job (I think there's a job scheduler for Zope as well, should make it even easier).
Disclaimer: untested, untested, and I never tried this out.