diff --git a/app/models/query.rb b/app/models/query.rb index 5ad0dd8..8b036eb 100644 --- a/app/models/query.rb +++ b/app/models/query.rb @@ -309,51 +309,8 @@ class Query < ActiveRecord::Base v.push(User.current.logged? ? User.current.id.to_s : "0") if v.delete("me") end - case operator_for field - when "=" - sql = sql + "#{db_table}.#{db_field} IN (" + v.collect{|val| "'#{connection.quote_string(val)}'"}.join(",") + ")" - when "!" - sql = sql + "(#{db_table}.#{db_field} IS NULL OR #{db_table}.#{db_field} NOT IN (" + v.collect{|val| "'#{connection.quote_string(val)}'"}.join(",") + "))" - when "!*" - sql = sql + "#{db_table}.#{db_field} IS NULL" - sql << " OR #{db_table}.#{db_field} = ''" if is_custom_filter - when "*" - sql = sql + "#{db_table}.#{db_field} IS NOT NULL" - sql << " AND #{db_table}.#{db_field} <> ''" if is_custom_filter - when ">=" - sql = sql + "#{db_table}.#{db_field} >= #{v.first.to_i}" - when "<=" - sql = sql + "#{db_table}.#{db_field} <= #{v.first.to_i}" - when "o" - sql = sql + "#{IssueStatus.table_name}.is_closed=#{connection.quoted_false}" if field == "status_id" - when "c" - sql = sql + "#{IssueStatus.table_name}.is_closed=#{connection.quoted_true}" if field == "status_id" - when ">t-" - sql = sql + date_range_clause(db_table, db_field, - v.first.to_i, 0) - when "t+" - sql = sql + date_range_clause(db_table, db_field, v.first.to_i, nil) - when " ''" if is_custom_filter + return sql + when ">=" + return "#{db_table}.#{db_field} >= #{v.first.to_i}" + when "<=" + return "#{db_table}.#{db_field} <= #{v.first.to_i}" + when "o" + return "#{IssueStatus.table_name}.is_closed=#{connection.quoted_false}" if field == "status_id" + when "c" + return "#{IssueStatus.table_name}.is_closed=#{connection.quoted_true}" if field == "status_id" + when ">t-" + return date_range_clause(db_table, db_field, - v.first.to_i, 0) + when "t+" + return date_range_clause(db_table, db_field, v.first.to_i, nil) + when "