From fbd95fb60e706ca127f2c0663630321b695a47f0 Mon Sep 17 00:00:00 2001 From: Andrea Cecchi Date: Wed, 10 Jan 2024 16:48:25 +0100 Subject: [PATCH] add upgrade-step --- wildcard/media/profiles.zcml | 9 +++- wildcard/media/profiles/default/metadata.xml | 2 +- wildcard/media/upgrades.py | 49 +++++++++++++++----- 3 files changed, 46 insertions(+), 14 deletions(-) diff --git a/wildcard/media/profiles.zcml b/wildcard/media/profiles.zcml index f47da38..ffdc210 100644 --- a/wildcard/media/profiles.zcml +++ b/wildcard/media/profiles.zcml @@ -88,5 +88,12 @@ sortkey="1" profile="wildcard.media:default" /> - + diff --git a/wildcard/media/profiles/default/metadata.xml b/wildcard/media/profiles/default/metadata.xml index 48cf589..07d0bfd 100644 --- a/wildcard/media/profiles/default/metadata.xml +++ b/wildcard/media/profiles/default/metadata.xml @@ -1,6 +1,6 @@ - 2003 + 3000 profile-plone.app.dexterity:default diff --git a/wildcard/media/upgrades.py b/wildcard/media/upgrades.py index fa43a95..b6cb34f 100644 --- a/wildcard/media/upgrades.py +++ b/wildcard/media/upgrades.py @@ -2,29 +2,30 @@ from Products.CMFPlone.utils import getFSVersionTuple from wildcard.media.settings import GlobalSettings +import logging -PROFILE_ID = 'profile-wildcard.media:default' -PROFILE_ID_PLONE4 = 'profile-wildcard.media:plone4' -PROFILE_ID_PLONE5 = 'profile-wildcard.media:plone5' +PROFILE_ID = "profile-wildcard.media:default" +PROFILE_ID_PLONE4 = "profile-wildcard.media:plone4" +PROFILE_ID_PLONE5 = "profile-wildcard.media:plone5" def upgrade_resources(context, logger=None): - setup = getToolByName(context, 'portal_setup') + setup = getToolByName(context, "portal_setup") if getFSVersionTuple()[0] == 4: - setup.runImportStepFromProfile(PROFILE_ID_PLONE4, 'cssregistry') - setup.runImportStepFromProfile(PROFILE_ID_PLONE4, 'jsregistry') + setup.runImportStepFromProfile(PROFILE_ID_PLONE4, "cssregistry") + setup.runImportStepFromProfile(PROFILE_ID_PLONE4, "jsregistry") else: - setup.runImportStepFromProfile(PROFILE_ID_PLONE5, 'plone.app.registry') + setup.runImportStepFromProfile(PROFILE_ID_PLONE5, "plone.app.registry") def upgrade_types(context, logger=None): - setup = getToolByName(context, 'portal_setup') - setup.runImportStepFromProfile(PROFILE_ID, 'typeinfo') + setup = getToolByName(context, "portal_setup") + setup.runImportStepFromProfile(PROFILE_ID, "typeinfo") def upgrade_registry(context, logger=None): - setup = getToolByName(context, 'portal_setup') - setup.runImportStepFromProfile(PROFILE_ID, 'plone.app.registry') + setup = getToolByName(context, "portal_setup") + setup.runImportStepFromProfile(PROFILE_ID, "plone.app.registry") def upgrade_to_2(context): @@ -33,7 +34,7 @@ def upgrade_to_2(context): def upgrade_to_2003(context): - portal = getToolByName(context, 'portal_url').getPortalObject() + portal = getToolByName(context, "portal_url").getPortalObject() settings = GlobalSettings(portal) # Apply old in/outfile options to each new format specific option old_outfileopt = settings.convert_outfile_options @@ -47,3 +48,27 @@ def upgrade_to_2003(context): settings.avconv_in_mp4 = old_infileopt settings.avconv_in_ogg = old_infileopt settings.avconv_in_webm = old_infileopt + + +def upgrade_to_3000(context, logger=None): + """We need to change the name for an attribute for video objects. + youtube_url now is video_url""" + + if logger is None: + # Called as upgrade step: define our own logger. + logger = logging.getLogger("wildcard.media") + + logger.info("Upgrading wildcard.media to version 3000") + + catalog = getToolByName(context, "portal_catalog") + brains = catalog(portal_type="WildcardVideo") + count = 0 + + for brain in brains: + video_obj = brain.getObject() + if getattr(video_obj, "youtube_url", ""): + video_obj.video_url = video_obj.youtube_url + video_obj.reindexObject() # reindexing + count += 1 + + logger.info("{} fields for WildcardVideo objects converted.".format(count))