rendered paste body def close_expired_lots (self):
'''
Closes all expired lots
'''
portal_catalog = getToolByName(self, 'portal_catalog')
# Please refer to portal_catalog tool
# Zope management interface for default Plone seach indexes
query = {}
today = DateTime().Date() # returns a string yyyy/mm/dd
today = DateTime(today) # converts the string back to a date object
now = DateTime()
query = {'portal_type':'Lot',
'expires': {'query': now,
'range': 'max'},
'review_state': 'public',
}
# Return brain objects for search results
expired_brains = portal_catalog.searchResults(**query)
#context.plone_log("Got results:" + str(brains))
if len(expired_brains) < 1:
return "Nothing here to see"
workflowTool = getToolByName(self, "portal_workflow")
objlist = []
print len(expired_brains)
for brain in expired_brains:
import pdb; pdb.set_trace()
obj = brain.getObject()
if not obj:
continue
obj_id = obj.getId()
print obj
status = workflowTool.getStatusOf("Lot_Workflow", obj)
wfs = workflowTool.getWorkflowsFor(obj)
workflowTool.doActionFor(ob=obj, action="close lot",wf_id="Lot_Workflow" )
newstatus = workflowTool.getStatusOf("Lot_Workflow", obj)
objlist.append(( obj, obj_id, status["review_state"], newstatus["review_state"] ))
return objlist