All pastes #755788 Raw Edit

DShepherd

public text v1 · immutable
#755788 ·published 2007-10-30 22:05 UTC
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