fix: Correctly handle toggle filters to prevent unintended activation

This commit is contained in:
fl0w1nd 2025-05-25 17:59:31 +08:00
parent 8598fc9608
commit 332043c38b

View File

@ -37,14 +37,16 @@ def get_sorted_filter_ids(request, model: dict, enabled_filter_ids: list = None)
for function in Functions.get_functions_by_type("filter", active_only=True)
]
for filter_id in active_filter_ids:
def should_keep_filter(filter_id):
function_module = get_function_module(request, filter_id)
if getattr(function_module, "toggle", None) and (
filter_id not in enabled_filter_ids
):
active_filter_ids.remove(filter_id)
continue
return not (getattr(function_module, "toggle", None) and
filter_id not in (enabled_filter_ids or []))
active_filter_ids = [
filter_id for filter_id in active_filter_ids
if should_keep_filter(filter_id)
]
filter_ids = [fid for fid in filter_ids if fid in active_filter_ids]
filter_ids.sort(key=get_priority)