@@ -544,6 +544,11 class IssueQuery < Query | |||
|
544 | 544 | "(#{sql})" |
|
545 | 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 | 552 | IssueRelation::TYPES.keys.each do |relation_type| |
|
548 | 553 | alias_method "sql_for_#{relation_type}_field".to_sym, :sql_for_relations |
|
549 | 554 | end |
@@ -311,7 +311,14 class Query < ActiveRecord::Base | |||
|
311 | 311 | def available_filters_as_json |
|
312 | 312 | json = {} |
|
313 | 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 | 322 | end |
|
316 | 323 | json |
|
317 | 324 | end |
@@ -948,6 +948,28 class QueryTest < ActiveSupport::TestCase | |||
|
948 | 948 | assert_nil q.statement |
|
949 | 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 | 973 | def test_default_columns |
|
952 | 974 | q = IssueQuery.new |
|
953 | 975 | assert q.columns.any? |
General Comments 0
You need to be logged in to leave comments.
Login now