@@ -467,10 +467,9 class IssueQuery < Query | |||||
467 |
|
467 | |||
468 | if relation_options[:sym] == field && !options[:reverse] |
|
468 | if relation_options[:sym] == field && !options[:reverse] | |
469 | sqls = [sql, sql_for_relations(field, operator, value, :reverse => true)] |
|
469 | sqls = [sql, sql_for_relations(field, operator, value, :reverse => true)] | |
470 | sqls.join(["!", "!*", "!p"].include?(operator) ? " AND " : " OR ") |
|
470 | sql = sqls.join(["!", "!*", "!p"].include?(operator) ? " AND " : " OR ") | |
471 | else |
|
|||
472 | sql |
|
|||
473 | end |
|
471 | end | |
|
472 | "(#{sql})" | |||
474 | end |
|
473 | end | |
475 |
|
474 | |||
476 | IssueRelation::TYPES.keys.each do |relation_type| |
|
475 | IssueRelation::TYPES.keys.each do |relation_type| |
@@ -791,6 +791,21 class QueryTest < ActiveSupport::TestCase | |||||
791 | assert_equal [1, 2, 3], find_issues_with_query(query).map(&:id).sort |
|
791 | assert_equal [1, 2, 3], find_issues_with_query(query).map(&:id).sort | |
792 | end |
|
792 | end | |
793 |
|
793 | |||
|
794 | def test_filter_on_relations_should_not_ignore_other_filter | |||
|
795 | issue = Issue.generate! | |||
|
796 | issue1 = Issue.generate!(:status_id => 1) | |||
|
797 | issue2 = Issue.generate!(:status_id => 2) | |||
|
798 | IssueRelation.create!(:relation_type => "relates", :issue_from => issue, :issue_to => issue1) | |||
|
799 | IssueRelation.create!(:relation_type => "relates", :issue_from => issue, :issue_to => issue2) | |||
|
800 | ||||
|
801 | query = IssueQuery.new(:name => '_') | |||
|
802 | query.filters = { | |||
|
803 | "status_id" => {:operator => '=', :values => ['1']}, | |||
|
804 | "relates" => {:operator => '=', :values => [issue.id.to_s]} | |||
|
805 | } | |||
|
806 | assert_equal [issue1], find_issues_with_query(query) | |||
|
807 | end | |||
|
808 | ||||
794 | def test_statement_should_be_nil_with_no_filters |
|
809 | def test_statement_should_be_nil_with_no_filters | |
795 | q = IssueQuery.new(:name => '_') |
|
810 | q = IssueQuery.new(:name => '_') | |
796 | q.filters = {} |
|
811 | q.filters = {} |
General Comments 0
You need to be logged in to leave comments.
Login now