From dafc63e3a0627d7bb253fdf940c575632eb5229f Mon Sep 17 00:00:00 2001 From: Neil Lalonde <neillalonde@gmail.com> Date: Fri, 22 Aug 2014 14:37:00 -0400 Subject: [PATCH] Show how many likes users received in the last 100 days on their admin profile page --- .../javascripts/admin/templates/user_index.js.handlebars | 1 + app/models/user.rb | 4 ++++ app/serializers/admin_detailed_user_serializer.rb | 5 +++++ config/locales/client.en.yml | 1 + 4 files changed, 11 insertions(+) diff --git a/app/assets/javascripts/admin/templates/user_index.js.handlebars b/app/assets/javascripts/admin/templates/user_index.js.handlebars index 688b96013..a6e07957e 100644 --- a/app/assets/javascripts/admin/templates/user_index.js.handlebars +++ b/app/assets/javascripts/admin/templates/user_index.js.handlebars @@ -321,6 +321,7 @@ <div class='display-row'> <div class='field'>{{i18n admin.user.like_count}}</div> <div class='value'>{{like_count}}</div> + <div class='controls'>{{like_count_last_100_days}} {{i18n admin.user.last_100_days}}</div> </div> <div class='display-row'> <div class='field'>{{i18n admin.user.topics_entered}}</div> diff --git a/app/models/user.rb b/app/models/user.rb index 81f555948..d220e2776 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -375,6 +375,10 @@ class User < ActiveRecord::Base UserAction.where(user_id: id, action_type: UserAction::WAS_LIKED).count end + def like_count_since(time) + UserAction.where(user_id: id, action_type: UserAction::WAS_LIKED).where('created_at > ?', time).count + end + def post_count stat = user_stat || create_user_stat stat.post_count diff --git a/app/serializers/admin_detailed_user_serializer.rb b/app/serializers/admin_detailed_user_serializer.rb index 030e6aded..09371c8e2 100644 --- a/app/serializers/admin_detailed_user_serializer.rb +++ b/app/serializers/admin_detailed_user_serializer.rb @@ -7,6 +7,7 @@ class AdminDetailedUserSerializer < AdminUserSerializer :can_revoke_moderation, :can_impersonate, :like_count, + :like_count_last_100_days, :post_count, :topic_count, :flags_given_count, @@ -52,6 +53,10 @@ class AdminDetailedUserSerializer < AdminUserSerializer object.moderator end + def like_count_last_100_days + object.like_count_since(100.days.ago) + end + def topic_count object.topics.count end diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 0ab78c2c5..916621f36 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -1880,6 +1880,7 @@ en: permissions: Permissions activity: Activity like_count: Likes Received + last_100_days: 'in the last 100 days' private_topics_count: Private Topics posts_read_count: Posts Read post_count: Posts Created