From 5598021094d0ac069639c8e17324859841b75387 Mon Sep 17 00:00:00 2001 From: ale-rt Date: Wed, 27 May 2026 16:50:07 +0200 Subject: [PATCH] Minimize the changes from the original code Add deprecations Refs. https://github.com/plone/plone.app.linkintegrity/pull/106 --- .meta.toml | 3 +++ pyproject.toml | 1 + src/plone/app/linkintegrity/__init__.py | 13 ++++++++++ src/plone/app/linkintegrity/browser/info.py | 28 +++++++++++++++++---- src/plone/app/linkintegrity/configure.zcml | 12 +++++++++ 5 files changed, 52 insertions(+), 5 deletions(-) diff --git a/.meta.toml b/.meta.toml index 28cf099..8016d6e 100644 --- a/.meta.toml +++ b/.meta.toml @@ -7,3 +7,6 @@ commit-id = "2.8.1.dev0" [tox] test_matrix = {"6.2" = ["*"]} + +[pyproject] +dependencies_ignores = "['z3c.jbot']" diff --git a/pyproject.toml b/pyproject.toml index d6d4b32..3ab6c9a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -122,6 +122,7 @@ Zope = [ ] python-dateutil = ['dateutil'] pytest-plone = ['pytest', 'zope.pytestlayer', 'plone.testing', 'plone.app.testing'] +ignore-packages = ['z3c.jbot'] ## # Add extra configuration options in .meta.toml: diff --git a/src/plone/app/linkintegrity/__init__.py b/src/plone/app/linkintegrity/__init__.py index e69de29..4342339 100644 --- a/src/plone/app/linkintegrity/__init__.py +++ b/src/plone/app/linkintegrity/__init__.py @@ -0,0 +1,13 @@ +import zope.deferredimport + +zope.deferredimport.initialize() + + +jbot_deprecations = { + "plone.app.linkintegrity.browser.delete_confirmation_info.pt": "plone.app.layout.controlpanels.templates.linkintegrity_delete_confirmation_info.pt", # noqa: E501 + "plone.app.linkintegrity.browser.update.pt": "plone.app.layout.controlpanels.templates.linkintegrity_update.pt", # noqa: E501 +} +zope.deferredimport.deprecated( + "Please use from plone.app.layout.controlpanels.linkintegrity import UpdateView", # noqa: E501 + UpdateView="plone.app.layout:controlpanels.linkintegrity.UpdateView", +) diff --git a/src/plone/app/linkintegrity/browser/info.py b/src/plone/app/linkintegrity/browser/info.py index 73fe0c7..8ae44c5 100644 --- a/src/plone/app/linkintegrity/browser/info.py +++ b/src/plone/app/linkintegrity/browser/info.py @@ -1,6 +1,9 @@ from Acquisition import aq_inner from OFS.interfaces import IFolder from plone.app.linkintegrity.utils import getIncomingLinks +from plone.app.linkintegrity.utils import linkintegrity_enabled +from plone.base import PloneMessageFactory as _ +from plone.base.interfaces import IPloneSiteRoot from plone.uuid.interfaces import IUUID from Products.CMFCore.permissions import AccessContentsInformation from Products.CMFCore.utils import _checkPermission @@ -16,13 +19,25 @@ class DeleteConfirmationInfo(BrowserView): template = None + breach_count = {} + + def __init__(self, context, request): + self.linkintegrity_enabled = linkintegrity_enabled() + self.context = context + self.request = request def __call__(self, items=None): - # Base implementation returns an empty string so the view is safe - # to call from templates (plone.app.content) even when - # plone.app.layout is not installed (e.g. Volto / API-only setups). - # plone.app.layout registers an IPloneAppLayoutLayer-scoped override - # that renders the full HTML confirmation snippet. + if not self.linkintegrity_enabled: + return + if items is None: + if IPloneSiteRoot.providedBy(self.context): + # Checking the portal for breaches makes no sense. + return + else: + items = [self.context] + self.breaches = self.get_breaches(items) + if self.template: + return self.template() return "" def get_breaches(self, items=None): @@ -164,3 +179,6 @@ def get_portal_type_title(self, obj): def is_accessible(self, obj): return _checkPermission(AccessContentsInformation, obj) + + def objects(self): + return [_("Objects in all"), _("Folders"), _("Published objects")] diff --git a/src/plone/app/linkintegrity/configure.zcml b/src/plone/app/linkintegrity/configure.zcml index e3fa781..566b4c2 100644 --- a/src/plone/app/linkintegrity/configure.zcml +++ b/src/plone/app/linkintegrity/configure.zcml @@ -2,6 +2,7 @@ xmlns="http://namespaces.zope.org/zope" xmlns:browser="http://namespaces.zope.org/browser" xmlns:genericsetup="http://namespaces.zope.org/genericsetup" + xmlns:zcml="http://namespaces.zope.org/zcml" > @@ -11,6 +12,17 @@ file="permissions.zcml" /> + + + +