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 %>