From c9e3cfecc8e966e5137d72e3f2150be9602d55f5 Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Sat, 13 Nov 2021 20:53:00 -0800 Subject: [PATCH] Columns in filters now ignore ?_nocol, closes #1503 --- datasette/views/table.py | 2 +- tests/test_html.py | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/datasette/views/table.py b/datasette/views/table.py index efcef4d2..3e8f38f6 100644 --- a/datasette/views/table.py +++ b/datasette/views/table.py @@ -922,7 +922,7 @@ class TableView(RowTableShared): "use_rowid": use_rowid, "filters": filters, "display_columns": display_columns, - "filter_columns": columns, + "filter_columns": table_columns, "display_rows": display_rows, "facets_timed_out": facets_timed_out, "sorted_facet_results": sorted( diff --git a/tests/test_html.py b/tests/test_html.py index 1955e65b..eb1e3d20 100644 --- a/tests/test_html.py +++ b/tests/test_html.py @@ -923,6 +923,26 @@ def test_table_html_filter_form_column_options( assert expected_column_options == column_options +def test_table_html_filter_form_still_shows_nocol_columns(app_client): + # https://github.com/simonw/datasette/issues/1503 + response = app_client.get("/fixtures/sortable?_nocol=sortable") + assert response.status == 200 + form = Soup(response.body, "html.parser").find("form") + assert [ + o.string + for o in form.select("select[name='_filter_column']")[0].select("option") + ] == [ + "- column -", + "pk1", + "pk2", + "content", + "sortable", + "sortable_with_nulls", + "sortable_with_nulls_2", + "text", + ] + + def test_row_html_compound_primary_key(app_client): response = app_client.get("/fixtures/compound_primary_key/a,b") assert response.status == 200