source: products/quintagroup.plonecomments/trunk/quintagroup/plonecomments/skins/quintagroup_plonecomments/prefs_comments_setup.cpy @ 822

Last change on this file since 822 was 822, checked in by koval, 17 years ago

little change in member properties extraction

File size: 1.8 KB
Line 
1## Script (Python) "prefs_comments_setup"
2##bind container=container
3##bind context=context
4##bind namespace=
5##bind script=script
6##bind subpath=traverse_subpath
7##parameters=
8##title=
9##
10from Products.CMFCore.utils import getToolByName
11from quintagroup.plonecomments.utils import setAnonymCommenting, setStatusMsg
12from Products.CMFPlone import MessageFactory
13_ = MessageFactory('quintagroup.plonecomments')
14
15form = context.REQUEST.form
16pp = getToolByName(context, 'portal_properties')
17props_sheet = getattr(pp, 'qPloneComments')
18property_maps=[(m['id'], m['type']) for m in props_sheet.propertyMap() if not m['id']=='title']
19request_ids = form.keys()
20
21kw={}
22for id,type in property_maps:
23    if type == 'boolean':
24        if id in request_ids:
25            kw[id] = True
26        else:
27            kw[id] = False
28
29        # Switch anonymouse commenting
30        if id == 'enable_anonymous_commenting':
31            allow = False
32            if id in request_ids:
33                allow = True
34            setAnonymCommenting(context, allow)
35    else:
36        if id in request_ids:
37            kw[id] = form[id]
38
39props_sheet.manage_changeProperties(**kw)
40
41moderate_discussion = 'Moderate Discussion'
42if not 'EnableManagerModeration' in request_ids:
43    roles = [item['name'] for item in context.rolesOfPermission(moderate_discussion)
44             if (item['name'] != 'Manager') and (item['selected'] == 'SELECTED')]
45    context.manage_permission(moderate_discussion, roles,  acquire=0)
46
47else:
48    roles = [item['name'] for item in context.rolesOfPermission(moderate_discussion)
49             if item['selected'] == 'SELECTED']
50    roles.append('Manager')
51    context.manage_permission(moderate_discussion, roles,  acquire=0)
52
53setStatusMsg(state, context, _(u'qPloneComments configuration changes saved.'))
54return state
Note: See TracBrowser for help on using the repository browser.