diff --git a/app/controllers/admin/api/stats_controller.rb b/app/controllers/admin/api/stats_controller.rb index c86badceb..b025e3195 100644 --- a/app/controllers/admin/api/stats_controller.rb +++ b/app/controllers/admin/api/stats_controller.rb @@ -10,7 +10,7 @@ class Admin::Api::StatsController < Admin::Api::BaseController ds = Ahoy::DataSource.new if params[:event].present? - ds.add params[:event].titleize, Ahoy::Event.where(name: params[:event]).group_by_day(:time).count + ds.add params[:event].titleize, Ahoy::Chart.new(params[:event]).group_by_day(:time).count end if params[:visits].present? diff --git a/app/controllers/admin/stats_controller.rb b/app/controllers/admin/stats_controller.rb index 3c8e05579..fbfc06618 100644 --- a/app/controllers/admin/stats_controller.rb +++ b/app/controllers/admin/stats_controller.rb @@ -1,6 +1,6 @@ class Admin::StatsController < Admin::BaseController def show - @event_names = Ahoy::Event.distinct.order(:name).pluck(:name) + @event_names = Ahoy::Chart.active_event_names @visits = Visit.count @debates = Debate.with_hidden.count @@ -34,7 +34,7 @@ class Admin::StatsController < Admin::BaseController @event = params[:event] if params[:event] - @count = Ahoy::Event.where(name: params[:event]).count + @count = Ahoy::Chart.new(params[:event]).count else @count = params[:count] end diff --git a/app/models/ahoy/chart.rb b/app/models/ahoy/chart.rb new file mode 100644 index 000000000..fa71186e7 --- /dev/null +++ b/app/models/ahoy/chart.rb @@ -0,0 +1,20 @@ +module Ahoy + class Chart + attr_reader :event_name + delegate :count, :group_by_day, to: :events + + def initialize(event_name) + @event_name = event_name + end + + def self.active_event_names + Ahoy::Event.distinct.order(:name).pluck(:name) + end + + private + + def events + Ahoy::Event.where(name: event_name) + end + end +end