A content migration wizard based on Products.contentmigration
Project description
Introduction
by Giacomo Spettoli<giacomo.spettoli@gmail.com> and Regione Emilia-Romagna
This product is a user interface for migrate content based on framework Products.contentmigration.
The wizard will guide the site administrator with 3 step:
select the desired migration from a list
select in which contents apply the migration from a filtered site map
confirm the migration.
This product also provide an easy way to register new migration. In “allmigration” folder you can find some example. Here the folderToLargeFolder migration:
class FolderToLargePloneFolder(object, ATFolderMigrator): """Migrate the old item type to the new item type """ implements(IContentMigrator) walker = CustomQueryWalker src_meta_type = "ATFolder" src_portal_type = "Folder" dst_meta_type = "ATBTreeFolder" dst_portal_type = "Large Plone Folder" description = "Document to Document" safeMigration = True def __init__(self, *args, **kwargs): ATFolderMigrator.__init__(self, *args, **kwargs) self.fields_map = BASE_AT_PROPERTIES FolderToLargePloneFolderMigrator = FolderToLargePloneFolder
In order to create your own migration you must create a class that extend ATFolderMigrator or ATItemMigrator:
from Products.contentmigration.archetypes import ATFolderMigrator,ATItemMigrator
This new class must implements IContentMigrator interface:
implements(IContentMigrator)
Next you insert source and destination portal_type and meta_type (you can find these values in zmi/portal_types):
src_meta_type = "ATFolder" src_portal_type = "Folder" dst_meta_type = "ATBTreeFolder" dst_portal_type = "Large Plone Folder"
You can set the migration as “safe” or “unsafe”. A “safe” migration is a migration where the destination content type has equal/more fields than origin content type. You can also insert a warning message in description:
safeMigration = True description = "Document to Document"
And than,in the __init__ method you must map source fields in destination fields. Basic archetypes fields are already mapped in BASE_AT_PROPERTIES:
self.fields_map = BASE_AT_PROPERTIES
- At last insert this line to create a named utility::
<class name>Migrator = <class name>
In a zcml file register the new utility:
<utility component=".basemigrations.FolderToLargePloneFolderMigrator" provides="..interfaces.IContentMigrator" name="collective.contentmigrationui.FolderToLargePloneFolderMigrator" />
Changelog
0.1
Initial release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file collective.contentmigrationui-0.1-py2.4.egg
.
File metadata
- Download URL: collective.contentmigrationui-0.1-py2.4.egg
- Upload date:
- Size: 52.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3e239e841cff097d7e825c34bc8b44951812663afe7527731f559142bc8e89b |
|
MD5 | 4b3b0183b51acc7e6d7cc3ea0741abfd |
|
BLAKE2b-256 | f3e176da27b1ef6f74b01b51b37e99679c31164bc642fcfa81611694f516e8be |