diff --git a/common/components/filters.py b/common/components/filters.py index 57d2f6f..dc8784f 100644 --- a/common/components/filters.py +++ b/common/components/filters.py @@ -1515,16 +1515,19 @@ def _playevent_fields(existing: dict) -> list: max_value=ended_max, ), ), - RangeSlider( - label="Days to Finish", - input_name_prefix="filter-days-to-finish", - min_value=days_min, - max_value=days_max, - range_min=0, - range_max=365, - step="1", - min_placeholder="e.g. 1", - max_placeholder="e.g. 30", + _filter_field( + "Days to Finish", + RangeSlider( + label="Days to Finish", + input_name_prefix="filter-days-to-finish", + min_value=days_min, + max_value=days_max, + range_min=0, + range_max=365, + step="1", + min_placeholder="e.g. 1", + max_placeholder="e.g. 30", + ), ), ] return fields diff --git a/tests/test_filter_bars.py b/tests/test_filter_bars.py index 4fae42e..d2ba793 100644 --- a/tests/test_filter_bars.py +++ b/tests/test_filter_bars.py @@ -276,6 +276,19 @@ class FilterBarRenderingTest(TestCase): html, ) + def test_playevent_filter_bar_labels_days_to_finish_slider(self): + """The Days to Finish range slider must be wrapped in a labelled field — + RangeSlider does not render its own label, so a bare slider shows none.""" + from common.components import PlayEventFilterBar + + html = str( + PlayEventFilterBar( + filter_json="", preset_list_url="/l", preset_save_url="/s" + ) + ) + self.assertIn("Days to Finish", html) + self.assertNoEscapedTags(html) + def test_game_filter_bar_has_new_widgets(self): """The expanded games FilterBar exposes platform_group, device, playevent_note, purchase_type / purchase_ownership_type, plus count and aggregate-playtime