Skip to content

Commit ba4ddbb

Browse files
authored
Merge pull request opf#15281 from opf/fix/duplicate-filters
Remove duplicate filters in BaseQuery#where
2 parents 450862c + 5a42819 commit ba4ddbb

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

Diff for: app/components/filters_component.rb

+1-5
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,7 @@ def allowed_filters
5858
end
5959

6060
def filters_count
61-
@filters_count ||= query
62-
.filters
63-
.map(&:class)
64-
.uniq
65-
.count
61+
@filters_count ||= query.filters.count
6662
end
6763

6864
protected

Diff for: app/models/queries/base_query.rb

+6
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,17 @@ def where(attribute, operator, values)
8888
filter.values = values
8989
filter.context = context
9090

91+
# Remove any previous instances of the same filter
92+
remove_filter(filter.name)
9193
filters << filter
9294

9395
self
9496
end
9597

98+
def remove_filter(name)
99+
filters.delete(find_active_filter(name))
100+
end
101+
96102
def select(*select_values, add_not_existing: true)
97103
select_values.each do |select_value|
98104
select_column = select_for(select_value)

0 commit comments

Comments
 (0)