Skip to content

Commit

Permalink
Add upgrade step
Browse files Browse the repository at this point in the history
  • Loading branch information
folix-01 committed Jun 20, 2023
1 parent a4ace1a commit 4aa2586
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 1 deletion.
45 changes: 44 additions & 1 deletion src/design/plone/policy/upgrades.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from design.plone.policy.setuphandlers import disable_searchable_types
from design.plone.policy.setuphandlers import set_default_subsite_colors
from design.plone.policy.utils import create_default_blocks
from design.plone.policy.interfaces import IDesignPlonePolicySettings
from plone import api
from plone.app.upgrade.utils import installOrReinstallProduct
from plone.dexterity.utils import iterSchemata
Expand All @@ -15,6 +16,7 @@
from zope.component import getUtility
from zope.schema import getFields


import json
import logging

Expand Down Expand Up @@ -95,7 +97,16 @@ def to_1300(context):


def to_1400(context):
pass
old = api.portal.get_registry_record(
name="design.plone.policy.twitter_token"
)
context.runAllImportStepsFromProfile("profile-design.plone.policy:to_1400")
update_registry(context)

if old:
api.portal.set_registry_record(
"twitter_token", old, interface=IDesignPlonePolicySettings
)


def to_1500(context):
Expand Down Expand Up @@ -368,3 +379,35 @@ def to_3100(context):
logger.info("### Items that were not modified ###")
for i, path in enumerate(not_modified):
logger.info(f"[{i+1}/{len(not_modified)}] - {path}")


def to_3101(context):
def remove_twitter(blocks_orig):
blocks = deepcopy(blocks_orig)
for key, block in blocks.items():
if block.get("@type", "") == "twitter_posts":
del blocks[key]

return blocks

for brain in api.portal.get("portal_catalog")():
item = aq_base(brain.getObject())
for schema in iterSchemata(item):
for name, field in getFields(schema).items():
if name == "blocks":
item.blocks = remove_twitter(item.blocks)

elif isinstance(field, BlocksField):
value = deepcopy(field.get(item))
if not value:
continue
try:
blocks = value.get("blocks", {})
except AttributeError:
logger.warning(
"[BLOCK] - {} (not converted)".format(
brain.getURL()
)
)
if blocks:
item.blocks = remove_twitter(blocks)
10 changes: 10 additions & 0 deletions src/design/plone/policy/upgrades.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -181,4 +181,14 @@
handler=".upgrades.to_3100"
/>
</genericsetup:upgradeSteps>
<genericsetup:upgradeSteps
profile="design.plone.policy:default"
source="3100"
destination="3101"
>
<genericsetup:upgradeStep
title="Remove twitter blocks"
handler=".upgrades.to_3101"
/>
</genericsetup:upgradeSteps>
</configure>

0 comments on commit 4aa2586

Please sign in to comment.