Exemple #1
0
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)
Exemple #2
0
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":