X-Git-Url: https://scm.cri.ensmp.fr/git/Plinn.git/blobdiff_plain/3c4367d8e03450e9a73e61f4247145d2b6c86a33..959d888c17d1403d2eeecc19bc4b5e2c8d1debf6:/Products/Plinn/profiles/default/various.py diff --git a/Products/Plinn/profiles/default/various.py b/Products/Plinn/profiles/default/various.py new file mode 100644 index 0000000..efe3039 --- /dev/null +++ b/Products/Plinn/profiles/default/various.py @@ -0,0 +1,126 @@ +## Script (Python) "various.py" +##bind container=container +##bind context=context +##bind namespace= +##bind script=script +##bind subpath=traverse_subpath +##parameters=site +##title=Import various Plinn setting +## +from Products.CMFCore.utils import getToolByName +from Products.CMFCore.exceptions import BadRequest +from Products.Plinn.exceptions import WorkflowException +from Products.Plinn.utils import translate as i18ntranslate +translate = lambda msg : i18ntranslate(msg, context) + + +# constructs misc objects +# (productName, factory, id) +misc=(('StandardCacheManagers', 'manage_addAcceleratedHTTPCacheManager', 'HTTPCache'), + ('StandardCacheManagers', 'manage_addRAMCacheManager', 'rcm'), + ('GroupUserFolder', 'manage_addGroupUserFolder', 'acl_users')) + + +dispatcher = site.manage_addProduct +for m in misc : + try : getattr(dispatcher[m[0]], m[1])(m[2]) + except : pass + +if site.acl_users.Users.acl_users.encrypt_passwords : + site.acl_users.Users.acl_users.manage_setUserFolderProperties(encrypt_passwords=True) + + +# configure mosaicTool +blockTypes = ('Action Box Block', 'Container Block', 'File Block', 'Image Block', 'Mosaic Document', + 'Section Block', 'Spacer Block', 'Text Block', 'Tree Box Block') + +mostool = getToolByName(site, 'mosaic_tool') +addBI = mostool.manage_addProduct['MosaicDocument'].addMosaicBlockInformation +for bt in blockTypes : + try : addBI(blockType=bt) + except BadRequest : pass + +# contents +ttool = getToolByName(site, 'portal_types') +wtool = getToolByName(site, 'portal_workflow') + +def constructOrSkip(*args, **kw) : + try : ttool.constructContent(*args, **kw) + except BadRequest : pass + +def addBlockOrSkip(container, *args, **kw) : + try : container.addBlock(*args, **kw) + except BadRequest : pass + +def doActionForOrSkip(*args, **kw) : + try : wtool.doActionFor(*args, **kw) + except WorkflowException : pass + +# home page +text=[] +text.append('

%s

' % translate('Welcome to Plinn!')) +text.append('

%s

' % translate('This is the default home page.')) +text.append('

%s

' % translate('To change the content just select "Edit" in the Tab bar on the top.')) +text = '\n'.join(text) +constructOrSkip( 'Document', site, 'index_html' + , title = translate('Home') + , text_format='html' + , text=text) +doActionForOrSkip(site.index_html, 'direct_publish') + +# default folders +constructOrSkip('Huge Plinn Folder', site, 'Members', title = translate('Members')) +#constructOrSkip('Huge Plinn Folder', site, 'global_settings', title = translate('Portlets')) +if not hasattr(site, 'global_settings') : + site.manage_addProduct['OFSP'].manage_addFolder('global_settings') +if not site.global_settings.hasProperty('noIndex'): + site.global_settings.manage_addProperty('noIndex', True, 'boolean') + +# left boxes +constructOrSkip('Mosaic Document', site.global_settings, 'left_boxes', title=translate('Left boxes')) +lb = site.global_settings.left_boxes +addBlockOrSkip(lb, 'Tree Box Block', 0, id='nav_tree') +lb.nav_tree.saveBlock(filteredMetaTypes={'text' : ['Huge Plinn Folder', 'Portfolio', 'Topic']}) +doActionForOrSkip(lb, 'direct_publish') + +# right boxes +constructOrSkip('Mosaic Document', site.global_settings, 'right_boxes', title=translate('Right boxes')) +rb = site.global_settings.right_boxes +addBlockOrSkip(rb, 'Action Box Block', 0, id='global_actions') +rb.global_actions.saveBlock(boxTitle={'text' : translate('Global actions')}, categories={'text' : ['global']}) +addBlockOrSkip(rb, 'Action Box Block', 0, id='workflow_actions') +rb.workflow_actions.saveBlock(boxTitle={'text' : translate('Workflow')}, categories={'text' : ['workflow']}) +doActionForOrSkip(rb, 'direct_publish') + +# tools settings +mtool = getToolByName(site, 'portal_membership') +mtool.setMemberAreaPortalType('Huge Plinn Folder') + +gtool = getToolByName(site, 'portal_groups') +gtool.setGroupWorkspaceContainerType('Huge Plinn Folder') +gtool.setGroupWorkspaceType('Huge Plinn Folder') + +caltool = getToolByName(site, 'portal_calendar') +caltool.configureTool(['created', 'modified', 'DateTimeOriginal'], [9, 18]) + +pimtool = getToolByName(site, 'portal_image_manipulation') +if not pimtool.hasObject('image') : + pimtool.manage_addProduct['OFSP'].manage_addFolder('image') +if not pimtool.hasObject('tile') : + pimtool.manage_addProduct['OFSP'].manage_addFolder('tile') + +ctool = getToolByName(site, 'portal_catalog') +if not 'position' in ctool.indexes() : + ctool.manage_addProduct['ProxyIndex'].manage_addProxyIndex('position', + extra = { 'idx_type' : 'FieldIndex' + , 'value_expr' : 'python:object.getParentNode().getObjectPosition(object.getId())'}) + +# Caches +HTTPCache = site.HTTPCache +HTTPCache.manage_editProps(title='Accelerated HTTP Cache', + settings={'anonymous_only' : False, 'interval' : 3600,'notify_urls' : []}) + +gtool = getToolByName(site, 'portal_groups') +gtool.ZCacheable_setManagerId('rcm') + +return 'Various Plinn settings imported' \ No newline at end of file