@@ -623,12 +623,10 class Query < ActiveRecord::Base | |||||
623 | when "t" |
|
623 | when "t" | |
624 | sql = date_range_clause(db_table, db_field, 0, 0) |
|
624 | sql = date_range_clause(db_table, db_field, 0, 0) | |
625 | when "w" |
|
625 | when "w" | |
626 |
f |
|
626 | first_day_of_week = l(:general_first_day_of_week).to_i | |
627 | # week starts on sunday |
|
627 | day_of_week = Date.today.cwday | |
628 | ((Date.today.cwday == 7) ? Time.now.at_beginning_of_day : Time.now.at_beginning_of_week - 1.day) : |
|
628 | days_ago = (day_of_week >= first_day_of_week ? day_of_week - first_day_of_week : day_of_week + 7 - first_day_of_week) | |
629 | # week starts on monday (Rails default) |
|
629 | sql = date_range_clause(db_table, db_field, - days_ago, - days_ago + 6) | |
630 | Time.now.at_beginning_of_week |
|
|||
631 | sql = "#{db_table}.#{db_field} BETWEEN '%s' AND '%s'" % [connection.quoted_date(from), connection.quoted_date(from + 7.days)] |
|
|||
632 | when "~" |
|
630 | when "~" | |
633 | sql = "LOWER(#{db_table}.#{db_field}) LIKE '%#{connection.quote_string(value.first.to_s.downcase)}%'" |
|
631 | sql = "LOWER(#{db_table}.#{db_field}) LIKE '%#{connection.quote_string(value.first.to_s.downcase)}%'" | |
634 | when "!~" |
|
632 | when "!~" |
@@ -191,6 +191,29 class QueryTest < ActiveSupport::TestCase | |||||
191 | result.each {|issue| assert issue.subject.downcase.include?('unable') } |
|
191 | result.each {|issue| assert issue.subject.downcase.include?('unable') } | |
192 | end |
|
192 | end | |
193 |
|
193 | |||
|
194 | def test_range_for_this_week_with_week_starting_on_monday | |||
|
195 | I18n.locale = :fr | |||
|
196 | assert_equal '1', I18n.t(:general_first_day_of_week) | |||
|
197 | ||||
|
198 | Date.stubs(:today).returns(Date.parse('2011-04-29')) | |||
|
199 | ||||
|
200 | query = Query.new(:project => Project.find(1), :name => '_') | |||
|
201 | query.add_filter('due_date', 'w', ['']) | |||
|
202 | assert query.statement.include?("issues.due_date > '2011-04-24 23:59:59' AND issues.due_date <= '2011-05-01 23:59:59") | |||
|
203 | I18n.locale = :en | |||
|
204 | end | |||
|
205 | ||||
|
206 | def test_range_for_this_week_with_week_starting_on_sunday | |||
|
207 | I18n.locale = :en | |||
|
208 | assert_equal '7', I18n.t(:general_first_day_of_week) | |||
|
209 | ||||
|
210 | Date.stubs(:today).returns(Date.parse('2011-04-29')) | |||
|
211 | ||||
|
212 | query = Query.new(:project => Project.find(1), :name => '_') | |||
|
213 | query.add_filter('due_date', 'w', ['']) | |||
|
214 | assert query.statement.include?("issues.due_date > '2011-04-23 23:59:59' AND issues.due_date <= '2011-04-30 23:59:59") | |||
|
215 | end | |||
|
216 | ||||
194 | def test_operator_does_not_contains |
|
217 | def test_operator_does_not_contains | |
195 | query = Query.new(:project => Project.find(1), :name => '_') |
|
218 | query = Query.new(:project => Project.find(1), :name => '_') | |
196 | query.add_filter('subject', '!~', ['uNable']) |
|
219 | query.add_filter('subject', '!~', ['uNable']) |
General Comments 0
You need to be logged in to leave comments.
Login now