Fix bug with ?_next=x&_sort=rowid, closes #1470

pull/1484/head
Simon Willison 2021-10-09 18:14:56 -07:00
rodzic 1163da8916
commit 875117c343
2 zmienionych plików z 10 dodań i 2 usunięć

Wyświetl plik

@ -588,13 +588,15 @@ class TableView(RowTableShared):
_next = _next or special_args.get("_next")
offset = ""
if _next:
sort_value = None
if is_view:
# _next is an offset
offset = f" offset {int(_next)}"
else:
components = urlsafe_components(_next)
# If a sort order is applied, the first of these is the sort value
if sort or sort_desc:
# If a sort order is applied and there are multiple components,
# the first of these is the sort value
if (sort or sort_desc) and (len(components) > 1):
sort_value = components[0]
# Special case for if non-urlencoded first token was $null
if _next.split(",")[0] == "$null":

Wyświetl plik

@ -1817,3 +1817,9 @@ def test_facet_total_shown_if_facet_max_size(use_facet_size_max):
assert fragment in response.text
else:
assert fragment not in response.text
def test_sort_rowid_with_next(app_client):
# https://github.com/simonw/datasette/issues/1470
response = app_client.get("/fixtures/binary_data?_size=1&_next=1&_sort=rowid")
assert response.status == 200