Offer aggregated RfC counts via API
This commit is contained in:
@ -29,11 +29,20 @@ class StatisticsController < ApplicationController
|
|||||||
|
|
||||||
def rfc_activity
|
def rfc_activity
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.json { render(json: rfc_activity_live_data) }
|
format.json { render(json: rfc_activity_data) }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def rfc_activity_history
|
def rfc_activity_history
|
||||||
|
respond_to do |format|
|
||||||
|
format.html { render 'rfc_activity_history' }
|
||||||
|
format.json do
|
||||||
|
range = params[:range] || 'year'
|
||||||
|
from = DateTime.strptime(params[:from], '%Y') rescue DateTime.new(0)
|
||||||
|
to = DateTime.strptime(params[:to], '%Y') rescue DateTime.now
|
||||||
|
render(json: ranged_rfc_data(range, from, to))
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def authorize!
|
def authorize!
|
||||||
|
@ -152,4 +152,39 @@ module StatisticsHelper
|
|||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def ranged_rfc_data(range='year', from=DateTime.new(0), to=DateTime.now)
|
||||||
|
[
|
||||||
|
{
|
||||||
|
key: 'rfcs',
|
||||||
|
name: t('activerecord.models.request_for_comment.other'),
|
||||||
|
data: RequestForComment.in_range(from, to)
|
||||||
|
.select("date_trunc('#{range}', created_at) AS \"range\", count(id)")
|
||||||
|
.group('range').order('range')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'rfcs_solved',
|
||||||
|
name: t('statistics.entries.request_for_comments.percent_solved'),
|
||||||
|
data: RequestForComment.in_range(from, to)
|
||||||
|
.where(solved: true)
|
||||||
|
.select("date_trunc('#{range}', created_at) AS \"range\", count(id)")
|
||||||
|
.group('range').order('range')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'rfcs_soft_solved',
|
||||||
|
name: t('statistics.entries.request_for_comments.percent_soft_solved'),
|
||||||
|
data: RequestForComment.in_range(from, to).unsolved
|
||||||
|
.where(full_score_reached: true)
|
||||||
|
.select("date_trunc('#{range}', created_at) AS \"range\", count(id)")
|
||||||
|
.group('range').order('range')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'rfcs_unsolved',
|
||||||
|
name: t('statistics.entries.request_for_comments.percent_unsolved'),
|
||||||
|
data: RequestForComment.in_range(from, to).unsolved
|
||||||
|
.select("date_trunc('#{range}', created_at) AS \"range\", count(id)")
|
||||||
|
.group('range').order('range')
|
||||||
|
}
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user