:date: 2017-12-04

========================
Monday, December 4, 2017
========================

I wrote a new table :class:`lino.modlib.about.SiteSearch`. Works as
expected (though I expect performance issues on a normal production
site, but these will have to be coped independently of the site-wide
search anyway).  About the API: I tried a model mixin
:class:`Searchable` but that seems overkill. Should we require app
developers to explicitly register every model?  No, rather register
all models by default. But then we must give some possibility for
removing (or not registering) a model. A new model class attribute
:attr:`lino.core.model.Model.show_in_site_search` seems the most
appropriate.

I started a new specs page :ref:`dg.plugins.search`.      

Aha, a little bug: the ledger.MatchRule model has no char field at
all, and Lino currently returns always all objects for this model,
independently of the search text.

It is time to review the API for specifying custom quick_search
behaviour.

>>> from lino import startup
>>> startup('lino_extjs6.projects.team6.settings.demo')
>>> from lino.api.doctest import *
>>> rt.models.tickets.Ticket.quick_search_fields
frozenset(['ref', 'description', 'summary'])
>>> rt.models.tickets.Ticket.quick_search_fields_digit
frozenset([u'id'])