From b845d61db3237a08e1df69da6a7ac3956b63d97e Mon Sep 17 00:00:00 2001 From: r888888888 Date: Tue, 16 Jun 2015 17:48:49 -0700 Subject: [PATCH] add quartile+median scores to promotion report --- app/logical/reports/user_promotions.rb | 10 +++++++++- app/views/reports/user_promotions.html.erb | 4 ++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/logical/reports/user_promotions.rb b/app/logical/reports/user_promotions.rb index c8630a96d..ad35d32d8 100644 --- a/app/logical/reports/user_promotions.rb +++ b/app/logical/reports/user_promotions.rb @@ -17,6 +17,14 @@ module Reports def deletion_confidence_interval Reports::UserPromotions.deletion_confidence_interval_for(user) end + + def median_score + ActiveRecord::Base.select_value_sql("select percentile_cont(0.50) within group (order by score) from posts where created_at >= ? and uploader_id = ?", 30.days.ago, user.id).to_i + end + + def quartile_score + ActiveRecord::Base.select_value_sql("select percentile_cont(0.25) within group (order by score) from posts where created_at >= ? and uploader_id = ?", 30.days.ago, user.id).to_i + end end def self.confidence_interval_for(user, n) @@ -46,7 +54,7 @@ module Reports end def users - ::User.where("users.level < ? and users.post_upload_count >= 150", ::User::Levels::CONTRIBUTOR).order("created_at desc").limit(50).map {|x| Reports::UserPromotions::User.new(x)} + ::User.where("users.level < ? and users.post_upload_count >= 250", ::User::Levels::CONTRIBUTOR).order("created_at desc").limit(50).map {|x| Reports::UserPromotions::User.new(x)} end end end diff --git a/app/views/reports/user_promotions.html.erb b/app/views/reports/user_promotions.html.erb index bc048c1eb..c8b288dda 100644 --- a/app/views/reports/user_promotions.html.erb +++ b/app/views/reports/user_promotions.html.erb @@ -13,6 +13,8 @@ Age score:3+ score:6+ + quartile score + median score deletion @@ -25,6 +27,8 @@ <%= user.level_string %> <%= user.post_upload_count %> <%= time_ago_in_words user.created_at %> + <%= user.quartile_score %> + <%= user.median_score %> <%= number_to_percentage user.confidence_interval_for(3), :precision => 0 %> <%= number_to_percentage user.confidence_interval_for(6), :precision => 0 %> <%= number_to_percentage user.deletion_confidence_interval, :precision => 0 %>