##Summary
The ability to import and export content between Plone and other CMS systems was proposed for GSoC 2017. The project was partly completed, but needs to be finished. A proposed UI is in the project issue tracker https://github.com/collective/plone.importexport/issues/15
Currently looks like
Profile
[News Sync ] [Load] [Save]
____|Export|___|*Import*|____
Import File(s)
- *warning* your import is large so will be done in multiple transactions from the browser. Please don't close your browser during upload. Aborting won't be possible.
- a zip containing files in folder structures with a optional index.csv containing metadata (see format), or a single csv metadata file, or DND a folder here
[ /tmp/myzip.zip ] [browse]
Primary Key
- Field in import metadata to match
[UUID ]
Existing content
- to replace or update or add into
{query widget}
Path: /news
Creation date: > 1/1/20018
If Content Matched
(o) Update
( ) Replace
( ) Rename existing
( ) Rename new
( ) skip
( ) Abort
If Content is New
- relative paths will added to the first path found in the query widget
- Content type field must be specified or use content type in query
(o) Add and create folders
( ) Skip if folders don't exist
( ) Skip
( ) Abort
If Existing doesn't Match
( ) Remove
(o) Skip
( ) Abort
If more than one Match
( ) Remove all except first
( ) Skip all but the first
(o) Abort
Settings imports
[ ] Users (acl_users.csv)
[ ] Themes (portal_resoures/*)
[ ] Registry (portal_registry.csv)
[ ] Generic Setup (portal_setup/*.xml)
[ ] Allow contributors to use this import profile in the Actions menu
[Import] [Dry Run] [Cancel]
Progress: 423/1024 (20s/43s)
383 Items have been updated
23 items didn't match and skipped (view...)
2 items were added (view...)
10 updates skipped due to permissions
5 adds skipped due to permissions
[Download log]
and export would look like this
Profile
[News Sync ] [Load] [Save]
____|*Export*|___|Import|____
Existing content
- to export
{query widget}
Path: /news
Path: /other-news
Creation date: > 1/1/20018
Export
[x] Metadata (CSV format)
[x] Files (Zip format)
[ ] Users
[ ] Settings
[ ] Themes
Metadata to export
( ) All (o) Selected fields
[path, effective_date, title ]
[Export] [Dry Run] [Cancel]
and includes features like
- saved profiles
- users, registry and exporting/importing other settings
- flexible ways to bulk update or add content
- handling very large imports using client side restapi calls (javascript)
- potential AT support and handling converting to dexterity
##Implementation
Complete the work outlined in this issue as well as other issues in the project tracker in GitHub.
##Skills
Python. CSV. some JavaScript would also be welcome.
##Mentors
Dylan Jay, Shriyansh Agrawal (GSoC Student, 2017 and 2018)
##Aims
A fully polished release of plone.importexport available as an installable add-on and possibly accepted into Plone 6 as a core component.