diff --git a/app/controllers/api/pm/issues_controller.rb b/app/controllers/api/pm/issues_controller.rb index 8a2a81585..f72df0cc7 100644 --- a/app/controllers/api/pm/issues_controller.rb +++ b/app/controllers/api/pm/issues_controller.rb @@ -36,7 +36,11 @@ class Api::Pm::IssuesController < Api::Pm::BaseController ).where.not(id: not_join_id).order(updated_on: :desc) object_issues = object_issues.where(root_id: nil, child_count: 0) if params[:issue_filter_type] == 'leaf_issue' - @issues = kaminari_paginate(object_issues) + 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.where.not(id: except_closed_issues_ids)) render 'api/v1/issues/index' end @@ -46,6 +50,10 @@ class Api::Pm::IssuesController < Api::Pm::BaseController .where.not(id: Issue.full_children_issues(@issue).map{|i|i.id}) @issues = @issues.where(pm_issue_type: params[:pm_issue_type]) if params[:pm_issue_type].present? @issues = @issues.ransack(id_or_project_issues_index_eq: params[:keyword]).result.or(@issues.ransack(subject_or_description_cont: params[:keyword]).result) if params[:keyword].present? + except_closed_issues_1 = @issues.where(pm_issue_type: 1, status_id: [2,7,8]).to_sql + except_closed_issues_2 = @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 = @issues.where.not(id: except_closed_issues_ids) @issues = @issues.reorder("#{issue_sort_by} #{issue_sort_direction}") if params[:only_name].present? @issues = kaminary_select_paginate(