A widget for composing a Query string/search.
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 )
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
- Fixed label for “Add Criteria” (missing id=”addindex”) [djay]
- Avoid TypeError: ‘NoneType’ object is not iterable when the query of the collection is still None, like is the case when adding one. [maurits]
- If we set background to ‘white’ we should set foreground to ‘black’ to avoid people getting white font on white background if they use white font color for their plone sites. [saily]
- Add handling of the RelativeDateWidget, already expected to exist in p.a.querystring. [tmog]
- Add jquery dateinput to dateWidget and dateRangeWidget. [tmog]
- Fixed context for getting ajax results [kroman0]
- Fixed conditional initialization of querywidget, see http://dev.plone.org/ticket/12529 [kroman0]
- The widget can now be hidden, when clicking on the window or the widget. The event is only effective when the widget is displayed. [bosim]
- Translations are now in Plone domain [bosim]
- Made the widget a bit more resistent to missing entries, i.e. vocabularies or in other way indexes. The problem occur if an option is deleted from the registry but not deleted from the collections in before hand. [bosim]
- Update import path for pagetemplate. Now only works with 4.1 and higher [do3cc]
- Move docs/HISTORY.txt to CHANGES.txt to apply to Plone conventions. [timo]
- Stop hardcoding the field name so it works with other field names and prefixes. [davisagli]
- Rename ArcheTypesQueryWidget to Querywidget to avoid confusion. [timo]
- Several JSLint fixes on querywidget.js [timo]
- Make sure the sorting settings are actually stored on the collection. [timo]
- Initial release. [ralphjacobs, kcleong, jbaumann, hannosch, timo]