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

34 lines
812 B
Ruby

# frozen_string_literal: true
module Reports::UsersByTrustLevel
extend ActiveSupport::Concern
class_methods do
def report_users_by_trust_level(report)
report.data = []
report.modes = [:table]
report.dates_filtering = false
report.labels = [
{
property: :key,
title: I18n.t("reports.users_by_trust_level.labels.level")
},
{
property: :y,
type: :number,
title: I18n.t("reports.default.labels.count")
}
]
User.real.group('trust_level').count.sort.each do |level, count|
key = TrustLevel.levels.key(level.to_i)
url = Proc.new { |k| "/admin/users/list/#{k}" }
report.data << { url: url.call(key), key: key, x: level.to_i, y: count }
end
end
end
end