From 2a6a8ee8005b8cbe6dbb245980eb24cb7a06c828 Mon Sep 17 00:00:00 2001 From: Mikel Larreategi Date: Wed, 17 Jun 2026 16:27:44 +0200 Subject: [PATCH 1/7] fix: change icon to the new style icons --- src/plone/app/discussion/profiles/default/actions.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plone/app/discussion/profiles/default/actions.xml b/src/plone/app/discussion/profiles/default/actions.xml index 395f5e5e..995f443e 100644 --- a/src/plone/app/discussion/profiles/default/actions.xml +++ b/src/plone/app/discussion/profiles/default/actions.xml @@ -17,7 +17,7 @@ i18n:translate="" /> string:${globals_view/navigationRootUrl}/@@moderate-comments - string:${globals_view/navigationRootUrl}/discussionitem_icon.png + string:chat portal/@@moderate-comments-enabled|nothing From 94e6ce2a1aba7258641364077a275ec03909dee6 Mon Sep 17 00:00:00 2001 From: Mikel Larreategi Date: Wed, 17 Jun 2026 16:28:02 +0200 Subject: [PATCH 2/7] changelog --- news/+icon.bugfix | 1 + 1 file changed, 1 insertion(+) create mode 100644 news/+icon.bugfix diff --git a/news/+icon.bugfix b/news/+icon.bugfix new file mode 100644 index 00000000..13375649 --- /dev/null +++ b/news/+icon.bugfix @@ -0,0 +1 @@ +Use icon class name @erral From bd4c96fc856304dcab18dc798e361e0ecdfa5616 Mon Sep 17 00:00:00 2001 From: Mikel Larreategi Date: Fri, 3 Jul 2026 07:23:36 +0200 Subject: [PATCH 3/7] add upgrade step --- .../discussion/profiles/default/metadata.xml | 2 +- src/plone/app/discussion/upgrades.py | 37 +++++++++++++++++++ src/plone/app/discussion/upgrades.zcml | 14 +++++++ 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/src/plone/app/discussion/profiles/default/metadata.xml b/src/plone/app/discussion/profiles/default/metadata.xml index 15f3d34a..a610db26 100644 --- a/src/plone/app/discussion/profiles/default/metadata.xml +++ b/src/plone/app/discussion/profiles/default/metadata.xml @@ -1,6 +1,6 @@ - 3000 + 3001 profile-plone.resource:default profile-plone.app.registry:default diff --git a/src/plone/app/discussion/upgrades.py b/src/plone/app/discussion/upgrades.py index a60ef577..08e506cc 100644 --- a/src/plone/app/discussion/upgrades.py +++ b/src/plone/app/discussion/upgrades.py @@ -1,11 +1,13 @@ from .interfaces import IDiscussionSettings from .setuphandlers import add_discussion_behavior_to_default_types from datetime import timezone +from plone.base.utils import get_installer from plone.registry.interfaces import IRegistry from Products.CMFCore.utils import getToolByName from Products.ZCatalog.ProgressHandler import ZLogHandler from zope.component import getUtility + import logging default_profile = "profile-plone.app.discussion:default" @@ -119,3 +121,38 @@ def set_timezone_on_dates(context): def set_discussion_behavior(context): """Add the discussion behavior to all default types, if they exist.""" add_discussion_behavior_to_default_types(context) + + +def manage_comments_icon(context): + """if plone.app.discussion is installed, set the manage-comments action icon + expression from its default to the bootstrap based new-style icons + """ + + installer = get_installer(context) + if not installer.is_product_installed("plone.app.discussion"): + logger.info("plone.app.discussion is not installed. Nothing is done.") + return + + portal_actions = getToolByName(context, "portal_actions") + user_actions = getattr(portal_actions, "user", None) + if user_actions is None: + logger.info("There are no user actions. Nothing is done.") + return + + review_comments_action = getattr(user_actions, "review-comments", None) + if review_comments_action is None: + logger.info("There is no manage comments action. Nothing is done.") + return + + # Check whether the action keeps its original state + if ( + review_comments_action.icon_expr + != "string:${globals_view/navigationRootUrl}/discussionitem_icon.png" + ): + logger.info( + "Manage comments action icon was modified by the user. Nothing is done." + ) + return + + review_comments_action.icon_expr = "string:chat" + logger.info("Manage comments action icon modified") diff --git a/src/plone/app/discussion/upgrades.zcml b/src/plone/app/discussion/upgrades.zcml index 129b73ee..c51717da 100644 --- a/src/plone/app/discussion/upgrades.zcml +++ b/src/plone/app/discussion/upgrades.zcml @@ -132,4 +132,18 @@ /> + + + + + + + From 60db927fc67dbb4f46047daefdf79d0edd36aa56 Mon Sep 17 00:00:00 2001 From: Mikel Larreategi Date: Fri, 3 Jul 2026 07:30:02 +0200 Subject: [PATCH 4/7] format --- src/plone/app/discussion/upgrades.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/plone/app/discussion/upgrades.py b/src/plone/app/discussion/upgrades.py index 08e506cc..a3ef39eb 100644 --- a/src/plone/app/discussion/upgrades.py +++ b/src/plone/app/discussion/upgrades.py @@ -7,7 +7,6 @@ from Products.ZCatalog.ProgressHandler import ZLogHandler from zope.component import getUtility - import logging default_profile = "profile-plone.app.discussion:default" From 34b8a7df9c5a7649354374e936dfc66ff49cef3c Mon Sep 17 00:00:00 2001 From: Mikel Larreategi Date: Fri, 3 Jul 2026 07:35:28 +0200 Subject: [PATCH 5/7] fix ZCML --- src/plone/app/discussion/upgrades.zcml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plone/app/discussion/upgrades.zcml b/src/plone/app/discussion/upgrades.zcml index c51717da..801e64a7 100644 --- a/src/plone/app/discussion/upgrades.zcml +++ b/src/plone/app/discussion/upgrades.zcml @@ -133,17 +133,17 @@ - - - + From 86e3cfd34eaef233240fe704f9d53b9a89abd139 Mon Sep 17 00:00:00 2001 From: Mikel Larreategi Date: Mon, 6 Jul 2026 07:58:31 +0200 Subject: [PATCH 6/7] remove unneeded check of p.a.discussion being installed --- src/plone/app/discussion/upgrades.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/plone/app/discussion/upgrades.py b/src/plone/app/discussion/upgrades.py index a3ef39eb..620bf30b 100644 --- a/src/plone/app/discussion/upgrades.py +++ b/src/plone/app/discussion/upgrades.py @@ -127,11 +127,6 @@ def manage_comments_icon(context): expression from its default to the bootstrap based new-style icons """ - installer = get_installer(context) - if not installer.is_product_installed("plone.app.discussion"): - logger.info("plone.app.discussion is not installed. Nothing is done.") - return - portal_actions = getToolByName(context, "portal_actions") user_actions = getattr(portal_actions, "user", None) if user_actions is None: From e44baa1cfc5efb7f8ed8b780818c19bd63f3fe17 Mon Sep 17 00:00:00 2001 From: Mikel Larreategi Date: Mon, 6 Jul 2026 08:02:18 +0200 Subject: [PATCH 7/7] remove import --- src/plone/app/discussion/upgrades.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/plone/app/discussion/upgrades.py b/src/plone/app/discussion/upgrades.py index 620bf30b..432e45f3 100644 --- a/src/plone/app/discussion/upgrades.py +++ b/src/plone/app/discussion/upgrades.py @@ -1,7 +1,6 @@ from .interfaces import IDiscussionSettings from .setuphandlers import add_discussion_behavior_to_default_types from datetime import timezone -from plone.base.utils import get_installer from plone.registry.interfaces import IRegistry from Products.CMFCore.utils import getToolByName from Products.ZCatalog.ProgressHandler import ZLogHandler