From 4c6859a2dee6da420f33c3b7f9946f3642eb85f7 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Wed, 30 Jul 2014 13:26:23 +0300 Subject: Prevent duplicates in issue finder when filter by label Signed-off-by: Dmitriy Zaporozhets --- app/finders/base_finder.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'app/finders') diff --git a/app/finders/base_finder.rb b/app/finders/base_finder.rb index ad63135e7e6..ec5f5919d7e 100644 --- a/app/finders/base_finder.rb +++ b/app/finders/base_finder.rb @@ -125,7 +125,13 @@ class BaseFinder def by_label(items) if params[:label_name].present? - items = items.joins(:labels).where("labels.title in (?)", params[:label_name].split(",")) + label_names = params[:label_name].split(",") + + item_ids = LabelLink.joins(:label). + where('labels.title in (?)', label_names). + where(target_type: klass.name).pluck(:target_id) + + items = items.where(id: item_ids) end items -- cgit v1.2.3