Package: plone.app.querystring
OverviewThis package provides a queryparser, querybuilder and extra helper tools,
to parse stored queries to actual results, used in new style collections.
It includes a registry reader which reads operators, values and criteria
from the Plone registry.Compatibility with Plone versionsFor each Plone release, its versions.cfg file athttp://dist.plone.org/release/pins a version of plone.app.querystring
that works well with that Plone version.  It is wise not to pick
another version.But for clarity, these are the correct relationships between the two
versions:On Plone 4.2 use 1.0.x.On Plone 4.3 use 1.2.x.On Plone 5.0 use 1.3.x.Too new versions can cause problems.  For example, the 1.1.x and 1.2.x
series are intended for usage with Plone 4.3.  They depend on
plone.batching, which ships with Plone 4.3 but may causeproblemswith Plone 4.2.Changelog2.1.1 (2023-12-14)Bug fixes:Handle parenthesis inside quotes
[erral] (#139)2.1.0 (2023-09-21)New features:Add a way to specific a context for getting vocabularies in the QuerystringRegistryReader. @davisagli (#137)2.0.6 (2023-08-17)Bug fixes:Fix the currentUser operation when the current user’s username is different from their user id. @davisagli (#135)2.0.5 (2023-06-16)Bug fixes:Fix integer operations to accept integers. @davisagli
Fix integer operations to avoid adding None to the query when the input is not valid. @davisagli (#131)Merge range queries on the same index instead of overwriting. @davisagli (#132)Internal:Update configuration files.
[plone devs] (dd37b9f9)2.0.4 (2023-05-22)Bug fixes:Fix a circular transitive dependency toplone.app.querystring.
New direct dependency explicit onplone.app.vocabularies.
Moveplone.app.querystring.catalog.CatalogVocabularyFactoryto.vocabularies, move the ZCML to register the factory, move the the test.
Moveplone.app.querystring.utils.parse_querywith new nameparseAndModifyFormqueryto.queryparser.
[@jensens] (fix-circular-dep-pavocabularies)2.0.3 (2023-04-26)Bug fixes:Fix cyclic dependency, do not depend onplone.app.layout.
[@jensens] (rm-cyclic-dep)2.0.2 (2023-03-21)Bug fixes:Housecleaning: pyupgrade, isort, black, remove six, move imports from CMFPlone to plone.base, copy munge_search_terms from CMFPlone to here to avoid dependency on CMFPlone.
[jensens] (#119)Internal:Update configuration files.
[plone devs] (a533099d)2.0.1 (2022-12-21)Bug fixes:Minor cleanup on tests.
[gforcada] (#1)2.0.0 (2022-07-21)Bug fixes:Use function from Products.CMFPlone to handle cleaning of search terms. Fixes #111
[erral] (#111)1.6.0 (2022-05-26)New features:Add negation-query operators string.isNot and selection.none.
Newplone.app.querystring.operation.string.isNotandplone.app.querystring.operation.selection.noneincluding upgrade steps.
[thet] (#110)Bug fixes:Fix how to merge custom_query with parsedquery without overriding values. [cekk] (#103)1.5.0 (2022-02-04)New features:Add lazy attribute to vocabularies to prevent fetching any results
[reebalazs] (#104)1.4.15 (2021-09-15)Bug fixes:Remove cyclic dependency with plone.app.vocabularies
[sneridagh] (#101)1.4.14 (2020-07-17)Bug fixes:Fixing issue #97: Multiple path support for Translation Groups, using PATH_INDICES as suggested by jensens (#97)1.4.13 (2020-04-20)Bug fixes:Minor packaging updates. (#1)1.4.12 (2019-10-09)Bug fixes:Integer criterions: try to convert all input to integers.
Most notably this did not happen for unicode on Python 2.
So au"42"was passed as value to the catalog query, and this matched either all or nothing.
[maurits] (#93)1.4.11 (2018-12-10)Bug fixes:Do not show default profile as installable (already installed with core)
[jensens]1.4.10 (2018-10-31)Bug fixes:Fix query_index_modifiers and tests with py3
[pbauer, gforcada]1.4.9 (2018-09-28)Bug fixes:Fix a case, where objects id starts with roots id
[eikichi18]1.4.8 (2018-02-05)Bug fixes:Ignore unknownsort_onindexes when parsing a query.
Otherwise you get aCatalogError.  [maurits]Add Python 2 / 3 compatibility
[pbauer]1.4.7 (2017-11-25)Bug fixes:Fix tests with CMF 2.3. [davisagli]Fix querybuilder if SearchableText is a dict {‘query’: ‘…’}
[tomgross]1.4.6 (2017-09-08)Bug fixes:Filter query string from bad term and operator.
[nngu6036]1.4.5 (2017-06-20)Bug fixes:remove unittest2 dependency
[kakshay21]1.4.4 (2017-05-23)Bug fixes:Do not fail on empty empty or not existing querystrings while upgrading.
[agitator]1.4.3 (2017-02-12)Bug fixes:FixQueryBuilderwith empty queries to return a Batch when requested.
[thet]Disable “Subject” (“Tags”) as sortable index.
Keyword Indexes are not sortable.
[jensens]1.4.2 (2017-01-17)Bug fixes:Fix a case, where index modifiers with queries containinglargerThanRelativeDateorlessThanRelativeDatedate operators failed with anTypeError.
[thet]Import DateTimeError from DateTime.interfaces, class attribute
DateTime.DateTimeError was removed in DateTime 3.0
[vincentfretin]1.4.1 (2016-11-18)Bug fixes:Add coding header on python files.
[gforcada]1.4 (2016-08-18)New features:Refactor addition of criteria to stick insideINavigationRootin querybuilder.
Added a simpleIQueryModifierinterfaces expecting a query and returning a query.
Iterates over all sorted utilities providing such an interfaces and calls it right before the query is parsed.
Code to add theINavigationRootstickiness was moved to such a query modifier.
[jensens]Bug fixes:Use zope.interface decorator.
[gforcada]1.3.15 (2016-05-25)Fixes:Add missing _referenceIs query parser
[vangheem]1.3.14 (2016-02-19)Fixes:Set path to navigation root by default to have the same results
in Collection preview and view.
[Gagaro]1.3.13 (2016-02-14)New:Be able to parse more date string types
[vangheem]1.3.12 (2015-11-26)Fixes:Again upgrade collections withselection.istoselection.any, because the standard events and news collections
may have been wrongly created in a new site.
Issuehttps://github.com/plone/Products.CMFPlone/issues/1040[maurits]In tests, useselection.anyin querystrings.
Issuehttps://github.com/plone/Products.CMFPlone/issues/1040[maurits]Added upgrade step to replaceselection.iswithselection.anyoperations in querystrings also for objects using
the Collection behavior.
[thet]1.3.11 (2015-10-30)Fixes:Rerelease as something went wrong during upload of the package.
[maurits]1.3.10 (2015-10-30)Fixes:Added missing ‘,’ for subject upgrade.
[ezvirtual]1.3.9 (2015-10-30)Fixes:Fixed flake8 warnings.
[maurits]Updated compatibility information in README.
[maurits]Fixed resultview icons.https://github.com/plone/Products.CMFPlone/issues/1151[fgrcon]Added upgrade step to fix Subject index for existing collections.
[ezvirtual]1.3.8 (2015-09-21)Fixed problems introduced by merge.
[jensens]Add “before/after N days” functionality
[petschki]Fixed Sortable Indexes to not return ZCTextIndex type indexes.
[winstonf88]1.3.7 (2015-09-11)Fix vocabularies sorting
[ebrehault]1.3.6 (2015-08-24)Fix migration from Plone 4 to Plone 5.
[pbauer]1.3.5 (2015-08-22)Creator criteria: pur currentUser on top.
[mvanrees]Migrate Creator string.is to selection.any.
[mvanrees]add user vocabulary to plone.app.querystring.field.Creator.
[vangheem]do not need “is” when there is an “any” operator.
[vangheem]1.3.4 (2015-08-21)Hide upgrade-profiles when creating a new site.
[pbauer]Replace selection.is with selection.any for portal_types and review_state
operations, and add selection.any for Creator operation.
[frapell]Actually convert the value to a datetime for the DateIndex query modifier.
[frapell]Do not fail if the ‘Between’ operation is called with an empty value, and
instead return a list with 2 empty values.
[frapell]Fixed possible problem withcustom_queryparameter where
theoretically a second invocation could inadvertently be using the
value from the first invocation.
[maurits]1.3.3 (2015-07-18)Fix getObjPositionInParent be sortable by default
[datakurre]Add operators selection.any and selection.all to Subject.
[MrTango]1.3.2 (2015-05-04)Implementis,lessThanandlargerThanoperators for integer fields (fixes#32).
[rodfersou]1.3.1 (2015-03-12)No need to install plone.app.querystring as z2 products in tests.
[timo]Fix path-queries using UID.
[pbauer]1.3 (2015-01-22)Path criteria can be defined either absolute toIPloneSiteRoot, absolute
toINavigationRootor relative to current context.
[rnixx]Relative path parent breaks onIPloneSiteRootrather thanINavigationRoot.
[rnixx]1.2.3 (2014-10-20)Fixed build DateIndex query.
[kroman0]1.2.2 (2014-08-05)Fix wrong query field vocabulary declaration of the show_inactive field fromAllRolestoRoles.
[thet]Add acustom_queryparameter to theQueryBuilder._makequerymethod,
which allows for run time customization of the stored query, e.g. by request
parameters.
[thet]Added support for depth in relativePath operator.
[djay]1.2.1 (2014-05-14)Fixed upgrade_1_to_2 upgrade step in case the registry doesn’t contain the
named value
[ichim-david]Added show inactive operation which uses the roles vocabulary in order
to assign permission to show or hide the inactive objects of the given query
[ichim-david]Migrate tests to plone.app.testing.
[sdelcourt]Fix querybuilder code if results object does not provide an
actual_result_count attribute. This regression has been introduced in
release 1.1.1 (fixed broken handling of limit and batch size).
[timo]1.2.0 (2014-04-05)bugfix for #22: Names not matching for operations getObjPositionInParent
plus test
[jensens]Implement multipath queries:
- Parsing a path returns always a list.
- Special handling for paths in parseFormquery.
[maethu]Fixeshttps://dev.plone.org/ticket/13251[mathias.leimgruber]querybuilder results can now be manipulated usingIParsedQueryIndexModifiernamed utilities.
[keul]1.1.1 (2014-01-27)fixed broken handling of limit and batch size.
[bosim]pep8 fixes
[bosim]1.1.0 (2013-11-14)be able to include a depth value onto path query string
[vangheem]Use plone.batching.
[khink]1.0.8 (2013-03-14)Fix UnicodeDecodeError on utf8-encoded Subject strings.
[tisto]1.0.7 (2013-01-01)getVocabularyValues now checks if the vocabulary utility is missing,
if it is the utility is just ignored. This makes the module tollarant to
missing vocabulary utilities.
[bosim]1.0.6 (2012-10-03)_relativePath handler can now walk through the site structure (not only upwards)
_path handler respects absolute paths without leading nav_root path
[petschki]1.0.5 (2012-06-29)Date ranges now use the _betweenDates handler, which is much more forgiving
of empty field values, defaulting to an all-encompassing date range if neither
value is provided, an “everything after” range if only the start date is
provided, and a min/max range if both are provided.Fixeshttp://dev.plone.org/ticket/12965[esteele]1.0.4 (2012-05-07)Fixed i18n of “Before today” operator and
“x items matching your search terms.”.
[vincentfretin]1.0.3 (2012-04-15)Add an optional ‘brains’ parameter to the query builder to obtain
results not wrapped as an IContentListing.
[davisagli]Declare all dependencies in setup.py to resolve a dependency problem in
test setups, where the Plone stack isn’t fully loaded.
[thet]Add a “today” date operator
[esteele]Internationalize strings in the registry.
[davisagli]Change relative date searching to be “N days” string based rather than
datetime based.
[esteele]Handle empty values on relative date fields.
[esteele]1.0.2 (2012-02-10)Change the Creator field to use the correct query operation for filtering
on the current logged in user.
This fixeshttps://dev.plone.org/ticket/12052[jcerjak]Limit number of items that show up in the preview of the edit view to 25.
If we do not limit these results all items in the query will be rendered in
the preview which leads to problems when the collection contains > 10k
results.
[timo]1.0.1 (2011-10-17)Ensure inactive content is only shown to users with the appropriate
permission.1.0 (2011-07-19)Initial release