A z3c.form-based widget for composing a Query string/search.
This widget is used by the contentlisting tile and the dexterity-based version of plone.app.collection (>2.0), to make selections, and 'build' your query. It stores a list of dictionaries containing the query you've build. This query is being parsed by using plone.app.collection and that used plone.app.contentlisting to display the results in the tile.
If you install plone.formwidget.querystring, you probably want to use it in an add-on product for Plone. Therefore you can add it to the setup.py of your package:
install_requires=[
'plone.formwidget.querystring',
...
],
You probably want to also use it to the list of dependencies in your generic setup profile (profiles/default/metadata.xml):
<metadata>
<version>1</version>
<dependencies>
<dependency>profile-plone.formwidget.querystring:default</dependency>
</dependencies>
</metadata>
To assign the plone.formwidget.querystring widget to a field in your custom content type, you can use a plone.autoform directive in the interfaces definition (interfaces.py):
from plone.formwidget.querystring.widget import QueryStringFieldWidget
class IMyDexteritySchema(form.Schema):
form.widget(query=QueryStringFieldWidget)
query = schema.List(
title=_(u'label_query', default=u'Search terms'),
description=_(u"""Define the search terms for the items you want to
list by choosing what to match on.
The list of results will be dynamically updated"""),
value_type=schema.Dict(value_type=schema.Field(),
key_type=schema.TextLine()),
required=False
)
Note
See:: See https://github.com/plone/plone.app.collection/blob/master/plone/app/collection/interfaces.py#L16 and https://github.com/plone/plone.app.contentlistingtile/blob/master/plone/app/contentlistingtile/tile.py#L18 for further examples of how to use plone.formwidget.querystring.
- Kim Chee Leong
- Ralph Jacobs
- Jonas Baumann
- Hanno Schlichting
- Timo Stollenwerk