diff --git a/app/models/admin_dashboard_data.rb b/app/models/admin_dashboard_data.rb index 42535237636..33e34d9ffa7 100644 --- a/app/models/admin_dashboard_data.rb +++ b/app/models/admin_dashboard_data.rb @@ -6,6 +6,7 @@ class AdminDashboardData GLOBAL_REPORTS ||= [ 'visits', 'signups', + 'profile_views', 'topics', 'posts', 'time_to_first_response', diff --git a/app/models/report.rb b/app/models/report.rb index 204bc3e9bc5..812d47271ce 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -98,6 +98,14 @@ class Report report_about report, User.real, :count_by_signup_date end + def self.report_profile_views(report) + start_date = report.start_date.to_date + end_date = report.end_date.to_date + basic_report_about report, UserProfileView, :profile_views_by_day, start_date, end_date + report.total = UserProfile.sum(:views) + report.prev30Days = UserProfileView.where("viewed_at >= ? AND viewed_at < ?", start_date - 30.days, start_date + 1).count + end + def self.report_topics(report) basic_report_about report, Topic, :listable_count_per_day, report.start_date, report.end_date, report.category_id countable = Topic.listable_topics diff --git a/app/models/user_profile_view.rb b/app/models/user_profile_view.rb index 935737173e7..e3ae1ca7282 100644 --- a/app/models/user_profile_view.rb +++ b/app/models/user_profile_view.rb @@ -39,4 +39,9 @@ class UserProfileView < ActiveRecord::Base end end end + + def self.profile_views_by_day(start_date, end_date) + profile_views = self.where("viewed_at >= ? AND viewed_at < ?", start_date, end_date + 1.day) + profile_views.group("date(viewed_at)").order("date(viewed_at)").count + end end diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index 73654e2e495..f41c27f58b7 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -575,6 +575,10 @@ en: title: "New Users" xaxis: "Day" yaxis: "Number of new users" + profile_views: + title: "User Profile Views" + xaxis: "Day" + yaxis: "Number of user profiles viewed" topics: title: "Topics" xaxis: "Day"