discourse/app/models/concerns/reports/profile_views.rb

30 lines
813 B
Ruby

# frozen_string_literal: true
module Reports::ProfileViews
extend ActiveSupport::Concern
class_methods do
def report_profile_views(report)
group_filter = report.filters.dig(:group)
report.add_filter("group", type: "group", default: group_filter)
start_date = report.start_date
end_date = report.end_date
basic_report_about report,
UserProfileView,
:profile_views_by_day,
start_date,
end_date,
group_filter
report.total = UserProfile.sum(:views)
report.prev30Days =
UserProfileView.where(
"viewed_at >= ? AND viewed_at < ?",
start_date - 30.days,
start_date + 1,
).count
end
end
end