diff --git a/src/kitconcept/voltolighttheme/browser/__init__.py b/src/kitconcept/voltolighttheme/browser/__init__.py new file mode 100644 index 0000000..9be534a --- /dev/null +++ b/src/kitconcept/voltolighttheme/browser/__init__.py @@ -0,0 +1,56 @@ +from plone.protect.interfaces import IDisableCSRFProtection +from plone.restapi.blocks import visit_blocks +from Products.Five.browser import BrowserView +from zope.interface import alsoProvides + +import logging +import transaction + + +logger = logging.getLogger("migrate_to_4") +logger.setLevel(logging.INFO) + +# If you updated or extended the colors mappings, you should update this with the new values +COLOR_MAP = { + "grey": { + "--background-color": "#ecebeb", + }, + "transparent": { + "--background-color": "transparent", + }, +} + + +def migrate_backgroundColor(portal): + i = 0 + output = "" + for brain in portal.portal_catalog( + object_provides="plone.restapi.behaviors.IBlocks" + ): + obj = brain.getObject() + blocks = obj.blocks + output += f"Processing {obj.absolute_url()}\n" + for block in visit_blocks(obj, blocks): + if block.get("styles", False) and block["styles"].get( + "backgroundColor", False + ): + new_block = block.copy() + color = block["styles"]["backgroundColor"] + new_block["styles"]["backgroundColor:noprefix"] = COLOR_MAP[color] + del new_block["styles"]["backgroundColor"] + block.clear() + block.update(new_block) + output += f'{obj.absolute_url()} - Updated "backgroundColor" to "backgroundColor:noprefix"\n' + + i += 1 + if not i % 100: + logger.info(i) + transaction.commit() + transaction.commit() + return output + + +class MigrateToV3(BrowserView): + def __call__(self): + alsoProvides(self.request, IDisableCSRFProtection) + return migrate_backgroundColor(self.context) diff --git a/src/kitconcept/voltolighttheme/browser/configure.zcml b/src/kitconcept/voltolighttheme/browser/configure.zcml new file mode 100644 index 0000000..20ace1b --- /dev/null +++ b/src/kitconcept/voltolighttheme/browser/configure.zcml @@ -0,0 +1,17 @@ + + + + + + + diff --git a/src/kitconcept/voltolighttheme/configure.zcml b/src/kitconcept/voltolighttheme/configure.zcml index 0538847..ff5dd0e 100644 --- a/src/kitconcept/voltolighttheme/configure.zcml +++ b/src/kitconcept/voltolighttheme/configure.zcml @@ -18,6 +18,7 @@ +