mirror of
https://github.com/meineerde/redmine.git
synced 2026-01-31 19:47:14 +00:00
Refactor SQL construction in IssueQuery#sql_for_assigned_to_role_field for better readability (#38319).
git-svn-id: https://svn.redmine.org/redmine/trunk@22333 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
43873746ba
commit
ad3e2bdd1b
@ -566,8 +566,11 @@ class IssueQuery < Query
|
||||
when "*", "!*" # Member / Not member
|
||||
sw = operator == "!*" ? 'NOT' : ''
|
||||
nl = operator == "!*" ? "#{Issue.table_name}.assigned_to_id IS NULL OR" : ''
|
||||
"(#{nl} #{Issue.table_name}.assigned_to_id #{sw} IN (SELECT DISTINCT #{Member.table_name}.user_id FROM #{Member.table_name}" +
|
||||
" WHERE #{Member.table_name}.project_id = #{Issue.table_name}.project_id))"
|
||||
subquery =
|
||||
"SELECT DISTINCT #{Member.table_name}.user_id" +
|
||||
" FROM #{Member.table_name}" +
|
||||
" WHERE #{Member.table_name}.project_id = #{Issue.table_name}.project_id"
|
||||
"(#{nl} #{Issue.table_name}.assigned_to_id #{sw} IN (#{subquery}))"
|
||||
when "=", "!"
|
||||
role_cond =
|
||||
if value.any?
|
||||
@ -577,8 +580,11 @@ class IssueQuery < Query
|
||||
end
|
||||
sw = operator == "!" ? 'NOT' : ''
|
||||
nl = operator == "!" ? "#{Issue.table_name}.assigned_to_id IS NULL OR" : ''
|
||||
"(#{nl} #{Issue.table_name}.assigned_to_id #{sw} IN (SELECT DISTINCT #{Member.table_name}.user_id FROM #{Member.table_name}, #{MemberRole.table_name}" +
|
||||
" WHERE #{Member.table_name}.project_id = #{Issue.table_name}.project_id AND #{Member.table_name}.id = #{MemberRole.table_name}.member_id AND #{role_cond}))"
|
||||
subquery =
|
||||
"SELECT DISTINCT #{Member.table_name}.user_id" +
|
||||
" FROM #{Member.table_name}, #{MemberRole.table_name}" +
|
||||
" WHERE #{Member.table_name}.project_id = #{Issue.table_name}.project_id AND #{Member.table_name}.id = #{MemberRole.table_name}.member_id AND #{role_cond}"
|
||||
"(#{nl} #{Issue.table_name}.assigned_to_id #{sw} IN (#{subquery}))"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user