@@ -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 |
|
|
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