mirror of
https://github.com/redmine/redmine.git
synced 2025-11-11 07:46:02 +01:00
Add users to assignee/author filters if they are missing (#3398).
git-svn-id: http://svn.redmine.org/redmine/trunk@14722 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -544,6 +544,11 @@ class IssueQuery < Query
|
|||||||
"(#{sql})"
|
"(#{sql})"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def find_assigned_to_id_filter_values(values)
|
||||||
|
Principal.visible.where(:id => values).map {|p| [p.name, p.id.to_s]}
|
||||||
|
end
|
||||||
|
alias :find_author_id_filter_values :find_assigned_to_id_filter_values
|
||||||
|
|
||||||
IssueRelation::TYPES.keys.each do |relation_type|
|
IssueRelation::TYPES.keys.each do |relation_type|
|
||||||
alias_method "sql_for_#{relation_type}_field".to_sym, :sql_for_relations
|
alias_method "sql_for_#{relation_type}_field".to_sym, :sql_for_relations
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -311,7 +311,14 @@ class Query < ActiveRecord::Base
|
|||||||
def available_filters_as_json
|
def available_filters_as_json
|
||||||
json = {}
|
json = {}
|
||||||
available_filters.each do |field, options|
|
available_filters.each do |field, options|
|
||||||
json[field] = options.slice(:type, :name, :values).stringify_keys
|
options = options.slice(:type, :name, :values)
|
||||||
|
if options[:values] && values_for(field)
|
||||||
|
missing = Array(values_for(field)).select(&:present?) - options[:values].map(&:last)
|
||||||
|
if missing.any? && respond_to?(method = "find_#{field}_filter_values")
|
||||||
|
options[:values] += send(method, missing)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
json[field] = options.stringify_keys
|
||||||
end
|
end
|
||||||
json
|
json
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -948,6 +948,28 @@ class QueryTest < ActiveSupport::TestCase
|
|||||||
assert_nil q.statement
|
assert_nil q.statement
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_available_filters_as_json_should_include_missing_assigned_to_id_values
|
||||||
|
user = User.generate!
|
||||||
|
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_include [user.name, user.id.to_s], 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
|
||||||
|
q = IssueQuery.new
|
||||||
|
q.filters = {"author_id" => {:operator => '=', :values => user.id.to_s}}
|
||||||
|
|
||||||
|
filters = q.available_filters_as_json
|
||||||
|
assert_include [user.name, user.id.to_s], filters['author_id']['values']
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_default_columns
|
def test_default_columns
|
||||||
q = IssueQuery.new
|
q = IssueQuery.new
|
||||||
assert q.columns.any?
|
assert q.columns.any?
|
||||||
|
|||||||
Reference in New Issue
Block a user