From 8e13a20ccc01df2248f3b6ac3b7e76c06a0b7ca8 Mon Sep 17 00:00:00 2001 From: Jon Pentland Date: Wed, 8 May 2024 10:57:50 +0100 Subject: [PATCH 1/3] Create string search operator --- plone/app/querystring/profiles/default/registry.xml | 8 ++++++++ plone/app/querystring/querybuilder.py | 5 ++++- plone/app/querystring/queryparser.py | 3 +++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/plone/app/querystring/profiles/default/registry.xml b/plone/app/querystring/profiles/default/registry.xml index 24b3873..004db5e 100644 --- a/plone/app/querystring/profiles/default/registry.xml +++ b/plone/app/querystring/profiles/default/registry.xml @@ -242,6 +242,14 @@ plone.app.querystring.queryparser._contains StringWidget + + + Search + + plone.app.querystring.queryparser._search + StringWidget + Date: Wed, 22 May 2024 09:57:50 +0100 Subject: [PATCH 2/3] Create registry entries and upgrade step --- plone/app/querystring/profiles.zcml | 8 +++++++ .../querystring/profiles/default/metadata.xml | 2 +- .../querystring/profiles/default/registry.xml | 1 + .../profiles/upgrades/to_15/registry.xml | 23 +++++++++++++++++++ plone/app/querystring/upgrades.zcml | 10 ++++++++ 5 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 plone/app/querystring/profiles/upgrades/to_15/registry.xml diff --git a/plone/app/querystring/profiles.zcml b/plone/app/querystring/profiles.zcml index f042058..9964d90 100644 --- a/plone/app/querystring/profiles.zcml +++ b/plone/app/querystring/profiles.zcml @@ -90,4 +90,12 @@ directory="profiles/upgrades/to_14" /> + + diff --git a/plone/app/querystring/profiles/default/metadata.xml b/plone/app/querystring/profiles/default/metadata.xml index 3949c2a..c8b58bc 100644 --- a/plone/app/querystring/profiles/default/metadata.xml +++ b/plone/app/querystring/profiles/default/metadata.xml @@ -1,6 +1,6 @@ - 14 + 15 profile-plone.app.registry:default diff --git a/plone/app/querystring/profiles/default/registry.xml b/plone/app/querystring/profiles/default/registry.xml index 004db5e..a3dd76a 100644 --- a/plone/app/querystring/profiles/default/registry.xml +++ b/plone/app/querystring/profiles/default/registry.xml @@ -803,6 +803,7 @@ False plone.app.querystring.operation.string.contains + plone.app.querystring.operation.string.search + + + Search + + plone.app.querystring.queryparser._search + StringWidget + + + + + plone.app.querystring.operation.string.search + + + diff --git a/plone/app/querystring/upgrades.zcml b/plone/app/querystring/upgrades.zcml index 07c2e23..1763c03 100644 --- a/plone/app/querystring/upgrades.zcml +++ b/plone/app/querystring/upgrades.zcml @@ -157,6 +157,16 @@ title="Add new 'string.isNot' and 'selection.none' query operators." import_profile="plone.app.querystring:upgrade_to_14" /> + + + From 94c386bf921b52244cb419bb218b13c5c1442db6 Mon Sep 17 00:00:00 2001 From: Jon Pentland Date: Wed, 22 May 2024 10:03:04 +0100 Subject: [PATCH 3/3] Remove operator key from dict when used --- plone/app/querystring/querybuilder.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plone/app/querystring/querybuilder.py b/plone/app/querystring/querybuilder.py index 75ac0f9..7401ca5 100644 --- a/plone/app/querystring/querybuilder.py +++ b/plone/app/querystring/querybuilder.py @@ -265,6 +265,8 @@ def filter_query(self, query): if isinstance(text, dict): if text.get("operator", "") == "search": munge = False + # catalog searches don't accept the operator key so remove it + del text["operator"] text = text.get("query", "") if text and munge: query["SearchableText"] = self.munge_search_term(text)