kopia lustrzana https://github.com/simonw/datasette
Ability to set custom table/view page size in metadata, closes #751
rodzic
510c1989d4
commit
75cd432e5a
|
@ -527,7 +527,7 @@ class TableView(RowTableShared):
|
|||
|
||||
extra_args = {}
|
||||
# Handle ?_size=500
|
||||
page_size = _size or request.args.get("_size")
|
||||
page_size = _size or request.args.get("_size") or table_metadata.get("size")
|
||||
if page_size:
|
||||
if page_size == "max":
|
||||
page_size = self.ds.max_returned_rows
|
||||
|
|
|
@ -156,6 +156,29 @@ Or use ``"sort_desc"`` to sort in descending order:
|
|||
}
|
||||
}
|
||||
|
||||
.. _metadata_page_size:
|
||||
|
||||
Setting a custom page size
|
||||
--------------------------
|
||||
|
||||
Datasette defaults to displaing 100 rows per page, for both tables and views. You can change this default page size on a per-table or per-view basis using the ``"size"`` key in ``metadata.json``:
|
||||
|
||||
.. code-block:: json
|
||||
|
||||
{
|
||||
"databases": {
|
||||
"mydatabase": {
|
||||
"tables": {
|
||||
"example_table": {
|
||||
"size": 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
This size can still be over-ridden by passing e.g. ``?_size=50`` in the querystring.
|
||||
|
||||
.. _metadata_sortable_columns:
|
||||
|
||||
Setting which columns can be used for sorting
|
||||
|
|
|
@ -305,6 +305,7 @@ METADATA = {
|
|||
},
|
||||
"attraction_characteristic": {"sort_desc": "pk"},
|
||||
"facet_cities": {"sort": "name"},
|
||||
"paginated_view": {"size": 25},
|
||||
},
|
||||
"queries": {
|
||||
"𝐜𝐢𝐭𝐢𝐞𝐬": "select id, name from facet_cities order by id limit 1;",
|
||||
|
|
|
@ -754,9 +754,9 @@ def test_table_with_reserved_word_name(app_client):
|
|||
"path,expected_rows,expected_pages",
|
||||
[
|
||||
("/fixtures/no_primary_key.json", 201, 5),
|
||||
("/fixtures/paginated_view.json", 201, 5),
|
||||
("/fixtures/paginated_view.json", 201, 9),
|
||||
("/fixtures/no_primary_key.json?_size=25", 201, 9),
|
||||
("/fixtures/paginated_view.json?_size=25", 201, 9),
|
||||
("/fixtures/paginated_view.json?_size=50", 201, 5),
|
||||
("/fixtures/paginated_view.json?_size=max", 201, 3),
|
||||
("/fixtures/123_starts_with_digits.json", 0, 1),
|
||||
# Ensure faceting doesn't break pagination:
|
||||
|
|
Ładowanie…
Reference in New Issue