##// END OF EJS Templates
Add users to assignee/author filters if they are missing (#3398)....
Jean-Philippe Lang -
r14340:828e8111cc77
parent child
Show More
@@ -544,6 +544,11 class IssueQuery < Query
544 "(#{sql})"
544 "(#{sql})"
545 end
545 end
546
546
547 def find_assigned_to_id_filter_values(values)
548 Principal.visible.where(:id => values).map {|p| [p.name, p.id.to_s]}
549 end
550 alias :find_author_id_filter_values :find_assigned_to_id_filter_values
551
547 IssueRelation::TYPES.keys.each do |relation_type|
552 IssueRelation::TYPES.keys.each do |relation_type|
548 alias_method "sql_for_#{relation_type}_field".to_sym, :sql_for_relations
553 alias_method "sql_for_#{relation_type}_field".to_sym, :sql_for_relations
549 end
554 end
@@ -311,7 +311,14 class Query < ActiveRecord::Base
311 def available_filters_as_json
311 def available_filters_as_json
312 json = {}
312 json = {}
313 available_filters.each do |field, options|
313 available_filters.each do |field, options|
314 json[field] = options.slice(:type, :name, :values).stringify_keys
314 options = options.slice(:type, :name, :values)
315 if options[:values] && values_for(field)
316 missing = Array(values_for(field)).select(&:present?) - options[:values].map(&:last)
317 if missing.any? && respond_to?(method = "find_#{field}_filter_values")
318 options[:values] += send(method, missing)
319 end
320 end
321 json[field] = options.stringify_keys
315 end
322 end
316 json
323 json
317 end
324 end
@@ -948,6 +948,28 class QueryTest < ActiveSupport::TestCase
948 assert_nil q.statement
948 assert_nil q.statement
949 end
949 end
950
950
951 def test_available_filters_as_json_should_include_missing_assigned_to_id_values
952 user = User.generate!
953 with_current_user User.find(1) do
954 q = IssueQuery.new
955 q.filters = {"assigned_to_id" => {:operator => '=', :values => user.id.to_s}}
956
957 filters = q.available_filters_as_json
958 assert_include [user.name, user.id.to_s], filters['assigned_to_id']['values']
959 end
960 end
961
962 def test_available_filters_as_json_should_include_missing_author_id_values
963 user = User.generate!
964 with_current_user User.find(1) do
965 q = IssueQuery.new
966 q.filters = {"author_id" => {:operator => '=', :values => user.id.to_s}}
967
968 filters = q.available_filters_as_json
969 assert_include [user.name, user.id.to_s], filters['author_id']['values']
970 end
971 end
972
951 def test_default_columns
973 def test_default_columns
952 q = IssueQuery.new
974 q = IssueQuery.new
953 assert q.columns.any?
975 assert q.columns.any?
General Comments 0
You need to be logged in to leave comments. Login now