From 2d62cb7b597993bb7fab49829c1bf1af2a5537d6 Mon Sep 17 00:00:00 2001 From: "Jens W. Klein" Date: Sun, 12 Mar 2023 13:56:14 +0100 Subject: [PATCH 1/2] Deprecate BBB controlpaneladapter. --- src/Products/CMFPlone/controlpanel/bbb/editing.py | 9 +++++++++ src/Products/CMFPlone/controlpanel/bbb/filter.py | 9 +++++++++ src/Products/CMFPlone/controlpanel/bbb/language.py | 9 +++++++++ src/Products/CMFPlone/controlpanel/bbb/mail.py | 9 +++++++++ src/Products/CMFPlone/controlpanel/bbb/maintenance.py | 9 +++++++++ src/Products/CMFPlone/controlpanel/bbb/markup.py | 9 +++++++++ src/Products/CMFPlone/controlpanel/bbb/navigation.py | 8 ++++++++ src/Products/CMFPlone/controlpanel/bbb/search.py | 9 +++++++++ src/Products/CMFPlone/controlpanel/bbb/security.py | 9 +++++++++ src/Products/CMFPlone/controlpanel/bbb/site.py | 9 +++++++++ src/Products/CMFPlone/controlpanel/bbb/usergroups.py | 9 +++++++++ 11 files changed, 98 insertions(+) diff --git a/src/Products/CMFPlone/controlpanel/bbb/editing.py b/src/Products/CMFPlone/controlpanel/bbb/editing.py index 7b17529be7..d3c94104f6 100644 --- a/src/Products/CMFPlone/controlpanel/bbb/editing.py +++ b/src/Products/CMFPlone/controlpanel/bbb/editing.py @@ -5,11 +5,20 @@ from zope.component import getUtility from zope.interface import implementer +import warnings + @adapter(IPloneSiteRoot) @implementer(IEditingSchema) class EditingControlPanelAdapter: def __init__(self, context): + warnings.warn( + f"Usage of bbb controlpanel '{self.__class__.__name__}' is deprecated. " + "Use registry.forInterface(plone.base.interfaces.IEditingSchema, prefix='plone') instead. " + "It will be removed in Plone 7.", + DeprecationWarning, + stacklevel=2, + ) registry = getUtility(IRegistry) self.settings = registry.forInterface(IEditingSchema, prefix="plone") diff --git a/src/Products/CMFPlone/controlpanel/bbb/filter.py b/src/Products/CMFPlone/controlpanel/bbb/filter.py index 8dbcd2d526..e2d1a016bc 100644 --- a/src/Products/CMFPlone/controlpanel/bbb/filter.py +++ b/src/Products/CMFPlone/controlpanel/bbb/filter.py @@ -5,11 +5,20 @@ from zope.component import getUtility from zope.interface import implementer +import warnings + @adapter(IPloneSiteRoot) @implementer(IFilterSchema) class FilterControlPanelAdapter: def __init__(self, context): + warnings.warn( + f"Usage of bbb controlpanel '{self.__class__.__name__}' is deprecated. " + "Use registry.forInterface(plone.base.interfaces.IFilterSchema, prefix='plone') instead. " + "It will be removed in Plone 7.", + DeprecationWarning, + stacklevel=2, + ) registry = getUtility(IRegistry) self.settings = registry.forInterface(IFilterSchema, prefix="plone") diff --git a/src/Products/CMFPlone/controlpanel/bbb/language.py b/src/Products/CMFPlone/controlpanel/bbb/language.py index 55e7aa61d1..371c930fe2 100644 --- a/src/Products/CMFPlone/controlpanel/bbb/language.py +++ b/src/Products/CMFPlone/controlpanel/bbb/language.py @@ -5,11 +5,20 @@ from zope.component import getUtility from zope.interface import implementer +import warnings + @adapter(IPloneSiteRoot) @implementer(ILanguageSchema) class LanguageControlPanelAdapter: def __init__(self, context): + warnings.warn( + f"Usage of bbb controlpanel '{self.__class__.__name__}' is deprecated. " + "Use registry.forInterface(plone.base.interfaces.ILanguageSchema, prefix='plone') instead. " + "It will be removed in Plone 7.", + DeprecationWarning, + stacklevel=2, + ) self.context = context registry = getUtility(IRegistry) self.settings = registry.forInterface(ILanguageSchema, prefix="plone") diff --git a/src/Products/CMFPlone/controlpanel/bbb/mail.py b/src/Products/CMFPlone/controlpanel/bbb/mail.py index 1fb5a3a918..71c2edd52e 100644 --- a/src/Products/CMFPlone/controlpanel/bbb/mail.py +++ b/src/Products/CMFPlone/controlpanel/bbb/mail.py @@ -7,11 +7,20 @@ from zope.component.hooks import getSite from zope.interface import implementer +import warnings + @adapter(IPloneSiteRoot) @implementer(IMailSchema) class MailControlPanelAdapter: def __init__(self, context): + warnings.warn( + f"Usage of bbb controlpanel '{self.__class__.__name__}' is deprecated. " + "Use registry.forInterface(plone.base.interfaces.IMailSchema, prefix='plone') instead. " + "It will be removed in Plone 7.", + DeprecationWarning, + stacklevel=2, + ) self.context = context self.portal = getSite() registry = getUtility(IRegistry) diff --git a/src/Products/CMFPlone/controlpanel/bbb/maintenance.py b/src/Products/CMFPlone/controlpanel/bbb/maintenance.py index 62e559e885..0436fed909 100644 --- a/src/Products/CMFPlone/controlpanel/bbb/maintenance.py +++ b/src/Products/CMFPlone/controlpanel/bbb/maintenance.py @@ -5,11 +5,20 @@ from zope.component import getUtility from zope.interface import implementer +import warnings + @adapter(IPloneSiteRoot) @implementer(IMaintenanceSchema) class MaintenanceControlPanelAdapter: def __init__(self, context): + warnings.warn( + f"Usage of bbb controlpanel '{self.__class__.__name__}' is deprecated. " + "Use registry.forInterface(plone.base.interfaces.IMaintenanceSchema, prefix='plone') instead. " + "It will be removed in Plone 7.", + DeprecationWarning, + stacklevel=2, + ) self.context = context registry = getUtility(IRegistry) self.maintenance_settings = registry.forInterface( diff --git a/src/Products/CMFPlone/controlpanel/bbb/markup.py b/src/Products/CMFPlone/controlpanel/bbb/markup.py index 3c85dec85e..1cd3c08626 100644 --- a/src/Products/CMFPlone/controlpanel/bbb/markup.py +++ b/src/Products/CMFPlone/controlpanel/bbb/markup.py @@ -5,11 +5,20 @@ from zope.component import getUtility from zope.interface import implementer +import warnings + @adapter(IPloneSiteRoot) @implementer(IMarkupSchema) class MarkupControlPanelAdapter: def __init__(self, context): + warnings.warn( + f"Usage of bbb controlpanel '{self.__class__.__name__}' is deprecated. " + "Use registry.forInterface(plone.base.interfaces.IMarkupSchema, prefix='plone') instead. " + "It will be removed in Plone 7.", + DeprecationWarning, + stacklevel=2, + ) registry = getUtility(IRegistry) self.settings = registry.forInterface(IMarkupSchema, prefix="plone") diff --git a/src/Products/CMFPlone/controlpanel/bbb/navigation.py b/src/Products/CMFPlone/controlpanel/bbb/navigation.py index f6ed1860c9..d5e4120be8 100644 --- a/src/Products/CMFPlone/controlpanel/bbb/navigation.py +++ b/src/Products/CMFPlone/controlpanel/bbb/navigation.py @@ -5,11 +5,19 @@ from zope.component import getUtility from zope.interface import implementer +import warnings + @adapter(IPloneSiteRoot) @implementer(INavigationSchema) class NavigationControlPanelAdapter: def __init__(self, context): + warnings.warn( + f"Usage of bbb controlpanel '{self.__class__.__name__}' is deprecated." + "Use registry record plone.base.interfaces.INavigationSchema instead." + "It will be removed in Plone 6.1", + DeprecationWarning, + ) self.context = context registry = getUtility(IRegistry) self.navigation_settings = registry.forInterface( diff --git a/src/Products/CMFPlone/controlpanel/bbb/search.py b/src/Products/CMFPlone/controlpanel/bbb/search.py index 3c2d3f394e..826de6f84b 100644 --- a/src/Products/CMFPlone/controlpanel/bbb/search.py +++ b/src/Products/CMFPlone/controlpanel/bbb/search.py @@ -6,11 +6,20 @@ from zope.component.hooks import getSite from zope.interface import implementer +import warnings + @adapter(IPloneSiteRoot) @implementer(ISearchSchema) class SearchControlPanelAdapter: def __init__(self, context): + warnings.warn( + f"Usage of bbb controlpanel '{self.__class__.__name__}' is deprecated. " + "Use registry.forInterface(plone.base.interfaces.ISearchSchema, prefix='plone') instead. " + "It will be removed in Plone 7.", + DeprecationWarning, + stacklevel=2, + ) self.portal = getSite() registry = getUtility(IRegistry) self.search_settings = registry.forInterface(ISearchSchema, prefix="plone") diff --git a/src/Products/CMFPlone/controlpanel/bbb/security.py b/src/Products/CMFPlone/controlpanel/bbb/security.py index f5d36aa0c4..8497f0c52f 100644 --- a/src/Products/CMFPlone/controlpanel/bbb/security.py +++ b/src/Products/CMFPlone/controlpanel/bbb/security.py @@ -7,11 +7,20 @@ from zope.component.hooks import getSite from zope.interface import implementer +import warnings + @adapter(IPloneSiteRoot) @implementer(ISecuritySchema) class SecurityControlPanelAdapter: def __init__(self, context): + warnings.warn( + f"Usage of bbb controlpanel '{self.__class__.__name__}' is deprecated. " + "Use registry.forInterface(plone.base.interfaces.ISecuritySchema, prefix='plone') instead. " + "It will be removed in Plone 7.", + DeprecationWarning, + stacklevel=2, + ) self.portal = getSite() self.pmembership = getToolByName(context, "portal_membership") registry = getUtility(IRegistry) diff --git a/src/Products/CMFPlone/controlpanel/bbb/site.py b/src/Products/CMFPlone/controlpanel/bbb/site.py index 638386d5f6..edce4ec15e 100644 --- a/src/Products/CMFPlone/controlpanel/bbb/site.py +++ b/src/Products/CMFPlone/controlpanel/bbb/site.py @@ -6,11 +6,20 @@ from zope.interface import implementer from zope.schema.fieldproperty import FieldProperty +import warnings + @adapter(IPloneSiteRoot) @implementer(ISiteSchema) class SiteControlPanelAdapter: def __init__(self, context): + warnings.warn( + f"Usage of bbb controlpanel '{self.__class__.__name__}' is deprecated. " + "Use registry.forInterface(plone.base.interfaces.ISiteSchema, prefix='plone') instead. " + "It will be removed in Plone 7.", + DeprecationWarning, + stacklevel=2, + ) registry = getUtility(IRegistry) self.settings = registry.forInterface(ISiteSchema, prefix="plone") diff --git a/src/Products/CMFPlone/controlpanel/bbb/usergroups.py b/src/Products/CMFPlone/controlpanel/bbb/usergroups.py index 2cffa8ca00..3642b3c15b 100644 --- a/src/Products/CMFPlone/controlpanel/bbb/usergroups.py +++ b/src/Products/CMFPlone/controlpanel/bbb/usergroups.py @@ -6,11 +6,20 @@ from zope.component.hooks import getSite from zope.interface import implementer +import warnings + @adapter(IPloneSiteRoot) @implementer(IUserGroupsSettingsSchema) class UserGroupsSettingsControlPanelAdapter: def __init__(self, context): + warnings.warn( + f"Usage of bbb controlpanel '{self.__class__.__name__}' is deprecated. " + "Use registry.forInterface(plone.base.interfaces.IUserGroupsSettingsSchema, prefix='plone') instead. " + "It will be removed in Plone 7.", + DeprecationWarning, + stacklevel=2, + ) self.context = context self.portal = getSite() registry = getUtility(IRegistry) From 1c9fa280b4a57dbac0f22d2d9c5f89e6b2a24477 Mon Sep 17 00:00:00 2001 From: "Jens W. Klein" Date: Mon, 30 Mar 2026 01:36:15 +0200 Subject: [PATCH 2/2] Add towncrier news fragment for #1050 --- news/1050.internal.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 news/1050.internal.md diff --git a/news/1050.internal.md b/news/1050.internal.md new file mode 100644 index 0000000000..6a44e73d04 --- /dev/null +++ b/news/1050.internal.md @@ -0,0 +1,3 @@ +Add deprecation warnings to all BBB controlpanel adapters. +Use ``registry.forInterface(ISchema, prefix="plone")`` instead. +@jensens