X-Git-Url: https://scm.cri.ensmp.fr/git/Plinn.git/blobdiff_plain/3c4367d8e03450e9a73e61f4247145d2b6c86a33..959d888c17d1403d2eeecc19bc4b5e2c8d1debf6:/Products/Plinn/skins/control/member_registration_modify.py?ds=sidebyside diff --git a/Products/Plinn/skins/control/member_registration_modify.py b/Products/Plinn/skins/control/member_registration_modify.py new file mode 100755 index 0000000..1515e5e --- /dev/null +++ b/Products/Plinn/skins/control/member_registration_modify.py @@ -0,0 +1,58 @@ +## Script (Python) "member_registration_modify" +##parameters=members=[], register=None, reject=None, ajax='' +##title=Modify the status of a content object + +from Products.CMFCore.utils import getToolByName +from ZTUtils import make_query as mq +req = context.REQUEST +resp = req.RESPONSE + +utool = getToolByName(context, 'portal_url') +portal = utool.getPortalObject() +mtool = getToolByName(portal, 'portal_membership') + +workflow_action = '' +wfkw = {} + +if register : + members = [ mtool.getMemberById(entry['id']) for entry in members if entry.has_key('checked') ] + workflow_action = 'register' + nbMembers = len(members) + if not nbMembers : + message = 'Please select at least one member.' + elif nbMembers == 1 : + message = 'Member registered.' + else : + message = 'Members registered.' + +elif reject : + # handle form from reject_member_form + members = [ mtool.getMemberById(entry['id']) for entry in members if entry.has_key('checked') ] + workflow_action = 'reject' + form = req.form + wfkw['subject'] = form.get('subject', '') + wfkw['body'] = form.get('body', '') + message = 'Registration rejected.' + +else : + for m in members : + if m.has_key('reject') : + resp.redirect('%s/reject_member_form?%s' % ( portal.absolute_url(), + mq(id=m['id'], ajax=ajax) )) + return + raise ValueError, 'No action selected.' + +wtool = getToolByName(portal, 'portal_workflow') + +for m in members: + wtool.doActionFor(m, workflow_action, wf_id = 'member_workflow', **wfkw) + + + +if ajax : + query = mq(portal_status_message=message, ajax='1', syncFragments=['rightCell'] ) +else : + query = mq(portal_status_message=message) +redirect_url = portal.absolute_url() + '/pending_members?'+ query + +resp.redirect( redirect_url ) \ No newline at end of file