X-Git-Url: https://scm.cri.ensmp.fr/git/Plinn.git/blobdiff_plain/3c4367d8e03450e9a73e61f4247145d2b6c86a33..959d888c17d1403d2eeecc19bc4b5e2c8d1debf6:/Products/Plinn/skins/control/content_status_modify.py diff --git a/Products/Plinn/skins/control/content_status_modify.py b/Products/Plinn/skins/control/content_status_modify.py new file mode 100644 index 0000000..b8818d0 --- /dev/null +++ b/Products/Plinn/skins/control/content_status_modify.py @@ -0,0 +1,32 @@ +## Script (Python) "content_status_modify" +##parameters=workflow_action, REQUEST=None, **kw +##title=Modify the status of a content object + +from ZTUtils import make_query as mq +from Products.CMFCore.utils import getToolByName +from Products.CMFCore.exceptions import zExceptions_Unauthorized + +wftool = getToolByName(context, 'portal_workflow') +mtool = getToolByName(context, 'portal_membership') +utool = getToolByName(context, 'portal_url') + +if REQUEST : + kw.update(REQUEST.form) + +try : + target = context.getActionInfo('object/history')['url'] +except ValueError : + target = context.getActionInfo('object/view')['url'] + +res = wftool.doActionFor(context, workflow_action, **kw) +if res : + # by (Plinn) convention + # occurs when a ObjectMoved is raised + kw.update({'syncFragments' : ['Breadcrumbs', 'rightCell']}) + return REQUEST.RESPONSE.redirect('%s?%s' % (res.absolute_url(), mq(**kw))) + + +kw.update({'portal_status_message' : 'Status changed.'}) +try : context.id # touch something in context +except zExceptions_Unauthorized : target = utool() +return REQUEST.RESPONSE.redirect('%s?%s' % (target, mq(**kw))) \ No newline at end of file