From b18051ec31dc19e3ed429568b444873656091958 Mon Sep 17 00:00:00 2001 From: yystopf Date: Tue, 21 Feb 2023 13:55:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E9=87=8C=E7=A8=8B?= =?UTF-8?q?=E7=A2=91=E7=9B=B8=E5=85=B3=E6=95=B0=E9=87=8F=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/v1/issues/milestones_controller.rb | 20 ++++++++++++++----- .../issues/milestones/_detail.json.jbuilder | 1 + .../v1/issues/milestones/index.json.jbuilder | 2 ++ 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/app/controllers/api/v1/issues/milestones_controller.rb b/app/controllers/api/v1/issues/milestones_controller.rb index 3bbbbdefa..4de6dffbf 100644 --- a/app/controllers/api/v1/issues/milestones_controller.rb +++ b/app/controllers/api/v1/issues/milestones_controller.rb @@ -5,14 +5,16 @@ class Api::V1::Issues::MilestonesController < Api::V1::BaseController # 里程碑列表 def index + @milestones = @project.versions + @milestones = @milestones.ransack(name_or_description_cont: params[:keyword]).result if params[:keyword].present? + @closed_milestone_count = @milestones.closed.size + @opening_milestone_count = @milestones.opening.size + @milestones = params[:category] == "closed" ? @milestones.closed : @milestones.opening if params[:only_name] - @milestones = @project.versions.select(:id, :name) - @milestones = @milestones.ransack(name_or_description_cont: params[:keyword]).result if params[:keyword].present? + @milestones = @milestones.select(:id, :name) @milestones = kaminary_select_paginate(@milestones) else - @milestones = @project.versions.includes(:issues, :closed_issues, :opened_issues) - @milestones = params[:category] == "closed" ? @milestones.closed : @milestones.opening - @milestones = @milestones.ransack(name_or_description_cont: params[:keyword]).result if params[:keyword].present? + @milestones = @milestones.includes(:issues, :closed_issues, :opened_issues) @milestones = kaminari_paginate(@milestones) end end @@ -65,4 +67,12 @@ class Api::V1::Issues::MilestonesController < Api::V1::BaseController return render_not_found('里程碑不存在!') unless @milestone.present? end + def sort_by + Version.columns.include?(params.fetch(:sort_by, "created_on")) ? params.fetch(:sort_by, "created_on") : "created_on" + end + + def sort_direction + %w(desc asc).include?(params.fetch(:sort_direction, "updated_on")) ? params.fetch(:sort_direction, "updated_on") : "updated_on" + end + end \ No newline at end of file diff --git a/app/views/api/v1/issues/milestones/_detail.json.jbuilder b/app/views/api/v1/issues/milestones/_detail.json.jbuilder index a7d66ae28..b71f41c7e 100644 --- a/app/views/api/v1/issues/milestones/_detail.json.jbuilder +++ b/app/views/api/v1/issues/milestones/_detail.json.jbuilder @@ -1,5 +1,6 @@ json.(milestone, :id, :name, :description, :effective_date, :status) json.issues_count milestone.opened_issues.size + milestone.closed_issues.size +json.opened_issues_count milestone.opened_issues.size json.close_issues_count milestone.closed_issues.size json.percent milestone.issue_percent json.created_at milestone.created_on.strftime("%Y-%m-%d %H:%M") diff --git a/app/views/api/v1/issues/milestones/index.json.jbuilder b/app/views/api/v1/issues/milestones/index.json.jbuilder index cea2b43b7..38623d2b4 100644 --- a/app/views/api/v1/issues/milestones/index.json.jbuilder +++ b/app/views/api/v1/issues/milestones/index.json.jbuilder @@ -1,3 +1,5 @@ +json.closed_milestone_count @closed_milestone_count +json.opening_milestone_count @opening_milestone_count json.total_count @milestones.total_count json.milestones @milestones.each do |milestone| if params[:only_name]