: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'])