collective / collective.jsonmigrator

JSON based migrations for Plone
GNU General Public License v2.0
8 stars 21 forks source link

Also update Mimetype, Owner & Workflow of dexterity objects #15

Open djowett opened 9 years ago

djowett commented 9 years ago

collective.blueprint.jsonmigrator (the precursor of this product) has a PR which fixes the above blueprints so they have the same effect on writing Dexterity items as Archetypes. It seems reasonable to me that we should do this also here in this product.

This basically means replacing: if IBaseObject.providedBy(obj): with if IBaseObject.providedBy(obj) or (dexterity_available and IDexterityContent.providedBy(obj)): where dexterity_available is set when from plone.dexterity.interfaces import IDexterityContent succeeds.

There is also a code change handling dexterity datafields in the PR mentioned, but as I recall I successfully used the transmogrify.dexterity.schemaupdater blueprint for handling that usecase, so I don't personally recommend that, though opinions may differ. Perhaps we should open a separate Issue to discuss that?

[search for IBaseObject in this product] https://github.com/collective/collective.jsonmigrator/search?utf8=%E2%9C%93&q=IBaseObject

thanks at @idgserpro for spotting that (and @maartenkling for the original PR)

djowett commented 9 years ago

Note: it may be that plone.app.transmogrifier.workflowupdater is being used instead of collective.jsonmigrator.workflowhistory in most cases

jensens commented 3 years ago

I would use the specific interfaces: like IOwned from AccessControl or IMutableDublinCore to have it generic.