From: Jean-Philippe Lang Date: Wed, 18 Jan 2017 14:57:14 +0000 (+0000) Subject: Searching for issues with "updated = none" always returns zero results (#15226). X-Git-Tag: 3.4.0~385 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=e8d7b36f1bec5ea5afab1cad4735e36787fc1640;p=redmine.git Searching for issues with "updated = none" always returns zero results (#15226). Patch by Marius BALTEANU. git-svn-id: http://svn.redmine.org/redmine/trunk@16226 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/models/issue_query.rb b/app/models/issue_query.rb index 588a1931d..53702b9ba 100644 --- a/app/models/issue_query.rb +++ b/app/models/issue_query.rb @@ -449,6 +449,17 @@ class IssueQuery < Query end end + def sql_for_updated_on_field(field, operator, value) + case operator + when "!*" + "#{Issue.table_name}.updated_on = #{Issue.table_name}.created_on" + when "*" + "#{Issue.table_name}.updated_on > #{Issue.table_name}.created_on" + else + sql_for_field("updated_on", operator, value, Issue.table_name, "updated_on") + end + end + def sql_for_issue_id_field(field, operator, value) if operator == "=" # accepts a comma separated list of ids diff --git a/test/unit/query_test.rb b/test/unit/query_test.rb index e6761c211..8b88b11cd 100644 --- a/test/unit/query_test.rb +++ b/test/unit/query_test.rb @@ -1900,4 +1900,19 @@ class QueryTest < ActiveSupport::TestCase assert_equal [1, 2, 3, 6, 7, 8, 9, 10, 11, 12], issues.map(&:id).sort end + def test_filter_updated_on_none_should_return_issues_with_updated_on_equal_with_created_on + query = IssueQuery.new(:name => '_', :project => Project.find(1)) + + query.filters = {'updated_on' => {:operator => '!*', :values => ['']}} + issues = find_issues_with_query(query) + assert_equal [3, 6, 7, 8, 9, 10, 14], issues.map(&:id).sort + end + + def test_filter_updated_on_any_should_return_issues_with_updated_on_greater_than_created_on + query = IssueQuery.new(:name => '_', :project => Project.find(1)) + + query.filters = {'updated_on' => {:operator => '*', :values => ['']}} + issues = find_issues_with_query(query) + assert_equal [1, 2, 5, 11, 12, 13], issues.map(&:id).sort + end end