in Plone 2.1 we had a workflow script to move News Items and Documents
to a different location when the object was published:
from Products.CMFPlone.utils import base_hasattr
import DateTime
o = getattr(state_change, 'object')
obj_parent = o.aq_parent
portal_root = context.portal_url.getPortalObject()
if o.getTypeInfo().getId()=='News Item' or
o.getTypeInfo().getId()=='Document':
today = DateTime.DateTime()
(year,month,day) = (str(today.year()),str(today.mm()),str(today.dd()))
if not base_hasattr(portal_root,year):
portal_root.invokeFactory('Folder', year, title=year)
if not base_hasattr(portal_root[year], month):
portal_root[year].invokeFactory('Folder', month, title=month)
if not base_hasattr(portal_root[year][month], day):
portal_root[year][month].invokeFactory('Folder', day, title=day)
destination = portal_root[year][month][day]
object_id = o.getId()
destination.manage_pasteObjects(obj_parent.manage_cutObjects(object_id))
In this way, when I published one of those objects, a new folder was
created based on current date and the object was moved to that folder.
now that we have migrated to Plone 2.5 I was trying to write a test to
see if the script was created and removed from the workflow at
install/uninstall time, but then I realized that I can probably use some
sort of event instead of this.
I think in Plone 3.0 there is a mechanism to implement this in an easy
way. can anybody explain me how to do it?
_______________________________________________
Product-Developers mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/product-developers