diff --git a/app/controllers/api/pm/issues_controller.rb b/app/controllers/api/pm/issues_controller.rb index e7bbf4d5e..25cb88e81 100644 --- a/app/controllers/api/pm/issues_controller.rb +++ b/app/controllers/api/pm/issues_controller.rb @@ -33,11 +33,14 @@ class Api::Pm::IssuesController < Api::Pm::BaseController object_issues = Issue.where( pm_project_id: params[:pm_project_id], pm_issue_type: pm_issue_type - ).where.not(id: not_join_id).order(updated_on: :desc) + ).where.not(id: not_join_id) object_issues = object_issues.where(root_id: nil, child_count: 0) if params[:issue_filter_type] == 'leaf_issue' + except_closed_issues_1 = object_issues.where(pm_issue_type: 1, status_id: [2,7,8]).to_sql + except_closed_issues_2 = object_issues.where(pm_issue_type: [2,3], status_id: [3,5,6]).to_sql + except_closed_issues_ids = Issue.from("( #{except_closed_issues_1} union #{except_closed_issues_2}) as issues").pluck(:id) - @issues = kaminari_paginate(object_issues) + @issues = kaminari_paginate(object_issues.where.not(id: except_closed_issues_ids).order(updated_on: :desc)) render 'api/v1/issues/index' end