diff --git a/lute/templates/term/index.html b/lute/templates/term/index.html index 710c35931..34257be35 100644 --- a/lute/templates/term/index.html +++ b/lute/templates/term/index.html @@ -38,23 +38,23 @@ Status range to @@ -344,9 +344,6 @@ store = JSON.parse(fs); $('#filterControls').css('display', store.filtDisplay); - if (store.filtDisplay == 'none') - return; - $('#showHideFilters').prop('src', "{{ url_for('static', filename='icn/minus-button.png') }}"); $('#filtLanguage').val(parseInt(store.filtLanguage ?? '0')); $('#filtParentsOnly').prop('checked', store.filtParentsOnly ?? false); @@ -354,8 +351,8 @@ $('#filtAgeMin').val(parseInt(store.filtAgeMin)); if ((store.filtAgeMax ?? '') != '') $('#filtAgeMax').val(parseInt(store.filtAgeMax)); - $('#filtStatusMin').val(parseInt(store.filtStatusMin)); - $('#filtStatusMax').val(parseInt(store.filtStatusMax)); + $('#filtStatusMin').val(parseInt(store.filtStatusMin ?? '1')); + $('#filtStatusMax').val(parseInt(store.filtStatusMax ?? '99')); $('#filtIncludeIgnored').prop('checked', store.filtIncludeIgnored); }; @@ -364,8 +361,7 @@ const is_hidden = (fc.css('display') == 'none'); const new_src = is_hidden ? "{{ url_for('static', filename='icn/minus-button.png') }}" : "{{ url_for('static', filename='icn/plus-button.png') }}"; $('#showHideFilters').prop('src', new_src); - if (! is_hidden) - handle_clear_filters(); + handle_clear_filters(); fc.css('display', is_hidden ? 'block' : 'none'); handle_filter_update(); }; @@ -375,8 +371,8 @@ $('#filtParentsOnly').prop('checked', false); $('#filtAgeMin').val(''); $('#filtAgeMax').val(''); - $('#filtStatusMin').val(0); - $('#filtStatusMax').val(0); + $('#filtStatusMin').val(1); + $('#filtStatusMax').val(99); $('#filtIncludeIgnored').prop('checked', false); handle_filter_update(); }; diff --git a/lute/term/datatables.py b/lute/term/datatables.py index 36b82161f..09bc48ed6 100644 --- a/lute/term/datatables.py +++ b/lute/term/datatables.py @@ -78,17 +78,15 @@ def get_data_tables_list(parameters, session): if age_max: wheres.append(f"{sql_age_calc} <= {int(age_max)}") - status_wheres = ["StID not in (0, 98)"] - status_min = int(parameters["filtStatusMin"]) - status_max = int(parameters["filtStatusMax"]) - if status_min > 0: - status_wheres.append(f"StID >= {status_min}") - if status_max > 0: - status_wheres.append(f"StID <= {status_max}") - status_wheres = " AND ".join(status_wheres) + st_range = ["StID != 98"] + status_min = int(parameters.get("filtStatusMin", "0")) + status_max = int(parameters.get("filtStatusMax", "99")) + st_range.append(f"StID >= {status_min}") + st_range.append(f"StID <= {status_max}") + st_where = " AND ".join(st_range) if parameters["filtIncludeIgnored"] == "true": - status_wheres = f"({status_wheres} OR StID = 98)" - wheres.append(status_wheres) + st_where = f"({st_where} OR StID = 98)" + wheres.append(st_where) # Phew. return DataTablesSqliteQuery.get_data( diff --git a/tests/acceptance/lute_test_client.py b/tests/acceptance/lute_test_client.py index f1f16d68a..7ac148174 100644 --- a/tests/acceptance/lute_test_client.py +++ b/tests/acceptance/lute_test_client.py @@ -259,7 +259,9 @@ def get_term_table_content(self): self.visit("/") self.browser.find_by_css("#menu_terms").mouse_over() self.browser.find_by_id("term_index").first.click() - css = "#termtable tbody tr" + + # clear any filters! + self.browser.find_by_id("showHideFilters").first.click() # The last column of the table is the "date added", but that's # a hassle to check, so ignore it. @@ -271,8 +273,10 @@ def _to_string(row): return ret return "; ".join(rowtext[:-1]).strip() + css = "#termtable tbody tr" rows = list(self.browser.find_by_css(css)) - return "\n".join([_to_string(row) for row in rows]) + rowstring = [_to_string(row) for row in rows] + return "\n".join(rowstring) ################################3 # Reading/rendering