]> source.dussan.org Git - redmine.git/commitdiff
Duplicate entries in issue filter values (#35201).
authorGo MAEDA <maeda@farend.jp>
Fri, 7 May 2021 04:45:08 +0000 (04:45 +0000)
committerGo MAEDA <maeda@farend.jp>
Fri, 7 May 2021 04:45:08 +0000 (04:45 +0000)
Patch by Jens Krämer.

git-svn-id: http://svn.redmine.org/redmine/trunk@20990 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/query.rb
test/unit/query_test.rb

index e8de4aa6d3f47a16b480e0d37c7fd3c8b095c620..fad3930aa6690482cc9f22f2bdc0b76b283a90ec 100644 (file)
@@ -531,7 +531,7 @@ class Query < ActiveRecord::Base
       if has_filter?(field) || !filter.remote
         options[:values] = filter.values
         if options[:values] && values_for(field)
-          missing = Array(values_for(field)).select(&:present?) - options[:values].map(&:last)
+          missing = Array(values_for(field)).select(&:present?) - options[:values].map{|v| v[1]}
           if missing.any? && respond_to?(method = "find_#{field}_filter_values")
             options[:values] += send(method, missing)
           end
index 118cb3dc11ff24f0c9d50d1b53ded0eaca1a5e96..d2159c84b478cb9d766525bef0df57cfcaf1ffaf 100644 (file)
@@ -1560,6 +1560,19 @@ class QueryTest < ActiveSupport::TestCase
     end
   end
 
+  def test_available_filters_as_json_should_not_include_duplicate_assigned_to_id_values
+    set_language_if_valid 'en'
+    user = User.find_by_login 'dlopper'
+    with_current_user User.find(1) do
+      q = IssueQuery.new
+      q.filters = {"assigned_to_id" => {:operator => '=', :values => user.id.to_s}}
+
+      filters = q.available_filters_as_json
+      assert_not_include [user.name, user.id.to_s], filters['assigned_to_id']['values']
+      assert_include [user.name, user.id.to_s, 'active'], filters['assigned_to_id']['values']
+    end
+  end
+
   def test_available_filters_as_json_should_include_missing_author_id_values
     user = User.generate!
     with_current_user User.find(1) do