diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2007-03-15 22:11:02 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2007-03-15 22:11:02 +0000 |
commit | e6f58e4dcc2f7552109da139857a19b81c6f1fe1 (patch) | |
tree | b2b7aee365335b13fb3f8d2ebac44b518cbbcd71 /app/models/query.rb | |
parent | 192b9008bdc5590a041166635eb1aecae78df992 (diff) | |
download | redmine-e6f58e4dcc2f7552109da139857a19b81c6f1fe1.tar.gz redmine-e6f58e4dcc2f7552109da139857a19b81c6f1fe1.zip |
fixed #9308 table_name pre/suffix support
git-svn-id: http://redmine.rubyforge.org/svn/trunk@337 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models/query.rb')
-rw-r--r-- | app/models/query.rb | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/app/models/query.rb b/app/models/query.rb index b6c9b680a..fbf48927a 100644 --- a/app/models/query.rb +++ b/app/models/query.rb @@ -124,42 +124,42 @@ class Query < ActiveRecord::Base def statement sql = "1=1" - sql << " AND issues.project_id=%d" % project.id if project + sql << " AND #{Issue.table_name}.project_id=%d" % project.id if project filters.each_key do |field| v = values_for field next unless v and !v.empty? sql = sql + " AND " unless sql.empty? case operator_for field when "=" - sql = sql + "issues.#{field} IN (" + v.each(&:to_i).join(",") + ")" + sql = sql + "#{Issue.table_name}.#{field} IN (" + v.each(&:to_i).join(",") + ")" when "!" - sql = sql + "issues.#{field} NOT IN (" + v.each(&:to_i).join(",") + ")" + sql = sql + "#{Issue.table_name}.#{field} NOT IN (" + v.each(&:to_i).join(",") + ")" when "!*" - sql = sql + "issues.#{field} IS NULL" + sql = sql + "#{Issue.table_name}.#{field} IS NULL" when "*" - sql = sql + "issues.#{field} IS NOT NULL" + sql = sql + "#{Issue.table_name}.#{field} IS NOT NULL" when "o" - sql = sql + "issue_statuses.is_closed=#{connection.quoted_false}" if field == "status_id" + sql = sql + "#{IssueStatus.table_name}.is_closed=#{connection.quoted_false}" if field == "status_id" when "c" - sql = sql + "issue_statuses.is_closed=#{connection.quoted_true}" if field == "status_id" + sql = sql + "#{IssueStatus.table_name}.is_closed=#{connection.quoted_true}" if field == "status_id" when ">t-" - sql = sql + "issues.#{field} >= '%s'" % connection.quoted_date(Date.today - v.first.to_i) + sql = sql + "#{Issue.table_name}.#{field} >= '%s'" % connection.quoted_date(Date.today - v.first.to_i) when "<t-" - sql = sql + "issues.#{field} <= '" + (Date.today - v.first.to_i).strftime("%Y-%m-%d") + "'" + sql = sql + "#{Issue.table_name}.#{field} <= '" + (Date.today - v.first.to_i).strftime("%Y-%m-%d") + "'" when "t-" - sql = sql + "issues.#{field} = '" + (Date.today - v.first.to_i).strftime("%Y-%m-%d") + "'" + sql = sql + "#{Issue.table_name}.#{field} = '" + (Date.today - v.first.to_i).strftime("%Y-%m-%d") + "'" when ">t+" - sql = sql + "issues.#{field} >= '" + (Date.today + v.first.to_i).strftime("%Y-%m-%d") + "'" + sql = sql + "#{Issue.table_name}.#{field} >= '" + (Date.today + v.first.to_i).strftime("%Y-%m-%d") + "'" when "<t+" - sql = sql + "issues.#{field} <= '" + (Date.today + v.first.to_i).strftime("%Y-%m-%d") + "'" + sql = sql + "#{Issue.table_name}.#{field} <= '" + (Date.today + v.first.to_i).strftime("%Y-%m-%d") + "'" when "t+" - sql = sql + "issues.#{field} = '" + (Date.today + v.first.to_i).strftime("%Y-%m-%d") + "'" + sql = sql + "#{Issue.table_name}.#{field} = '" + (Date.today + v.first.to_i).strftime("%Y-%m-%d") + "'" when "t" - sql = sql + "issues.#{field} = '%s'" % connection.quoted_date(Date.today) + sql = sql + "#{Issue.table_name}.#{field} = '%s'" % connection.quoted_date(Date.today) when "~" - sql = sql + "issues.#{field} LIKE '%#{connection.quote_string(v.first)}%'" + sql = sql + "#{Issue.table_name}.#{field} LIKE '%#{connection.quote_string(v.first)}%'" when "!~" - sql = sql + "issues.#{field} NOT LIKE '%#{connection.quote_string(v.first)}%'" + sql = sql + "#{Issue.table_name}.#{field} NOT LIKE '%#{connection.quote_string(v.first)}%'" end end if filters and valid? sql |