##// END OF EJS Templates
Query project_statement - do not collect ids of subtree (#21611)....
Jean-Philippe Lang -
r14753:4cae62d8e869
parent child
Show More
@@ -567,22 +567,24 class Query < ActiveRecord::Base
567 def project_statement
567 def project_statement
568 project_clauses = []
568 project_clauses = []
569 if project && !project.descendants.active.empty?
569 if project && !project.descendants.active.empty?
570 ids = [project.id]
571 if has_filter?("subproject_id")
570 if has_filter?("subproject_id")
572 case operator_for("subproject_id")
571 case operator_for("subproject_id")
573 when '='
572 when '='
574 # include the selected subprojects
573 # include the selected subprojects
575 ids += values_for("subproject_id").each(&:to_i)
574 ids = [project.id] + values_for("subproject_id").each(&:to_i)
575 project_clauses << "#{Project.table_name}.id IN (%s)" % ids.join(',')
576 when '!*'
576 when '!*'
577 # main project only
577 # main project only
578 project_clauses << "#{Project.table_name}.id = %d" % project.id
578 else
579 else
579 # all subprojects
580 # all subprojects
580 ids += project.descendants.collect(&:id)
581 project_clauses << "#{Project.table_name}.lft >= #{project.lft} AND #{Project.table_name}.rgt <= #{project.rgt}"
581 end
582 end
582 elsif Setting.display_subprojects_issues?
583 elsif Setting.display_subprojects_issues?
583 ids += project.descendants.collect(&:id)
584 project_clauses << "#{Project.table_name}.lft >= #{project.lft} AND #{Project.table_name}.rgt <= #{project.rgt}"
585 else
586 project_clauses << "#{Project.table_name}.id = %d" % project.id
584 end
587 end
585 project_clauses << "#{Project.table_name}.id IN (%s)" % ids.join(',')
586 elsif project
588 elsif project
587 project_clauses << "#{Project.table_name}.id = %d" % project.id
589 project_clauses << "#{Project.table_name}.id = %d" % project.id
588 end
590 end
General Comments 0
You need to be logged in to leave comments. Login now