From f4943ca89bf400350205788f9130c135aaf7b85b Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Tue, 15 May 2018 07:28:48 -0300 Subject: [PATCH] _facet selections persist through table form, refs #255 --- datasette/templates/table.html | 3 +++ tests/test_html.py | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/datasette/templates/table.html b/datasette/templates/table.html index 6deaaf1efc..8ec80ced42 100644 --- a/datasette/templates/table.html +++ b/datasette/templates/table.html @@ -81,6 +81,9 @@

{% if filtered_table_rows_count or filtered_table_rows_count == 0 %}{{ "{:,} {% endif %} + {% for facet in facet_results %} + + {% endfor %} diff --git a/tests/test_html.py b/tests/test_html.py index 9b48ceec2e..6d0f31649f 100644 --- a/tests/test_html.py +++ b/tests/test_html.py @@ -201,6 +201,22 @@ def test_sort_links(app_client): ] == attrs_and_link_attrs +def test_facets_persist_through_filter_form(app_client): + response = app_client.get( + '/test_tables/facetable?_facet=planet_id&_facet=city', + gather_request=False + ) + assert response.status == 200 + inputs = Soup(response.body, 'html.parser').find('form').findAll('input') + hiddens = [i for i in inputs if i['type'] == 'hidden'] + assert [ + ('_facet', 'planet_id'), + ('_facet', 'city'), + ] == [ + (hidden['name'], hidden['value']) for hidden in hiddens + ] + + @pytest.mark.parametrize('path,expected_classes', [ ('/', ['index']), ('/test_tables', ['db', 'db-test_tables']),