mirror of
https://github.com/meineerde/redmine.git
synced 2026-01-31 19:47:14 +00:00
Patch by Holger Just. git-svn-id: https://svn.redmine.org/redmine/trunk@21499 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
40ffbff49d
commit
9b25b348c3
@ -578,7 +578,8 @@ class IssueQuery < Query
|
||||
|
||||
def sql_for_fixed_version_status_field(field, operator, value)
|
||||
where = sql_for_field(field, operator, value, Version.table_name, "status")
|
||||
version_ids = versions(:conditions => [where]).map(&:id)
|
||||
version_id_scope = project ? project.shared_versions : Version.visible
|
||||
version_ids = version_id_scope.where(where).pluck(:id)
|
||||
|
||||
nl = operator == "!" ? "#{Issue.table_name}.fixed_version_id IS NULL OR" : ''
|
||||
"(#{nl} #{sql_for_field("fixed_version_id", "=", version_ids, Issue.table_name, "fixed_version_id")})"
|
||||
@ -586,7 +587,8 @@ class IssueQuery < Query
|
||||
|
||||
def sql_for_fixed_version_due_date_field(field, operator, value)
|
||||
where = sql_for_field(field, operator, value, Version.table_name, "effective_date")
|
||||
version_ids = versions(:conditions => [where]).map(&:id)
|
||||
version_id_scope = project ? project.shared_versions : Version.visible
|
||||
version_ids = version_id_scope.where(where).pluck(:id)
|
||||
|
||||
nl = operator == "!*" ? "#{Issue.table_name}.fixed_version_id IS NULL OR" : ''
|
||||
"(#{nl} #{sql_for_field("fixed_version_id", "=", version_ids, Issue.table_name, "fixed_version_id")})"
|
||||
|
||||
@ -1235,6 +1235,21 @@ class QueryTest < ActiveSupport::TestCase
|
||||
assert_equal [1, 3, 7, 8], find_issues_with_query(query).map(&:id).uniq.sort
|
||||
end
|
||||
|
||||
def test_filter_on_fixed_version_status_respects_sharing
|
||||
issue = Issue.generate!(:project_id => 1, :fixed_version_id => 7)
|
||||
|
||||
filter_name = "fixed_version.status"
|
||||
|
||||
query = IssueQuery.new(:name => '_', project: Project.find(1))
|
||||
assert_include filter_name, query.available_filters.keys
|
||||
query.filters = {filter_name => {:operator => '=', :values => ['open']}}
|
||||
assert_include issue, find_issues_with_query(query)
|
||||
|
||||
query = IssueQuery.new(:name => '_', project: Project.find(1))
|
||||
query.filters = {filter_name => {:operator => '=', :values => ['closed']}}
|
||||
refute_includes find_issues_with_query(query), issue
|
||||
end
|
||||
|
||||
def test_filter_on_version_custom_field
|
||||
field = IssueCustomField.generate!(:field_format => 'version', :is_filter => true)
|
||||
issue = Issue.generate!(:project_id => 1, :tracker_id => 1, :custom_field_values => {field.id.to_s => '2'})
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user