Annotation of kupuMPIWG/plone/kupu_plone_layer/sample-kupu-customisation-policy.py, revision 1.1.1.1

1.1       dwinter     1: ## Script (Python) "kupu-customisation-policy"
                      2: ##bind container=container
                      3: ##bind context=context
                      4: ##bind namespace=
                      5: ##bind script=script
                      6: ##bind subpath=traverse_subpath
                      7: ##parameters=
                      8: ##title=Kupu Customisation Policy
                      9: ##
                     10: 
                     11: # Make a copy of this script called 'kupu-customisation-policy'
                     12: # in any skin folder on your site and edit it to set up your own
                     13: # preferred kupu configuration.
                     14: from Products.CMFCore.utils import getToolByName
                     15: 
                     16: RESOURCES = dict(
                     17:     linkable = ('Document', 'Image', 'File', 'News Item', 'Event'),
                     18:     mediaobject = ('Image',),
                     19:     collection = ('Plone Site', 'Folder', 'Large Plone Folder'),
                     20:     )
                     21: 
                     22: EXCLUDED_HTML = [
                     23:   {'tags': ('center','span','tt','big','small','u','s','strike','basefont','font',),
                     24:    'attributes':(),
                     25:    'keep': 1 },
                     26:   
                     27:   {'tags':(),
                     28:   'attributes': ('dir','lang','valign','halign','border','frame',
                     29:       'rules','cellspacing','cellpadding','bgcolor'),
                     30:    'keep': 1},
                     31: 
                     32:   {'tags': ('table','th','td'),
                     33:    'attributes': ('width','height'),
                     34:    'keep': 1},
                     35: 
                     36:    {'tags': '', 'attributes': '' } # Must be dummy entry at end.
                     37: ]
                     38: 
                     39: STYLE_WHITELIST = ['text-align', 'list-style-type', 'float']
                     40: CLASS_BLACKLIST = ['MsoNormal', 'MsoTitle', 'MsoHeader', 'MsoFootnoteText',
                     41:         'Bullet1', 'Bullet2']
                     42: 
                     43: TABLE_CLASSNAMES = ('plain', 'listing', 'grid', 'data')
                     44: 
                     45: PARAGRAPH_STYLES = (
                     46:     "Heading|h2|Heading",
                     47:     "Subheading|h3|Subheading",
                     48:     "Formatted|pre",
                     49: #    'Fancy|div|fancyClass',
                     50: #    'Plain|div|plainClass',
                     51: )
                     52:     
                     53: LIBRARIES = (
                     54:     dict(id="root",
                     55:          title="string:Home",
                     56:          uri="string:${portal_url}",
                     57:          src="string:${portal_url}/kupucollection.xml",
                     58:          icon="string:${portal_url}/misc_/CMFPlone/plone_icon"),
                     59:     dict(id="current",
                     60:          title="string:Current folder",
                     61:          uri="string:${folder_url}",
                     62:          src="string:${folder_url}/kupucollection.xml",
                     63:          icon="string:${portal_url}/folder_icon.gif"),
                     64:     dict(id="myitems",
                     65:          title="string:My recent items",
                     66:          uri="string:${portal_url}/kupumyitems.xml",
                     67:          src="string:${portal_url}/kupumyitems.xml",
                     68:          icon="string:${portal_url}/kupuimages/kupusearch_icon.gif"),
                     69:     dict(id="recentitems",
                     70:          title="string:Recent items",
                     71:          uri="string:${portal_url}/kupurecentitems.xml",
                     72:          src="string:${portal_url}/kupurecentitems.xml",
                     73:          icon="string:${portal_url}/kupuimages/kupusearch_icon.gif")
                     74:     )
                     75: DEFAULT_LIBRARY = 'myitems'
                     76: 
                     77: INSTALL_BEFOREUNLOAD = True
                     78: LINKBYUID = True
                     79: 
                     80: tool = getToolByName(context, 'kupu_library_tool')
                     81: typetool = getToolByName(context, 'portal_types')
                     82: 
                     83: def typefilter(types):
                     84:     all_meta_types = dict([ (t.id, 1) for t in typetool.listTypeInfo()])
                     85:     return [ t for t in types if t in all_meta_types ]
                     86: 
                     87: print "remove old resources"
                     88: types = tool.zmi_get_type_mapping()
                     89: tool.deleteResourceTypes([ t for (t,p) in types])
                     90: 
                     91: print "add resources"
                     92: for k,v in RESOURCES.items():
                     93:     tool.addResourceType(k, typefilter(v))
                     94: 
                     95: mappings = tool.zmi_get_type_mapping()
                     96: for rname, t in mappings:
                     97:     print rname, ", ".join(t)
                     98: 
                     99: print "remove old libraries"
                    100: libs = tool.zmi_get_libraries()
                    101: tool.deleteLibraries(range(len(libs)))
                    102: 
                    103: print "add libraries"
                    104: for lib in LIBRARIES:
                    105:     tool.addLibrary(**lib)
                    106: 
                    107: for lib in tool.zmi_get_libraries():
                    108:     keys = lib.keys()
                    109:     keys.remove('id')
                    110:     keys.sort()
                    111:     print lib['id']
                    112:     for k in (keys):
                    113:         print '   ',k, lib[k]
                    114: 
                    115: tool.zmi_set_default_library(DEFAULT_LIBRARY)
                    116: 
                    117: print "configure kupu"
                    118: tool.configure_kupu(
                    119:     table_classnames = TABLE_CLASSNAMES,
                    120:     parastyles=PARAGRAPH_STYLES,
                    121:     html_exclusions = EXCLUDED_HTML,
                    122:     style_whitelist = STYLE_WHITELIST,
                    123:     class_blacklist = CLASS_BLACKLIST,
                    124:     installBeforeUnload=INSTALL_BEFOREUNLOAD,
                    125:     linkbyuid=LINKBYUID,
                    126:     )
                    127: 
                    128: return printed

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>