Reliable sort order for facets in Python 3.5, fixing test - refs #255

This commit is contained in:
Simon Willison 2018-05-16 07:43:13 -07:00 committed by Simon Willison
commit b263da78e3
3 changed files with 4 additions and 4 deletions

View file

@ -81,8 +81,8 @@
</div> </div>
<label class="sort_by_desc"><input type="checkbox" name="_sort_by_desc"{% if sort_desc %} checked{% endif %}> descending</label> <label class="sort_by_desc"><input type="checkbox" name="_sort_by_desc"{% if sort_desc %} checked{% endif %}> descending</label>
{% endif %} {% endif %}
{% for facet in facet_results %} {% for facet in sorted_facet_results %}
<input type="hidden" name="_facet" value="{{ facet }}"> <input type="hidden" name="_facet" value="{{ facet.name }}">
{% endfor %} {% endfor %}
<input type="submit" value="Apply"> <input type="submit" value="Apply">
</div> </div>

View file

@ -716,7 +716,7 @@ class TableView(RowTableShared):
"display_rows": display_rows, "display_rows": display_rows,
"sorted_facet_results": sorted( "sorted_facet_results": sorted(
facet_results.values(), facet_results.values(),
key=lambda f: len(f["results"]), key=lambda f: (len(f["results"]), f["name"]),
reverse=True reverse=True
), ),
"is_sortable": any(c["sortable"] for c in display_columns), "is_sortable": any(c["sortable"] for c in display_columns),

View file

@ -210,8 +210,8 @@ def test_facets_persist_through_filter_form(app_client):
inputs = Soup(response.body, 'html.parser').find('form').findAll('input') inputs = Soup(response.body, 'html.parser').find('form').findAll('input')
hiddens = [i for i in inputs if i['type'] == 'hidden'] hiddens = [i for i in inputs if i['type'] == 'hidden']
assert [ assert [
('_facet', 'planet_int'),
('_facet', 'city_id'), ('_facet', 'city_id'),
('_facet', 'planet_int'),
] == [ ] == [
(hidden['name'], hidden['value']) for hidden in hiddens (hidden['name'], hidden['value']) for hidden in hiddens
] ]