I have been working on a basic pipeline to migrate the built in content types from Plone 4.3.x sites to Plone 5 and am having a bit of an issue with both Collections and Events. Everything else in my package seems to work fine with the exception of these two. I think it may be really beneficial to Plone to have a migration strategy using this method to help folks get "over the hump" sometimes and into the latest version with less pain. As in my case, I've collected enough cruft in the Plone 4 era that I would really like to start on a clean 5 build and just move the built in content types content in. Anything else I will have to address separately.
Anyway, can anyone point me in the right direction on how to migrate the plone.app.collections to dexterity types in Plone 5?
The combination of packages I currently am using are collective.jsonify on the source and collective.jsonmigrator/transmogrify.dexterity on the destination. Any help would be GREATLY appreciated.
On the topic of migrating Events, I found that the start and end dates on Event are python datetime.datetime, in contrast with the default DublinCore date fields which are zope DateTime.
I've developed a transmogrifier blueprint that fixes timezone errors when importing Events with transmogrifier. It's in a private package but here is the blueprint as a public gist:
have you tried moving to Dexterity in Plone 4.3 before upgrading to Pone 5? you just need to install plone.app.contenttypes and run the migration process.
Thats a great suggestion. But I have a question on that. My current collection in the 4.3 sites are using plone.app.collection, which is basically a dexterity version of collections introduced in the 4.3 era. Would this not be the same as the plone.app.contenttypes version?
@cthomas plone.app.collection has 2.x branch where a dexterity version was created, but this has never been in a Plone 4 or 5 release as far as I can see. plone.app.collection 1.X is still the archetypes version, packaged both with Plone 4.3 and also with Plone 5 (just like ATContenttypes, for migration purposes).
All, I wanted to pass along an update and a simple solution to the issue I was having. Essentially, my pipeline was grabbing and converting all content into Dexterity objects as expected. However, after the migration, and a clear/rebuild of the catalog, it left all collections functioning in terms of displaying the correct information, but they were not editable. You could edit their settings and click save, but the changes were reset when the page reloaded.
My combination of packages to accomplish this migration were as follows.
On the source site: collective.jsonify
On the destination site: collective.jsonmigrator, transmogrify.dexterity.
With that said, the solution to the problem with collections was to simply go into the ZMI, go to Portal Setup --> Upgrades and from the dropdown select plone.app.querystring. You will need to rerun upgrade steps 7 & 8 through the end, in my case 13. After this, the collections worked perfectly.
I can't take any credit for this as djowett found the issue and figured out the solution. Many thanks to him for all of his help. I hope this may help someone in the future.