def upgradeTo1_3_0(setuptool): """Lots of changes in setup in 1.3.0 """ # We must delete ftis since something whoes in the 'typeinfo' step # FIXME: is this a GS bug or feature? portal_types = getPortal().portal_types for portal_type in ('Collage', 'CollageRow', 'CollageColumn', 'CollageAlias'): portal_types._delObject(portal_type) for step in ('typeinfo', 'cssregistry', 'actions', 'action-icons', 'jsregistry'): setuptool.runImportStepFromProfile(PROFILE_NAME, step, run_dependencies=False) # Remove useless alias_search_limit option in property sheet to_delete = 'alias_search_limit' propsheet = getPortal().portal_properties.collage_properties if propsheet.hasProperty(to_delete): propsheet._delProperty(to_delete) # Adding new properties to_add = [ # Name, value, type ('ref_browser_empty', False, 'boolean'), ('ref_browser_types', False, 'boolean'), ('batch_size', 3, 'int') ] for name, value, ptype in to_add: if propsheet.hasProperty(name): continue propsheet.manage_addProperty(name, value, ptype) return
def updateJSRegistry(setuptool): """Javascript moved from skins to resources """ OLDID = 'collage.js' NEWID = '++resource++collage-resources/collage.js' jstool = getPortal().portal_javascripts all_rscids = jstool.getResourceIds() if (OLDID in all_rscids) and (NEWID not in all_rscids): jstool.renameResource(OLDID, NEWID) return
def addAliasWhitelistProperty(setuptool): """Add Alias whitelist control panel property """ propsheet = getPortal().portal_properties.collage_properties # Default: same value as types whitelist default_value = propsheet.getProperty('types_whitelist') if propsheet.getProperty('alias_whitelist'): # property already exists; upgrade step has already been run # apparently; upgrade steps should not fail when run a second # time, so we return here. return propsheet.manage_addProperty('alias_whitelist', default_value, 'lines') return
def removeSkinsLayer(setuptool): """Collage doesn't require a CMF skins layer anymore """ LAYERNAME = 'Collage' skinstool = getPortal().portal_skins # Unfortunately, there's no easy way to remove a layer from all skins skinnames = skinstool.selections.keys() for name in skinnames: layers = skinstool.selections[name] layers = [l.strip() for l in layers.split(',') if l.strip() != LAYERNAME] layers = ','.join(layers) skinstool.selections[name] = layers if LAYERNAME in skinstool.objectIds(): skinstool._delObject(LAYERNAME) return
def removeSkinsLayer(setuptool): """Collage doesn't require a CMF skins layer anymore """ LAYERNAME = 'Collage' skinstool = getPortal().portal_skins # Unfortunately, there's no easy way to remove a layer from all skins skinnames = skinstool.selections.keys() for name in skinnames: layers = skinstool.selections[name] layers = [ l.strip() for l in layers.split(',') if l.strip() != LAYERNAME ] layers = ','.join(layers) skinstool.selections[name] = layers if LAYERNAME in skinstool.objectIds(): skinstool._delObject(LAYERNAME) return
def __init__(self, context): super(CollageSiteOptions, self).__init__(context) properties = getPortal().portal_properties self.context = properties.restrictedTraverse(PROPERTYSHEETNAME)