def registerCMFMemberMigrator(migrator, klass, project_name): """Register a migrator for migrating CMFMember based content to remember based content. Migrators registered here will be run on Plone 2.5 migration if enabled.""" registerATCTMigrator(migrator, klass) def migrateCMFMemberType(portal, out): """Run the actual migration.""" src_portal_type = klass._atct_newTypeFor['portal_type'] dst_portal_type = klass.portal_type # store the workflow(s) associated w/ the old type so we can # associate the new one when we're done wftool = getToolByName(portal, 'portal_workflow') chain = wftool.getChainForPortalType(src_portal_type) # portal_quickinstaller won't work before the membrane_tool is # in place because some remember fields are indexed in the # membrane_tool but it isn't installed before migration. So # we use Archetypes to install the type here. ttool = getToolByName(portal, 'portal_types') dst = ttool.getTypeInfo(dst_portal_type) if dst is None: print >> out, ("...installing %s type" % dst_portal_type) at_type = getType(klass.meta_type, project_name) types = filterTypes(portal, out, [at_type], project_name) install_types(portal, out, types, project_name) mt = getToolByName(portal, 'membrane_tool') if dst_portal_type not in mt.listMembraneTypes(): print >> out, ("...registering %s with membrane_tool" % dst_portal_type) mt.registerMembraneType(dst_portal_type) print >> out, "...migrating %s to %s" % (src_portal_type, dst_portal_type) migratePortalType(portal, src_portal_type=src_portal_type, dst_portal_type=dst_portal_type, migrator=migrator, use_catalog_patch=False) # associate the appropriate workflow wftool.setChainForPortalTypes((dst_portal_type,), chain) migrators.append(migrateCMFMemberType)
def registerCMFMemberMigrator(migrator, klass, project_name): """Register a migrator for migrating CMFMember based content to remember based content. Migrators registered here will be run on Plone 2.5 migration if enabled.""" registerATCTMigrator(migrator, klass) def migrateCMFMemberType(portal, out): """Run the actual migration.""" src_portal_type = klass._atct_newTypeFor['portal_type'] dst_portal_type = klass.portal_type # store the workflow(s) associated w/ the old type so we can # associate the new one when we're done wftool = getToolByName(portal, 'portal_workflow') chain = wftool.getChainForPortalType(src_portal_type) # portal_quickinstaller won't work before the membrane_tool is # in place because some remember fields are indexed in the # membrane_tool but it isn't installed before migration. So # we use Archetypes to install the type here. ttool = getToolByName(portal, 'portal_types') dst = ttool.getTypeInfo(dst_portal_type) if dst is None: print >> out, ("...installing %s type" % dst_portal_type) at_type = getType(klass.meta_type, project_name) types = filterTypes(portal, out, [at_type], project_name) install_types(portal, out, types, project_name) mt = getToolByName(portal, 'membrane_tool') if dst_portal_type not in mt.listMembraneTypes(): print >> out, ("...registering %s with membrane_tool" % dst_portal_type) mt.registerMembraneType(dst_portal_type) print >> out, "...migrating %s to %s" % (src_portal_type, dst_portal_type) migratePortalType(portal, src_portal_type=src_portal_type, dst_portal_type=dst_portal_type, migrator=migrator, use_catalog_patch=False) # associate the appropriate workflow wftool.setChainForPortalTypes((dst_portal_type, ), chain) migrators.append(migrateCMFMemberType)
from Products.CMFCore.utils import getToolByName from Products.ATContentTypes.migration.common import registerATCTMigrator from Products.ATContentTypes.migration.common import migratePortalType from Products.ATContentTypes.migration.migrator import CMFFolderMigrator from Products.ATContentTypes.migration.walker import CatalogWalkerWithLevel LOG = logging.getLogger('Workgroup.migration') class WorkgroupMigrator(CMFFolderMigrator): walkerClass = CatalogWalkerWithLevel map = {} registerATCTMigrator(WorkgroupMigrator, ATWorkgroup) def migrateWGs(portal): """Migrate Workgroup to ATWorkgroup; largely stolen from ATCT.migration.atctmigrator""" LOG.debug('Starting ATWorkspace type migration') kwargs = {} atct = getToolByName(portal, 'portal_atct') kwargs['use_catalog_patch'] = bool(atct.migration_catalog_patch) kwargs['transaction_size'] = int(atct.migration_transaction_size) transaction = atct.migration_transaction_style if transaction == "full transaction": kwargs['full_transaction'] = True kwargs['use_savepoint'] = False elif transaction == "savepoint":
from Products.CMFCore.utils import getToolByName from Products.ATContentTypes.migration.common import registerATCTMigrator from Products.ATContentTypes.migration.common import migratePortalType from Products.ATContentTypes.migration.migrator import CMFFolderMigrator from Products.ATContentTypes.migration.walker import CatalogWalkerWithLevel LOG = logging.getLogger("Workgroup.migration") class WorkgroupMigrator(CMFFolderMigrator): walkerClass = CatalogWalkerWithLevel map = {} registerATCTMigrator(WorkgroupMigrator, ATWorkgroup) def migrateWGs(portal): """Migrate Workgroup to ATWorkgroup; largely stolen from ATCT.migration.atctmigrator""" LOG.debug("Starting ATWorkspace type migration") kwargs = {} atct = getToolByName(portal, "portal_atct") kwargs["use_catalog_patch"] = bool(atct.migration_catalog_patch) kwargs["transaction_size"] = int(atct.migration_transaction_size) transaction = atct.migration_transaction_style if transaction == "full transaction": kwargs["full_transaction"] = True kwargs["use_savepoint"] = False elif transaction == "savepoint":