Display numbers for the "Issue (Tracker)" cycle analytics metric.
1. Code is messy and untested, but it is a start.
This commit is contained in:
parent
516c838a18
commit
8ccea81cba
|
@ -0,0 +1,32 @@
|
|||
class Projects::CycleAnalyticsController < Projects::ApplicationController
|
||||
def show
|
||||
@metrics = {
|
||||
issue: issue
|
||||
}
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def issue
|
||||
query = <<-HEREDOC
|
||||
WITH ordered_data AS (
|
||||
SELECT extract(milliseconds FROM (COALESCE(first_associated_with_milestone_at, first_added_to_board_at) - issues.created_at)) AS data_point,
|
||||
row_number() over (order by (COALESCE(first_associated_with_milestone_at, first_added_to_board_at) - issues.created_at)) as row_id
|
||||
FROM issues
|
||||
INNER JOIN issue_metrics ON issue_metrics.issue_id = issues.id
|
||||
WHERE COALESCE(first_associated_with_milestone_at, first_added_to_board_at) IS NOT NULL
|
||||
),
|
||||
|
||||
ct AS (
|
||||
SELECT count(1) AS ct
|
||||
FROM ordered_data
|
||||
)
|
||||
|
||||
SELECT avg(data_point) AS median
|
||||
FROM ordered_data
|
||||
WHERE row_id between (select ct from ct)/2.0 and (select ct from ct)/2.0 + 1;
|
||||
HEREDOC
|
||||
|
||||
ActiveRecord::Base.connection.execute(query).to_a.first['median']
|
||||
end
|
||||
end
|
|
@ -0,0 +1 @@
|
|||
%pre= @metrics
|
|
@ -779,6 +779,8 @@ Rails.application.routes.draw do
|
|||
|
||||
resources :environments
|
||||
|
||||
resource :cycle_analytics
|
||||
|
||||
resources :builds, only: [:index, :show], constraints: { id: /\d+/ } do
|
||||
collection do
|
||||
post :cancel_all
|
||||
|
|
Loading…
Reference in New Issue