From ef2faff245d7b655c15c6eabc95a5bbcdcd6268b Mon Sep 17 00:00:00 2001 From: r888888888 Date: Fri, 21 Jun 2013 16:52:59 -0700 Subject: [PATCH] cache user promotion report --- app/logical/reports/user_promotions.rb | 4 +++- app/views/reports/user_promotions.html.erb | 18 ++++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/app/logical/reports/user_promotions.rb b/app/logical/reports/user_promotions.rb index 1ce13e8f1..59ffbffcf 100644 --- a/app/logical/reports/user_promotions.rb +++ b/app/logical/reports/user_promotions.rb @@ -23,7 +23,9 @@ module Reports end def users - User.joins(:posts).where("users.level < ?", User::Levels::CONTRIBUTOR).where("posts.created_at >= ? and posts.fav_count >= 1", self.class.min_time).order("users.name") + User.with_timeout(30_000) do + User.joins(:posts).where("users.level < ?", User::Levels::CONTRIBUTOR).where("posts.created_at >= ? and posts.fav_count >= 1", self.class.min_time).order("users.name") + end end end end diff --git a/app/views/reports/user_promotions.html.erb b/app/views/reports/user_promotions.html.erb index ae0364aeb..db89f783f 100644 --- a/app/views/reports/user_promotions.html.erb +++ b/app/views/reports/user_promotions.html.erb @@ -15,14 +15,16 @@ - <% @report.users.each do |user| %> - - <%= link_to user.name, user_path(user) %> - <%= user.level_string %> - <%= number_to_percentage Reports::UserPromotions.confidence_interval_for(user, 1), :precision => 0 %> - <%= number_to_percentage Reports::UserPromotions.confidence_interval_for(user, 5), :precision => 0 %> - <%= number_to_percentage Reports::UserPromotions.confidence_interval_for(user, 10), :precision => 0 %> - + <% cache("user-promotions-report/#{Date.today}") do %> + <% @report.users.each do |user| %> + + <%= link_to user.name, user_path(user) %> + <%= user.level_string %> + <%= number_to_percentage Reports::UserPromotions.confidence_interval_for(user, 1), :precision => 0 %> + <%= number_to_percentage Reports::UserPromotions.confidence_interval_for(user, 5), :precision => 0 %> + <%= number_to_percentage Reports::UserPromotions.confidence_interval_for(user, 10), :precision => 0 %> + + <% end %> <% end %>