def to50rc1(context): """5.0beta4 -> 5.0rc1""" loadMigrationProfile(context, 'profile-plone.app.upgrade.v50:to50rc1') portal = getSite() # install plone.app.linkintegrity and its dependencies qi = getToolByName(portal, 'portal_quickinstaller') if not qi.isProductInstalled('plone.app.linkintegrity'): qi.installProduct('plone.app.linkintegrity') migrate_linkintegrity_relations(portal) upgrade_usergroups_controlpanel_settings(context) migrate_displayPublicationDateInByline(context) # Migrate settings from portal_properties to the configuration registry pprop = getToolByName(portal, 'portal_properties') site_properties = pprop['site_properties'] if site_properties.hasProperty('icon_visibility'): registry = getUtility(IRegistry) settings = registry.forInterface(ISiteSchema, prefix='plone') value = site_properties.getProperty('icon_visibility', 'false') settings.icon_visiblity = value # These have been migrated in previous upgrade steps. Safe to remove. properties_to_remove = ['allowAnonymousViewAbout', 'available_editors', 'default_contenttype', 'default_language', 'default_editor', 'disable_folder_sections', 'disable_nonfolderish_sections', 'enable_inline_editing', 'enable_link_integrity_checks', 'enable_livesearch', 'enable_sitemap', 'enable_wf_state_filtering', 'exposeDCMetaTags', 'ext_editor', 'forbidden_contenttypes', 'icon_visibility', 'lock_on_ttw_edit', 'many_groups', 'many_users', 'number_of_days_to_keep', 'search_collapse_options', 'search_enable_batch_size', 'search_enable_description_search', 'search_review_state_for_anon', 'search_enable_sort_on', 'search_enable_title_search', 'types_not_searched', 'use_email_as_login', 'use_folder_contents', 'use_uuid_as_userid', 'user_registration_fields', 'visible_ids', 'webstats_js'] for p in properties_to_remove: if site_properties.hasProperty(p): site_properties._delProperty(p)
def test_upgrade(self): doc3 = self.portal['doc3'] doc1 = self.portal['doc1'] self.assertTrue(IReferenceable.providedBy(doc3)) doc3.setText('<a href="doc1">doc1</a>', mimetype='text/html') doc3.addReference(doc1, relationship=referencedRelationship) self.assertFalse(hasIncomingLinks(doc1)) self.assertFalse(hasIncomingLinks(doc3)) migrate_linkintegrity_relations(self.portal) self.assertTrue(hasIncomingLinks(doc1)) self.assertFalse(hasIncomingLinks(doc3))
def to50rc1(context): """5.0beta4 -> 5.0rc1""" loadMigrationProfile(context, 'profile-plone.app.upgrade.v50:to50rc1') portal = getSite() # install plone.app.linkintegrity and its dependencies qi = getToolByName(portal, 'portal_quickinstaller') if not qi.isProductInstalled('plone.app.linkintegrity'): qi.installProduct('plone.app.linkintegrity') migrate_linkintegrity_relations(portal) upgrade_usergroups_controlpanel_settings(context) migrate_displayPublicationDateInByline(context) # Migrate settings from portal_properties to the configuration registry pprop = getToolByName(portal, 'portal_properties') site_properties = pprop['site_properties'] if site_properties.hasProperty('icon_visibility'): registry = getUtility(IRegistry) settings = registry.forInterface(ISiteSchema, prefix='plone') value = site_properties.getProperty('icon_visibility', 'false') settings.icon_visiblity = value # These have been migrated in previous upgrade steps. Safe to remove. properties_to_remove = [ 'allowAnonymousViewAbout', 'available_editors', 'default_contenttype', 'default_language', 'default_editor', 'disable_folder_sections', 'disable_nonfolderish_sections', 'enable_inline_editing', 'enable_link_integrity_checks', 'enable_livesearch', 'enable_sitemap', 'enable_wf_state_filtering', 'exposeDCMetaTags', 'ext_editor', 'forbidden_contenttypes', 'icon_visibility', 'lock_on_ttw_edit', 'many_groups', 'many_users', 'number_of_days_to_keep', 'search_collapse_options', 'search_enable_batch_size', 'search_enable_description_search', 'search_review_state_for_anon', 'search_enable_sort_on', 'search_enable_title_search', 'types_not_searched', 'use_email_as_login', 'use_folder_contents', 'use_uuid_as_userid', 'user_registration_fields', 'visible_ids', 'webstats_js' ] for p in properties_to_remove: if site_properties.hasProperty(p): site_properties._delProperty(p)
def to50rc1(context): """5.0beta4 -> 5.0rc1""" loadMigrationProfile(context, 'profile-plone.app.upgrade.v50:to50rc1') portal = getSite() # install plone.app.linkintegrity and its dependencies try: from Products.CMFPlone.utils import get_installer except ImportError: # BBB For Plone 5.0 and lower. qi = getToolByName(portal, 'portal_quickinstaller') if not qi.isProductInstalled('plone.app.linkintegrity'): qi.installProduct('plone.app.linkintegrity') else: qi = get_installer(portal) if not qi.is_product_installed('plone.app.linkintegrity'): qi.install_product('plone.app.linkintegrity') # If Products.PortalTransforms is >= 3.0.1.dev0 it has the new safe_html. # Register and migrate the registry settings needed for it. # Linkintegrity calls the transform when retrieving links from html-fields. pt = pkg_resources.get_distribution('Products.PortalTransforms') if pt.version >= '3.0.1.dev0': from plone.app.upgrade.v51.betas import move_safe_html_settings_to_registry # noqa: E501 from Products.CMFPlone.interfaces import IFilterSchema registry = getUtility(IRegistry) registry.registerInterface(IFilterSchema, prefix='plone') move_safe_html_settings_to_registry(context) migrate_linkintegrity_relations(portal) upgrade_usergroups_controlpanel_settings(context) migrate_displayPublicationDateInByline(context) # Migrate settings from portal_properties to the configuration registry pprop = getToolByName(portal, 'portal_properties') site_properties = pprop['site_properties'] if site_properties.hasProperty('icon_visibility'): registry = getUtility(IRegistry) settings = registry.forInterface(ISiteSchema, prefix='plone') value = site_properties.getProperty('icon_visibility', 'false') settings.icon_visiblity = value # These have been migrated in previous upgrade steps. Safe to remove. properties_to_remove = [ 'allowAnonymousViewAbout', 'available_editors', 'default_contenttype', 'default_language', 'default_editor', 'disable_folder_sections', 'disable_nonfolderish_sections', 'enable_inline_editing', 'enable_link_integrity_checks', 'enable_livesearch', 'enable_sitemap', 'enable_wf_state_filtering', 'exposeDCMetaTags', 'ext_editor', 'forbidden_contenttypes', 'icon_visibility', 'lock_on_ttw_edit', 'many_groups', 'many_users', 'number_of_days_to_keep', 'search_collapse_options', 'search_enable_batch_size', 'search_enable_description_search', 'search_review_state_for_anon', 'search_enable_sort_on', 'search_enable_title_search', 'types_not_searched', 'use_email_as_login', 'use_folder_contents', 'use_uuid_as_userid', 'user_registration_fields', 'visible_ids', 'webstats_js' ] for p in properties_to_remove: if site_properties.hasProperty(p): site_properties._delProperty(p)
def to50rc1(context): """5.0beta4 -> 5.0rc1""" loadMigrationProfile(context, 'profile-plone.app.upgrade.v50:to50rc1') portal = getSite() # install plone.app.linkintegrity and its dependencies try: from Products.CMFPlone.utils import get_installer except ImportError: # BBB For Plone 5.0 and lower. qi = getToolByName(portal, 'portal_quickinstaller') if not qi.isProductInstalled('plone.app.linkintegrity'): qi.installProduct('plone.app.linkintegrity') else: qi = get_installer(portal) if not qi.is_product_installed('plone.app.linkintegrity'): qi.install_product('plone.app.linkintegrity') # If Products.PortalTransforms is >= 3.0.1.dev0 it has the new safe_html. # Register and migrate the registry settings needed for it. # Linkintegrity calls the transform when retrieving links from html-fields. pt = pkg_resources.get_distribution('Products.PortalTransforms') if pt.version >= '3.0.1.dev0': from plone.app.upgrade.v51.betas import move_safe_html_settings_to_registry # noqa: E501 from Products.CMFPlone.interfaces import IFilterSchema registry = getUtility(IRegistry) registry.registerInterface(IFilterSchema, prefix='plone') move_safe_html_settings_to_registry(context) migrate_linkintegrity_relations(portal) upgrade_usergroups_controlpanel_settings(context) migrate_displayPublicationDateInByline(context) # Migrate settings from portal_properties to the configuration registry pprop = getToolByName(portal, 'portal_properties') site_properties = pprop['site_properties'] if site_properties.hasProperty('icon_visibility'): registry = getUtility(IRegistry) settings = registry.forInterface(ISiteSchema, prefix='plone') value = site_properties.getProperty('icon_visibility', 'false') settings.icon_visiblity = value # These have been migrated in previous upgrade steps. Safe to remove. properties_to_remove = ['allowAnonymousViewAbout', 'available_editors', 'default_contenttype', 'default_language', 'default_editor', 'disable_folder_sections', 'disable_nonfolderish_sections', 'enable_inline_editing', 'enable_link_integrity_checks', 'enable_livesearch', 'enable_sitemap', 'enable_wf_state_filtering', 'exposeDCMetaTags', 'ext_editor', 'forbidden_contenttypes', 'icon_visibility', 'lock_on_ttw_edit', 'many_groups', 'many_users', 'number_of_days_to_keep', 'search_collapse_options', 'search_enable_batch_size', 'search_enable_description_search', 'search_review_state_for_anon', 'search_enable_sort_on', 'search_enable_title_search', 'types_not_searched', 'use_email_as_login', 'use_folder_contents', 'use_uuid_as_userid', 'user_registration_fields', 'visible_ids', 'webstats_js'] for p in properties_to_remove: if site_properties.hasProperty(p): site_properties._delProperty(p)