@@ -393,10 +393,9 class IssueQuery < Query | |||||
393 |
|
393 | |||
394 | if relation_options[:sym] == field && !options[:reverse] |
|
394 | if relation_options[:sym] == field && !options[:reverse] | |
395 | sqls = [sql, sql_for_relations(field, operator, value, :reverse => true)] |
|
395 | sqls = [sql, sql_for_relations(field, operator, value, :reverse => true)] | |
396 | sqls.join(["!", "!*", "!p"].include?(operator) ? " AND " : " OR ") |
|
396 | sql = sqls.join(["!", "!*", "!p"].include?(operator) ? " AND " : " OR ") | |
397 | else |
|
|||
398 | sql |
|
|||
399 | end |
|
397 | end | |
|
398 | "(#{sql})" | |||
400 | end |
|
399 | end | |
401 |
|
400 | |||
402 | IssueRelation::TYPES.keys.each do |relation_type| |
|
401 | IssueRelation::TYPES.keys.each do |relation_type| |
@@ -746,6 +746,21 class QueryTest < ActiveSupport::TestCase | |||||
746 | assert_equal [1, 2, 3], find_issues_with_query(query).map(&:id).sort |
|
746 | assert_equal [1, 2, 3], find_issues_with_query(query).map(&:id).sort | |
747 | end |
|
747 | end | |
748 |
|
748 | |||
|
749 | def test_filter_on_relations_should_not_ignore_other_filter | |||
|
750 | issue = Issue.generate! | |||
|
751 | issue1 = Issue.generate!(:status_id => 1) | |||
|
752 | issue2 = Issue.generate!(:status_id => 2) | |||
|
753 | IssueRelation.create!(:relation_type => "relates", :issue_from => issue, :issue_to => issue1) | |||
|
754 | IssueRelation.create!(:relation_type => "relates", :issue_from => issue, :issue_to => issue2) | |||
|
755 | ||||
|
756 | query = IssueQuery.new(:name => '_') | |||
|
757 | query.filters = { | |||
|
758 | "status_id" => {:operator => '=', :values => ['1']}, | |||
|
759 | "relates" => {:operator => '=', :values => [issue.id.to_s]} | |||
|
760 | } | |||
|
761 | assert_equal [issue1], find_issues_with_query(query) | |||
|
762 | end | |||
|
763 | ||||
749 | def test_statement_should_be_nil_with_no_filters |
|
764 | def test_statement_should_be_nil_with_no_filters | |
750 | q = IssueQuery.new(:name => '_') |
|
765 | q = IssueQuery.new(:name => '_') | |
751 | q.filters = {} |
|
766 | q.filters = {} |
General Comments 0
You need to be logged in to leave comments.
Login now