#75: Blacklisting contenttypes for quicksearch and searchform

Contents
  1. Motivation
  2. Proposal
  3. Implementation
  4. Deliverables
  5. Progress log
  6. Participants
by Alexander Limi last modified Jan 21, 2010 07:29 AM

Create a blacklist in Plone to exclude certain contenttypes from the quicksearch and from the searchform.

Proposed by
Alexander Limi
Seconded by
jjmurre
Proposal type
User interface
State
completed

Motivation

A good example for the use of the mentioned blacklist would be the Plone.org site.
When using the quicksearch, most of the search hits are coming from the issue collector, thus polluting the search result.
It would be convenient if the Collector Issue contenttype could be blacklisted.

Proposal

The catalog searches for the standard plone quicksearch and advanced search are in a skin script/template in the default Plone skin. These catalog searches should be changed is such a way that they use the blacklist to exclude certain content types.

Implementation

The blacklist of contenttypes can placed in a lines property of the portal_properties/site_properties or the portal_catalog tool.

Searching in Plone is provided by the following skin templates:

- search.pt (showing the results)
- search_form.pt
- global_search_box.pt

search.pt is not doing a direct call to portal_catalog, but uses the skin script 'queryCatalog'.

A new method in the portal_utils tool will be provided 'getUserFriendlyTypes' that is able to get
a list of all usable types (all types minus the blacklist). When provided with a typeList argument
containing a list of types, this list if filtered for blacklisted types.

The lines property should be named 'unfriendly_types'.

In this way maintenance through the ZMI is possible. However, this is quite error prone.

Better solution is a configlet where the blacklist can be maintained through 'point-and-click', but this can still use the same backend.

Deliverables

- QuickSearch integration
- Advanced Search integration
- LiveSearch integration

Progress log

Future extensions:

  • Make UI for selecting blacklisted types (integrate in a configlet for setting other type-specific properties, e.g. workflow, name, ...)

Participants

Martin Aspeli (helping to finish it off)