Patch #21611 » query_project_statement.diff
app/models/query.rb | ||
---|---|---|
535 | 535 |
def project_statement |
536 | 536 |
project_clauses = [] |
537 | 537 |
if project && !project.descendants.active.empty? |
538 |
ids = [project.id] |
|
539 | 538 |
if has_filter?("subproject_id") |
540 | 539 |
case operator_for("subproject_id") |
541 | 540 |
when '=' |
542 | 541 |
# include the selected subprojects |
543 |
ids += values_for("subproject_id").each(&:to_i) |
|
542 |
ids = [project.id] + values_for("subproject_id").each(&:to_i) |
|
543 |
project_clauses << "#{Project.table_name}.id IN (%s)" % ids.join(',') |
|
544 | 544 |
when '!*' |
545 | 545 |
# main project only |
546 |
project_clauses << "#{Project.table_name}.id = %d" % project.id |
|
546 | 547 |
else |
547 | 548 |
# all subprojects |
548 |
ids += project.descendants.collect(&:id)
|
|
549 |
project_clauses << "#{Project.table_name}.lft >= #{project.lft} AND #{Project.table_name}.rgt <= #{project.rgt}"
|
|
549 | 550 |
end |
550 | 551 |
elsif Setting.display_subprojects_issues? |
551 |
ids += project.descendants.collect(&:id)
|
|
552 |
project_clauses << "#{Project.table_name}.lft >= #{project.lft} AND #{Project.table_name}.rgt <= #{project.rgt}"
|
|
552 | 553 |
end |
553 |
project_clauses << "#{Project.table_name}.id IN (%s)" % ids.join(',') |
|
554 | 554 |
elsif project |
555 | 555 |
project_clauses << "#{Project.table_name}.id = %d" % project.id |
556 | 556 |
end |