mirror of
https://github.com/simonw/datasette.git
synced 2025-12-10 16:51:24 +01:00
?_facet_size=100 parameter, closes #1332
This commit is contained in:
parent
5e9672c9bb
commit
9789b94da4
5 changed files with 73 additions and 4 deletions
|
|
@ -101,6 +101,14 @@ class Facet:
|
|||
# [('_foo', 'bar'), ('_foo', '2'), ('empty', '')]
|
||||
return urllib.parse.parse_qsl(self.request.query_string, keep_blank_values=True)
|
||||
|
||||
def get_facet_size(self):
|
||||
facet_size = self.ds.setting("default_facet_size")
|
||||
max_returned_rows = self.ds.setting("max_returned_rows")
|
||||
custom_facet_size = self.request.args.get("_facet_size")
|
||||
if custom_facet_size and custom_facet_size.isdigit():
|
||||
facet_size = int(custom_facet_size)
|
||||
return min(facet_size, max_returned_rows)
|
||||
|
||||
async def suggest(self):
|
||||
return []
|
||||
|
||||
|
|
@ -136,7 +144,7 @@ class ColumnFacet(Facet):
|
|||
async def suggest(self):
|
||||
row_count = await self.get_row_count()
|
||||
columns = await self.get_columns(self.sql, self.params)
|
||||
facet_size = self.ds.setting("default_facet_size")
|
||||
facet_size = self.get_facet_size()
|
||||
suggested_facets = []
|
||||
already_enabled = [c["config"]["simple"] for c in self.get_configs()]
|
||||
for column in columns:
|
||||
|
|
@ -186,7 +194,7 @@ class ColumnFacet(Facet):
|
|||
|
||||
qs_pairs = self.get_querystring_pairs()
|
||||
|
||||
facet_size = self.ds.setting("default_facet_size")
|
||||
facet_size = self.get_facet_size()
|
||||
for source_and_config in self.get_configs():
|
||||
config = source_and_config["config"]
|
||||
source = source_and_config["source"]
|
||||
|
|
@ -338,7 +346,7 @@ class ArrayFacet(Facet):
|
|||
facet_results = {}
|
||||
facets_timed_out = []
|
||||
|
||||
facet_size = self.ds.setting("default_facet_size")
|
||||
facet_size = self.get_facet_size()
|
||||
for source_and_config in self.get_configs():
|
||||
config = source_and_config["config"]
|
||||
source = source_and_config["source"]
|
||||
|
|
@ -449,7 +457,7 @@ class DateFacet(Facet):
|
|||
facet_results = {}
|
||||
facets_timed_out = []
|
||||
args = dict(self.get_querystring_pairs())
|
||||
facet_size = self.ds.setting("default_facet_size")
|
||||
facet_size = self.get_facet_size()
|
||||
for source_and_config in self.get_configs():
|
||||
config = source_and_config["config"]
|
||||
source = source_and_config["source"]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue