[Setup] Re: Content expiration workflow

Sean Dodsworth seandodsworth at gmail.com
Wed Feb 8 23:49:44 UTC 2006


Stephen Kenworthy wrote:
> We currently do something similar (time-based workflow transition)
> 
> Our setup is:
>   * python script that searches for all content in particular workflow 
> state and performs the correct transition
>   * cron job to automatically call the script at particular intervals
> 
> In your case you could search for all content that is 'expired' and 
> perform that workflow transition 'submit'.
> 
> Here's a partial example of code that we use:
> 
> #
> # Apply a workflow transition after a period of time
> #
> 
> from DateTime import DateTime
> import time
> 
> def applyTransition(self, transition, time_offset):
>     pc = self.portal_catalog
>     pw = self.portal_workflow
> 
>     t0 = DateTime(time.time() - time_offset * 3600)
> 
>     pending = 0
>     promoted = 0
> 
>     #
>     # Grab all of the offers that are only visible to premium members
>     #
> 
>     for obrain in pc.queryCatalog({'portal_type':"OfferFolder", 
> 'review_state':"respondable_premium"}):
>         o = obrain.getObject()
>         last_transition = o.workflow_history['offer_folder_workflow'][-1]
>         t1 = last_transition.get('time')
> 
>         pending += 1
>         #
>         # Check to see if this offer has passed the blackout period
>         #
>         pending_objs = {}
>         if t1 < t0:
>             promoted += 1
>             #
>             # TODO: currently it silently ignores objects who's 
> transition does not exist
>             #
>             for t in pw.getTransitionsFor(o):
>                 if t['id'] == transition:
>                    pw.doActionFor(o, transition)
> 
>         pending_objs[pending] = o.absolute_url()
> 
> 
> Sean Dodsworth wrote:
>> Hi all,
>> I want to set up a workflow that automatically submits content for 
>> review (by changing its state) when it reaches its expiration date.
>> I'm using Plone 2.1.1
>> Any ideas?
>>
>> -Sean
>>
> 
Thanks Stephen, i'll try it out




More information about the Setup mailing list