Monday, December 4, 2017

I wrote a new table 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 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 lino.core.model.Model.show_in_site_search seems the most appropriate.

I started a new specs page search : Add search functionality.

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