mirror of
https://github.com/simonw/datasette.git
synced 2025-12-10 16:51:24 +01:00
Datasette previously only supported one type of faceting: exact column value counting. With this change, faceting logic is extracted out into one or more separate classes which can implement other patterns of faceting - this is discussed in #427, but potential upcoming facet types include facet-by-date, facet-by-JSON-array, facet-by-many-2-many and more. A new plugin hook, register_facet_classes, can be used by plugins to add in additional facet classes. Each class must implement two methods: suggest(), which scans columns in the table to decide if they might be worth suggesting for faceting, and facet_results(), which executes the facet operation and returns results ready to be displayed in the UI.
This commit is contained in:
parent
efc93b8ab5
commit
ea66c45df9
10 changed files with 600 additions and 132 deletions
|
|
@ -3,7 +3,11 @@ import pluggy
|
|||
import sys
|
||||
from . import hookspecs
|
||||
|
||||
DEFAULT_PLUGINS = ("datasette.publish.heroku", "datasette.publish.now")
|
||||
DEFAULT_PLUGINS = (
|
||||
"datasette.publish.heroku",
|
||||
"datasette.publish.now",
|
||||
"datasette.facets",
|
||||
)
|
||||
|
||||
pm = pluggy.PluginManager("datasette")
|
||||
pm.add_hookspecs(hookspecs)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue