[2564] | 1 | ## Script (Python) "getMembersDirectoryActions" |
---|
| 2 | ##bind container=container |
---|
| 3 | ##bind context=context |
---|
| 4 | ##bind namespace= |
---|
| 5 | ##bind script=script |
---|
| 6 | ##bind subpath=traverse_subpath |
---|
[1901] | 7 | ##parameters=mode |
---|
| 8 | #$Id: getMembersDirectoryActions.py 2564 2007-11-07 10:50:54Z joachim $ |
---|
| 9 | """ |
---|
| 10 | Get the actions to provide on members directory view |
---|
| 11 | |
---|
| 12 | Return the updated actions |
---|
| 13 | """ |
---|
| 14 | try: |
---|
| 15 | from Products.zdb import set_trace |
---|
| 16 | except: |
---|
| 17 | def set_trace(): |
---|
| 18 | pass |
---|
[2564] | 19 | if context.isStudent(): |
---|
| 20 | return context.REQUEST.RESPONSE.redirect("%s/srp_anonymous_view" % context.portal_url()) |
---|
[1901] | 21 | |
---|
| 22 | from Products.CMFCore.utils import getToolByName |
---|
| 23 | request = context.REQUEST |
---|
| 24 | qstring = request.get('QUERY_STRING','') |
---|
[1906] | 25 | if qstring: |
---|
| 26 | id = '' |
---|
| 27 | for par in qstring.split('&'): |
---|
| 28 | if par.startswith('id='): |
---|
| 29 | id = par[3:] |
---|
| 30 | else: |
---|
| 31 | id = request.form.get('id','') |
---|
[1901] | 32 | utool = getToolByName(context, 'portal_url') |
---|
| 33 | dtool = getToolByName(context, 'portal_directories') |
---|
| 34 | base_url = utool.getBaseUrl() |
---|
| 35 | renderActionIcon = context.portal_cpsportlets.renderActionIcon |
---|
| 36 | dirname = 'members' |
---|
| 37 | dir = getattr(dtool,'members') |
---|
| 38 | actions_list = (('create_action', |
---|
| 39 | 'new_entry', |
---|
| 40 | 'Create New Member', |
---|
[2348] | 41 | base_url+'member_create_form?dirname=members', |
---|
[1901] | 42 | ), |
---|
| 43 | ('search_action', |
---|
| 44 | 'search_entry', |
---|
| 45 | 'Search Member', |
---|
| 46 | base_url+'search_members_form?dirname=members', |
---|
| 47 | ), |
---|
| 48 | ('view_action', |
---|
| 49 | 'view_entry', |
---|
| 50 | 'View', |
---|
| 51 | base_url+'member_view?dirname=members'+'&id='+id, |
---|
| 52 | ), |
---|
| 53 | ('edit_action', |
---|
| 54 | 'edit_entry', |
---|
| 55 | 'Edit', |
---|
| 56 | base_url+'member_edit_form?dirname=members'+'&id='+id, |
---|
| 57 | ), |
---|
| 58 | ) |
---|
| 59 | ad = {} |
---|
| 60 | for action_id,name,desc,url in actions_list: |
---|
| 61 | ad[action_id] = { |
---|
| 62 | 'id': name, |
---|
| 63 | 'title': desc, |
---|
| 64 | 'icon_tag': renderActionIcon(action_id= name, |
---|
| 65 | category='object', |
---|
| 66 | base_url=base_url, |
---|
| 67 | alt= name), |
---|
| 68 | 'url': url, |
---|
| 69 | 'name': desc, |
---|
| 70 | 'category': 'object', |
---|
| 71 | } |
---|
[2348] | 72 | if not dtool.members.isSectionOfficer(): |
---|
| 73 | return [ad['view_action'], |
---|
| 74 | ad['edit_action'] |
---|
| 75 | ] |
---|
| 76 | |
---|
[1901] | 77 | if mode in ['view', 'edit']: |
---|
| 78 | return [ad['view_action'], |
---|
| 79 | ad['edit_action'], |
---|
| 80 | ad['create_action'], |
---|
| 81 | ad['search_action'] |
---|
| 82 | ] |
---|
| 83 | elif mode in ['create']: |
---|
| 84 | return [ad['search_action'],] |
---|
| 85 | return [ad['create_action'],] |
---|