diff --git a/app/controllers/about_controller.rb b/app/controllers/about_controller.rb index b957e445..f6d02c9c 100644 --- a/app/controllers/about_controller.rb +++ b/app/controllers/about_controller.rb @@ -4,26 +4,30 @@ class AboutController < ApplicationController def index; end def about - user_count = User - .where.not(confirmed_at: nil) - .where("answered_count > 0") - .count - - current_ban_count = UserBan - .current - .joins(:user) - .where.not("users.confirmed_at": nil) - .where("users.answered_count > 0") - .count - - @users = user_count - current_ban_count - @questions = Question.count - @answers = Answer.count - @comments = Comment.count - @smiles = Appendable::Reaction.count + cache "about_counters", expires_in: 1.hour do + @users = user_count - current_ban_count + @questions = Question.count(:id) + @answers = Answer.count(:id) + @comments = Comment.count(:id) + @smiles = Appendable::Reaction.count + end end def privacy_policy; end def terms; end + + private + + def user_count = User + .where.not(confirmed_at: nil) + .where("answered_count > 0") + .count + + def current_ban_count = UserBan + .current + .joins(:user) + .where.not("users.confirmed_at": nil) + .where("users.answered_count > 0") + .count end diff --git a/app/views/about/about.html.haml b/app/views/about/about.html.haml index 5dd5ba2b..6dcc22a4 100644 --- a/app/views/about/about.html.haml +++ b/app/views/about/about.html.haml @@ -17,13 +17,13 @@ %h2= t(".statistics.header") %p= t(".statistics.body", app_name: APP_CONFIG["site_name"]) .entry - .entry__value= @questions + .entry__value{ title: number_to_human(@questions) }= number_to_human @questions, units: :short, format: "%n%u" %h4.entry__description= Question.model_name.human(count: @questions) .entry - .entry__value= @answers + .entry__value{ title: number_to_human(@answers) }= number_to_human @answers, units: :short, format: "%n%u" %h4.entry__description= Answer.model_name.human(count: @answers) .entry - .entry__value= @users + .entry__value{ title: number_to_human(@users) }= number_to_human @users, units: :short, format: "%n%u" %h4.entry__description= User.model_name.human(count: @users) = render "shared/links" diff --git a/config/locales/units.en.yml b/config/locales/units.en.yml new file mode 100644 index 00000000..2494fcb1 --- /dev/null +++ b/config/locales/units.en.yml @@ -0,0 +1,7 @@ +en: + short: + unit: "" + thousand: "K" + million: "M" + billion: "B" + trillion: "T"