Stats can be filtered using the regions selector at the top
This commit is contained in:
parent
7e188aa5f1
commit
208fe78178
@ -1,20 +1,34 @@
|
||||
# Generate statistics, around events, by date or place
|
||||
class StatsController < ApplicationController
|
||||
before_action :set_temporal, :set_local, only: [:index]
|
||||
has_scope :region, :locality, :tag, :daylimit, :year
|
||||
has_scope :near, type: :hash, using: %i[location distance]
|
||||
|
||||
before_action :set_events, :counts, :temporal, :local, only: [:index]
|
||||
|
||||
private
|
||||
|
||||
def set_temporal
|
||||
@years = Event.group(year_grouping).count
|
||||
@months = Event.group(year_grouping, month_grouping).count
|
||||
def counts
|
||||
@events_count = @events.count
|
||||
@events_um_count = apply_scopes(Event.unmoderated).count
|
||||
@orgas_count = apply_scopes(Orga).moderated.count
|
||||
@orgas_um_count = apply_scopes(Orga.unmoderated).count
|
||||
end
|
||||
|
||||
def set_local
|
||||
@regions = Event.joins(:region).group(:region_id, year_grouping).count
|
||||
@city_events = Event.group(:city).having('count(city) > 3')
|
||||
def temporal
|
||||
@years = @events.group(year_grouping).count
|
||||
@months = @events.group(year_grouping, month_grouping).count
|
||||
end
|
||||
|
||||
def local
|
||||
@regions = @events.joins(:region).group(:region_id, year_grouping).count
|
||||
@city_events = @events.group(:city).having('count(city) > 3')
|
||||
.order('count(city) desc').count
|
||||
end
|
||||
|
||||
def set_events
|
||||
@events = apply_scopes Event.moderated
|
||||
end
|
||||
|
||||
def year_grouping
|
||||
if %w[Mysql2 MySQL PostgreSQL].include? Event.connection.adapter_name
|
||||
'extract(year from start_time)'
|
||||
|
@ -4,16 +4,16 @@
|
||||
|
||||
%dl
|
||||
%dt= t '.allEvents'
|
||||
%dd.quantity= number_with_delimiter Event.moderated.count
|
||||
%dd.quantity= number_with_delimiter @events_count
|
||||
|
||||
%dt= t '.awaitingModeration'
|
||||
%dd.quantity= number_with_delimiter Event.unmoderated.count
|
||||
%dd.quantity= number_with_delimiter @events_um_count
|
||||
|
||||
%dt= t '.allOrgas'
|
||||
%dd.quantity= number_with_delimiter Orga.moderated.count
|
||||
%dd.quantity= number_with_delimiter @orgas_count
|
||||
|
||||
%dt= t '.awaitingModeration'
|
||||
%dd.quantity= number_with_delimiter Orga.unmoderated.count
|
||||
%dd.quantity= number_with_delimiter @orgas_um_count
|
||||
|
||||
%h3
|
||||
%em.fa.fa-calendar
|
||||
@ -68,7 +68,7 @@
|
||||
- @years.each do |year|
|
||||
%td.quantity
|
||||
- total += @regions[[region.id, year[0]]] || 0
|
||||
= link_to root_path(year: "#{year[0]}", region: region.id) do
|
||||
= link_to root_path(year: year[0].to_s, region: region.id) do
|
||||
= number_with_delimiter @regions[[region.id, year[0]]]
|
||||
%th.quantity.total= number_with_delimiter total
|
||||
%td.sparkline/
|
||||
|
Loading…
Reference in New Issue
Block a user