30 lines
813 B
Ruby
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
|