diff options
Diffstat (limited to 'app/models/query.rb')
-rw-r--r-- | app/models/query.rb | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/app/models/query.rb b/app/models/query.rb index 8b036eb57..b5d6afc6b 100644 --- a/app/models/query.rb +++ b/app/models/query.rb @@ -325,51 +325,51 @@ class Query < ActiveRecord::Base sql = '' case operator_for field when "=" - return "#{db_table}.#{db_field} IN (" + v.collect{|val| "'#{connection.quote_string(val)}'"}.join(",") + ")" + sql = "#{db_table}.#{db_field} IN (" + v.collect{|val| "'#{connection.quote_string(val)}'"}.join(",") + ")" when "!" - return "(#{db_table}.#{db_field} IS NULL OR #{db_table}.#{db_field} NOT IN (" + v.collect{|val| "'#{connection.quote_string(val)}'"}.join(",") + "))" + sql = "(#{db_table}.#{db_field} IS NULL OR #{db_table}.#{db_field} NOT IN (" + v.collect{|val| "'#{connection.quote_string(val)}'"}.join(",") + "))" when "!*" sql = "#{db_table}.#{db_field} IS NULL" sql << " OR #{db_table}.#{db_field} = ''" if is_custom_filter - return sql when "*" sql = "#{db_table}.#{db_field} IS NOT NULL" sql << " AND #{db_table}.#{db_field} <> ''" if is_custom_filter - return sql when ">=" - return "#{db_table}.#{db_field} >= #{v.first.to_i}" + sql = "#{db_table}.#{db_field} >= #{v.first.to_i}" when "<=" - return "#{db_table}.#{db_field} <= #{v.first.to_i}" + sql = "#{db_table}.#{db_field} <= #{v.first.to_i}" when "o" - return "#{IssueStatus.table_name}.is_closed=#{connection.quoted_false}" if field == "status_id" + sql = "#{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" + sql = "#{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) + sql = date_range_clause(db_table, db_field, - v.first.to_i, 0) when "<t-" - return date_range_clause(db_table, db_field, nil, - v.first.to_i) + sql = date_range_clause(db_table, db_field, nil, - v.first.to_i) when "t-" - return date_range_clause(db_table, db_field, - v.first.to_i, - v.first.to_i) + sql = date_range_clause(db_table, db_field, - v.first.to_i, - v.first.to_i) when ">t+" - return date_range_clause(db_table, db_field, v.first.to_i, nil) + sql = date_range_clause(db_table, db_field, v.first.to_i, nil) when "<t+" - return date_range_clause(db_table, db_field, 0, v.first.to_i) + sql = date_range_clause(db_table, db_field, 0, v.first.to_i) when "t+" - return date_range_clause(db_table, db_field, v.first.to_i, v.first.to_i) + sql = date_range_clause(db_table, db_field, v.first.to_i, v.first.to_i) when "t" - return date_range_clause(db_table, db_field, 0, 0) + sql = date_range_clause(db_table, db_field, 0, 0) when "w" from = l(:general_first_day_of_week) == '7' ? # week starts on sunday ((Date.today.cwday == 7) ? Time.now.at_beginning_of_day : Time.now.at_beginning_of_week - 1.day) : # week starts on monday (Rails default) Time.now.at_beginning_of_week - return "#{db_table}.#{db_field} BETWEEN '%s' AND '%s'" % [connection.quoted_date(from), connection.quoted_date(from + 7.days)] + sql = "#{db_table}.#{db_field} BETWEEN '%s' AND '%s'" % [connection.quoted_date(from), connection.quoted_date(from + 7.days)] when "~" - return "#{db_table}.#{db_field} LIKE '%#{connection.quote_string(v.first)}%'" + sql = "#{db_table}.#{db_field} LIKE '%#{connection.quote_string(v.first)}%'" when "!~" - return "#{db_table}.#{db_field} NOT LIKE '%#{connection.quote_string(v.first)}%'" + sql = "#{db_table}.#{db_field} NOT LIKE '%#{connection.quote_string(v.first)}%'" end + + return sql end def add_custom_fields_filters(custom_fields) |