diff --git a/app/controllers/admin/dashboard_controller.rb b/app/controllers/admin/dashboard_controller.rb new file mode 100644 index 0000000..13c096b --- /dev/null +++ b/app/controllers/admin/dashboard_controller.rb @@ -0,0 +1,41 @@ +# frozen_string_literal: true + +module Admin + class DashboardController < ApplicationController + def index + @manpower_survey = [ + { name: 'Chapter Manpower', data: {}, points: false }, + { name: 'Chapter Count', data: {}, format: 'bar', points: false } + ] + Chapter.active.each do |c| + c.manpower_surveys.each do |s| + survey_date = s.survey_date + manpower = s.manpower + @manpower_survey[0]['data'] ||= {} + @manpower_survey[0]['data'][survey_date] ||= 0 + @manpower_survey[0]['data'][survey_date] += manpower + @manpower_survey[1]['data'] ||= {} + @manpower_survey[1]['data'][survey_date] ||= 0 + @manpower_survey[1]['data'][survey_date] += 1 + end + end + + @active_chapters = Chapter.active.size + + @current_manpower = Chapter.where(status: true).sum(:manpower) + + @largest_chapters = Chapter.where(status: true) + .order('manpower DESC') + .limit(10) + + @smallest_chapters = Chapter.where(status: true) + .where('chapters.manpower > 0') + .order('manpower ASC') + .limit(10) + + @manpower_distribution = Chapter.where(status: true) + .order('manpower DESC') + .pluck(:name, :manpower) + end + end +end diff --git a/app/helpers/admin/dashboard_helper.rb b/app/helpers/admin/dashboard_helper.rb new file mode 100644 index 0000000..4052b7c --- /dev/null +++ b/app/helpers/admin/dashboard_helper.rb @@ -0,0 +1,2 @@ +module Admin::DashboardHelper +end diff --git a/app/views/admin/_admin_menu.html.erb b/app/views/admin/_admin_menu.html.erb index cc6c0dd..85977fe 100644 --- a/app/views/admin/_admin_menu.html.erb +++ b/app/views/admin/_admin_menu.html.erb @@ -1,4 +1,7 @@