mirror of
https://github.com/edcommonwealth/sqm-dashboards.git
synced 2026-03-08 23:18:18 -07:00
feat: add popover to analyze graphs that displays the n-size of the different columns. Make sure to only calculate a score for a race if there are more than 10 respondents to a question.
This commit is contained in:
parent
cec48e55d3
commit
67e469a66c
41 changed files with 226 additions and 64 deletions
|
|
@ -5,11 +5,11 @@ module Analyze
|
|||
class AllData
|
||||
include Analyze::Graph::Column
|
||||
def to_s
|
||||
'All Data'
|
||||
"All Data"
|
||||
end
|
||||
|
||||
def slug
|
||||
'all-data'
|
||||
"all-data"
|
||||
end
|
||||
|
||||
def columns
|
||||
|
|
|
|||
|
|
@ -5,11 +5,11 @@ module Analyze
|
|||
module Column
|
||||
class AllAdmin < GroupedBarColumnPresenter
|
||||
def label
|
||||
'All Admin'
|
||||
"All Admin"
|
||||
end
|
||||
|
||||
def basis
|
||||
'admin data'
|
||||
"admin data"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
@ -23,12 +23,16 @@ module Analyze
|
|||
end
|
||||
|
||||
def insufficiency_message
|
||||
['data not', 'available']
|
||||
["data not", "available"]
|
||||
end
|
||||
|
||||
def score(year_index)
|
||||
measure.admin_score(school:, academic_year: academic_years[year_index])
|
||||
end
|
||||
|
||||
def type
|
||||
:admin
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ module Analyze
|
|||
module Column
|
||||
class AllStudent < GroupedBarColumnPresenter
|
||||
def label
|
||||
'All Students'
|
||||
"All Students"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
@ -23,6 +23,10 @@ module Analyze
|
|||
def score(year_index)
|
||||
measure.student_score(school:, academic_year: academic_years[year_index])
|
||||
end
|
||||
|
||||
def type
|
||||
:student
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ module Analyze
|
|||
module Column
|
||||
class AllSurveyData < GroupedBarColumnPresenter
|
||||
def label
|
||||
'Survey Data'
|
||||
"Survey Data"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
@ -24,6 +24,10 @@ module Analyze
|
|||
combined_score(school:, academic_year: academic_years[year_index])
|
||||
end
|
||||
|
||||
def type
|
||||
:all_survey_data
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def combined_score(school:, academic_year:)
|
||||
|
|
|
|||
|
|
@ -5,11 +5,11 @@ module Analyze
|
|||
module Column
|
||||
class AllTeacher < GroupedBarColumnPresenter
|
||||
def label
|
||||
'All Teachers'
|
||||
"All Teachers"
|
||||
end
|
||||
|
||||
def basis
|
||||
'teacher surveys'
|
||||
"teacher surveys"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
@ -27,6 +27,15 @@ module Analyze
|
|||
def score(year_index)
|
||||
measure.teacher_score(school:, academic_year: academic_years[year_index])
|
||||
end
|
||||
|
||||
def type
|
||||
:teacher
|
||||
end
|
||||
|
||||
def n_size(year_index)
|
||||
SurveyItemResponse.where(survey_item: measure.teacher_survey_items, school:,
|
||||
academic_year: academic_years[year_index]).count
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -6,12 +6,13 @@ module Analyze
|
|||
module GenderColumn
|
||||
class Female < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::GenderColumn::ScoreForGender
|
||||
include Analyze::Graph::Column::GenderColumn::GenderCount
|
||||
def label
|
||||
'Female'
|
||||
"Female"
|
||||
end
|
||||
|
||||
def basis
|
||||
'student'
|
||||
"student"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
module Analyze
|
||||
module Graph
|
||||
module Column
|
||||
module GenderColumn
|
||||
module GenderCount
|
||||
def type
|
||||
:student
|
||||
end
|
||||
|
||||
def n_size(year_index)
|
||||
SurveyItemResponse.where(gender:, survey_item: measure.student_survey_items, school:, grade: grades(year_index),
|
||||
academic_year: academic_years[year_index]).select(:response_id).distinct.count
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -6,12 +6,13 @@ module Analyze
|
|||
module GenderColumn
|
||||
class Male < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::GenderColumn::ScoreForGender
|
||||
include Analyze::Graph::Column::GenderColumn::GenderCount
|
||||
def label
|
||||
'Male'
|
||||
"Male"
|
||||
end
|
||||
|
||||
def basis
|
||||
'student'
|
||||
"student"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
|
|||
|
|
@ -6,12 +6,13 @@ module Analyze
|
|||
module GenderColumn
|
||||
class NonBinary < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::GenderColumn::ScoreForGender
|
||||
include Analyze::Graph::Column::GenderColumn::GenderCount
|
||||
def label
|
||||
'Non-Binary'
|
||||
"Non-Binary"
|
||||
end
|
||||
|
||||
def basis
|
||||
'student'
|
||||
"student"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
|
|||
|
|
@ -6,12 +6,13 @@ module Analyze
|
|||
module GenderColumn
|
||||
class Unknown < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::GenderColumn::ScoreForGender
|
||||
include Analyze::Graph::Column::GenderColumn::GenderCount
|
||||
def label
|
||||
'Unknown'
|
||||
"Unknown"
|
||||
end
|
||||
|
||||
def basis
|
||||
'student'
|
||||
"student"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
|
|||
|
|
@ -6,12 +6,13 @@ module Analyze
|
|||
module Grade
|
||||
class Eight < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::Grade::ScoreForGrade
|
||||
include Analyze::Graph::Column::Grade::GradeCount
|
||||
def label
|
||||
'Grade 8'
|
||||
"Grade 8"
|
||||
end
|
||||
|
||||
def basis
|
||||
'student'
|
||||
"student"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
@ -30,4 +31,3 @@ module Analyze
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -6,12 +6,13 @@ module Analyze
|
|||
module Grade
|
||||
class Eleven < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::Grade::ScoreForGrade
|
||||
include Analyze::Graph::Column::Grade::GradeCount
|
||||
def label
|
||||
'Grade 11'
|
||||
"Grade 11"
|
||||
end
|
||||
|
||||
def basis
|
||||
'student'
|
||||
"student"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
@ -30,4 +31,3 @@ module Analyze
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -6,12 +6,13 @@ module Analyze
|
|||
module Grade
|
||||
class Five < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::Grade::ScoreForGrade
|
||||
include Analyze::Graph::Column::Grade::GradeCount
|
||||
def label
|
||||
'Grade 5'
|
||||
"Grade 5"
|
||||
end
|
||||
|
||||
def basis
|
||||
'student'
|
||||
"student"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
|
|||
|
|
@ -6,12 +6,13 @@ module Analyze
|
|||
module Grade
|
||||
class Four < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::Grade::ScoreForGrade
|
||||
include Analyze::Graph::Column::Grade::GradeCount
|
||||
def label
|
||||
'Grade 4'
|
||||
"Grade 4"
|
||||
end
|
||||
|
||||
def basis
|
||||
'student'
|
||||
"student"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
|
|||
18
app/presenters/analyze/graph/column/grade/grade_count.rb
Normal file
18
app/presenters/analyze/graph/column/grade/grade_count.rb
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
module Analyze
|
||||
module Graph
|
||||
module Column
|
||||
module Grade
|
||||
module GradeCount
|
||||
def type
|
||||
:student
|
||||
end
|
||||
|
||||
def n_size(year_index)
|
||||
SurveyItemResponse.where(grade:, survey_item: measure.student_survey_items, school:,
|
||||
academic_year: academic_years[year_index]).select(:response_id).distinct.count
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -6,12 +6,13 @@ module Analyze
|
|||
module Grade
|
||||
class Nine < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::Grade::ScoreForGrade
|
||||
include Analyze::Graph::Column::Grade::GradeCount
|
||||
def label
|
||||
'Grade 9'
|
||||
"Grade 9"
|
||||
end
|
||||
|
||||
def basis
|
||||
'student'
|
||||
"student"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
@ -30,5 +31,3 @@ module Analyze
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -6,12 +6,13 @@ module Analyze
|
|||
module Grade
|
||||
class One < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::Grade::ScoreForGrade
|
||||
include Analyze::Graph::Column::Grade::GradeCount
|
||||
def label
|
||||
'Grade 1'
|
||||
"Grade 1"
|
||||
end
|
||||
|
||||
def basis
|
||||
'student'
|
||||
"student"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
|
|||
|
|
@ -6,12 +6,13 @@ module Analyze
|
|||
module Grade
|
||||
class Seven < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::Grade::ScoreForGrade
|
||||
include Analyze::Graph::Column::Grade::GradeCount
|
||||
def label
|
||||
'Grade 7'
|
||||
"Grade 7"
|
||||
end
|
||||
|
||||
def basis
|
||||
'student'
|
||||
"student"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
|
|||
|
|
@ -6,12 +6,13 @@ module Analyze
|
|||
module Grade
|
||||
class Six < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::Grade::ScoreForGrade
|
||||
include Analyze::Graph::Column::Grade::GradeCount
|
||||
def label
|
||||
'Grade 6'
|
||||
"Grade 6"
|
||||
end
|
||||
|
||||
def basis
|
||||
'student'
|
||||
"student"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
|
|||
|
|
@ -6,12 +6,13 @@ module Analyze
|
|||
module Grade
|
||||
class Ten < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::Grade::ScoreForGrade
|
||||
include Analyze::Graph::Column::Grade::GradeCount
|
||||
def label
|
||||
'Grade 10'
|
||||
"Grade 10"
|
||||
end
|
||||
|
||||
def basis
|
||||
'student'
|
||||
"student"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
@ -30,5 +31,3 @@ module Analyze
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -6,12 +6,13 @@ module Analyze
|
|||
module Grade
|
||||
class Three < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::Grade::ScoreForGrade
|
||||
include Analyze::Graph::Column::Grade::GradeCount
|
||||
def label
|
||||
'Grade 3'
|
||||
"Grade 3"
|
||||
end
|
||||
|
||||
def basis
|
||||
'student'
|
||||
"student"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
|
|||
|
|
@ -6,12 +6,13 @@ module Analyze
|
|||
module Grade
|
||||
class Twelve < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::Grade::ScoreForGrade
|
||||
include Analyze::Graph::Column::Grade::GradeCount
|
||||
def label
|
||||
'Grade 12'
|
||||
"Grade 12"
|
||||
end
|
||||
|
||||
def basis
|
||||
'student'
|
||||
"student"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
@ -30,5 +31,3 @@ module Analyze
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -8,12 +8,13 @@ module Analyze
|
|||
attr_reader :sufficient_responses
|
||||
|
||||
include Analyze::Graph::Column::Grade::ScoreForGrade
|
||||
include Analyze::Graph::Column::Grade::GradeCount
|
||||
def label
|
||||
'Grade 2'
|
||||
"Grade 2"
|
||||
end
|
||||
|
||||
def basis
|
||||
'student'
|
||||
"student"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
|
|||
|
|
@ -6,12 +6,13 @@ module Analyze
|
|||
module Grade
|
||||
class Zero < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::Grade::ScoreForGrade
|
||||
include Analyze::Graph::Column::Grade::GradeCount
|
||||
def label
|
||||
'Kindergarten'
|
||||
"Kindergarten"
|
||||
end
|
||||
|
||||
def basis
|
||||
'student'
|
||||
"student"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
|
|||
|
|
@ -105,11 +105,27 @@ module Analyze
|
|||
"student surveys"
|
||||
end
|
||||
|
||||
def type
|
||||
:all_data
|
||||
end
|
||||
|
||||
def show_popover?
|
||||
%i[student teacher].include? type
|
||||
end
|
||||
|
||||
def n_size(year_index)
|
||||
SurveyItemResponse.where(survey_item: measure.student_survey_items, school:, grade: grades(year_index),
|
||||
academic_year: academic_years[year_index]).select(:response_id).distinct.count
|
||||
end
|
||||
|
||||
def popover_content(year_index)
|
||||
"#{n_size(year_index)} #{type.to_s.capitalize}s"
|
||||
end
|
||||
|
||||
def insufficiency_message
|
||||
["survey response", "rate below 25%"]
|
||||
end
|
||||
|
||||
# TODO: figure out why this doesn't work
|
||||
def sufficient_data?(year_index)
|
||||
case basis
|
||||
when "student"
|
||||
|
|
@ -121,6 +137,10 @@ module Analyze
|
|||
end
|
||||
end
|
||||
|
||||
def grades(year_index)
|
||||
Respondent.find_by(school:, academic_year: academic_years[year_index]).counts_by_grade.keys
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
YearlyScore = Struct.new(:year, :score)
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ module Analyze
|
|||
module IncomeColumn
|
||||
class Disadvantaged < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::IncomeColumn::ScoreForIncome
|
||||
include Analyze::Graph::Column::IncomeColumn::IncomeCount
|
||||
def label
|
||||
"Economically Disadvantaged"
|
||||
end
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
module Analyze
|
||||
module Graph
|
||||
module Column
|
||||
module IncomeColumn
|
||||
module IncomeCount
|
||||
def type
|
||||
:student
|
||||
end
|
||||
|
||||
def n_size(year_index)
|
||||
SurveyItemResponse.where(income:, survey_item: measure.student_survey_items, school:, grade: grades(year_index),
|
||||
academic_year: academic_years[year_index]).select(:response_id).distinct.count
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -6,6 +6,7 @@ module Analyze
|
|||
module IncomeColumn
|
||||
class NotDisadvantaged < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::IncomeColumn::ScoreForIncome
|
||||
include Analyze::Graph::Column::IncomeColumn::IncomeCount
|
||||
def label
|
||||
"Not Disadvantaged"
|
||||
end
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ module Analyze
|
|||
module IncomeColumn
|
||||
class Unknown < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::IncomeColumn::ScoreForIncome
|
||||
include Analyze::Graph::Column::IncomeColumn::IncomeCount
|
||||
def label
|
||||
"Unknown"
|
||||
end
|
||||
|
|
|
|||
|
|
@ -6,8 +6,9 @@ module Analyze
|
|||
module RaceColumn
|
||||
class AmericanIndian < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::ScoreForRace
|
||||
include Analyze::Graph::Column::RaceColumn::RaceCount
|
||||
def label
|
||||
'American Indian'
|
||||
"American Indian"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
|
|||
|
|
@ -6,8 +6,9 @@ module Analyze
|
|||
module RaceColumn
|
||||
class Asian < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::ScoreForRace
|
||||
include Analyze::Graph::Column::RaceColumn::RaceCount
|
||||
def label
|
||||
'Asian'
|
||||
"Asian"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
|
|||
|
|
@ -6,8 +6,9 @@ module Analyze
|
|||
module RaceColumn
|
||||
class Black < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::ScoreForRace
|
||||
include Analyze::Graph::Column::RaceColumn::RaceCount
|
||||
def label
|
||||
'Black'
|
||||
"Black"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
|
|||
|
|
@ -6,8 +6,9 @@ module Analyze
|
|||
module RaceColumn
|
||||
class Hispanic < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::ScoreForRace
|
||||
include Analyze::Graph::Column::RaceColumn::RaceCount
|
||||
def label
|
||||
'Hispanic'
|
||||
"Hispanic"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
|
|||
|
|
@ -6,9 +6,10 @@ module Analyze
|
|||
module RaceColumn
|
||||
class MiddleEastern < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::ScoreForRace
|
||||
include Analyze::Graph::Column::RaceColumn::RaceCount
|
||||
|
||||
def label
|
||||
'Middle Eastern'
|
||||
"Middle Eastern"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
|
|||
|
|
@ -6,8 +6,9 @@ module Analyze
|
|||
module RaceColumn
|
||||
class Multiracial < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::ScoreForRace
|
||||
include Analyze::Graph::Column::RaceColumn::RaceCount
|
||||
def label
|
||||
'Multiracial'
|
||||
"Multiracial"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
module Analyze
|
||||
module Graph
|
||||
module Column
|
||||
module RaceColumn
|
||||
module RaceCount
|
||||
def type
|
||||
:student
|
||||
end
|
||||
|
||||
def n_size(year_index)
|
||||
SurveyItemResponse.joins("JOIN student_races on survey_item_responses.student_id = student_races.student_id JOIN students on students.id = student_races.student_id").where(
|
||||
school:, academic_year: academic_years[year_index],
|
||||
survey_item: measure.student_survey_items
|
||||
).where("student_races.race_id": race.id).select(:response_id).distinct.count
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -6,8 +6,9 @@ module Analyze
|
|||
module RaceColumn
|
||||
class Unknown < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::ScoreForRace
|
||||
include Analyze::Graph::Column::RaceColumn::RaceCount
|
||||
def label
|
||||
'Not Listed'
|
||||
"Not Listed"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
|
|||
|
|
@ -6,8 +6,9 @@ module Analyze
|
|||
module RaceColumn
|
||||
class White < GroupedBarColumnPresenter
|
||||
include Analyze::Graph::Column::ScoreForRace
|
||||
include Analyze::Graph::Column::RaceColumn::RaceCount
|
||||
def label
|
||||
'White'
|
||||
"White"
|
||||
end
|
||||
|
||||
def show_irrelevancy_message?
|
||||
|
|
|
|||
|
|
@ -60,9 +60,9 @@ class RaceScoreLoader
|
|||
def self.grouped_responses(school:, academic_year:, survey_items:, race:)
|
||||
@grouped_responses ||= Hash.new do |memo, (school, academic_year, survey_items, race)|
|
||||
memo[[school, academic_year, survey_items, race]] =
|
||||
SurveyItemResponse.joins('JOIN student_races on survey_item_responses.student_id = student_races.student_id JOIN students on students.id = student_races.student_id').where(
|
||||
SurveyItemResponse.joins("JOIN student_races on survey_item_responses.student_id = student_races.student_id JOIN students on students.id = student_races.student_id").where(
|
||||
school:, academic_year:
|
||||
).where("student_races.race_id": race.id).group(:survey_item_id).average(:likert_score)
|
||||
).where("student_races.race_id": race.id).group(:survey_item_id).having("count(*) >= 10").average(:likert_score)
|
||||
end
|
||||
|
||||
@grouped_responses[[school, academic_year, survey_items, race]]
|
||||
|
|
@ -88,7 +88,7 @@ class RaceScoreLoader
|
|||
|
||||
def self.sufficient_responses(school:, academic_year:, race:)
|
||||
@sufficient_responses ||= Hash.new do |memo, (school, academic_year, race)|
|
||||
number_of_students_for_a_racial_group = SurveyItemResponse.joins('JOIN student_races on survey_item_responses.student_id = student_races.student_id JOIN students on students.id = student_races.student_id').where(
|
||||
number_of_students_for_a_racial_group = SurveyItemResponse.joins("JOIN student_races on survey_item_responses.student_id = student_races.student_id JOIN students on students.id = student_races.student_id").where(
|
||||
school:, academic_year:
|
||||
).where("student_races.race_id": race.id).distinct.pluck(:student_id).count
|
||||
memo[[school, academic_year, race]] = number_of_students_for_a_racial_group >= 10
|
||||
|
|
|
|||
|
|
@ -2,13 +2,25 @@
|
|||
<% score_label_y = [5, 10, 15, 5, 10, 15 ] %>
|
||||
<% column.bars.each_with_index do |bar, index| %>
|
||||
<% if column.sufficient_data?(index) %>
|
||||
<rect data-for-academic-year="<%= bar.academic_year.range %>" x="<%= bar.x_position %>%" y="<%= bar.y_offset %>%" width="<%= column.bar_width %>%" height="<%= bar.bar_height_percentage %>%" fill="<%= bar.color %>" />
|
||||
<rect
|
||||
<% if column.show_popover? %>
|
||||
data-bs-toggle="popover"
|
||||
data-bs-placement="right"
|
||||
data-bs-content="<%= column.popover_content(index) %>"
|
||||
<% end %>
|
||||
data-for-academic-year="<%= bar.academic_year.range %>"
|
||||
x="<%= bar.x_position %>%"
|
||||
y="<%= bar.y_offset %>%"
|
||||
width="<%= column.bar_width %>%"
|
||||
height="<%= bar.bar_height_percentage %>%"
|
||||
fill="<%= bar.color %>" />
|
||||
|
||||
<% if ENV["SCORES"].present? && ENV["SCORES"].upcase == "SHOW" %>
|
||||
<text x="<%= bar.x_position + (column.bar_width * 0.5) %>%" y="<%= score_label_y[index] %>%" text-anchor="middle" dominant-baseline="middle">
|
||||
<%= bar.average %>
|
||||
</text>
|
||||
<% end %>
|
||||
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
|
|
|
|||
15
cypress/e2e/analyze.cy.js
Normal file
15
cypress/e2e/analyze.cy.js
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
describe('navigates the analyze page', () => {
|
||||
it('it displays counts of students and teacher in the hovers', () => {
|
||||
|
||||
login("/districts/lee-public-schools/schools/lee-elementary-school/analyze?year=2022-23&academic_years=2022-23", "bGVlOmxlZSE=")
|
||||
})
|
||||
})
|
||||
|
||||
function login(path, credentials) {
|
||||
cy.visit(path, {
|
||||
headers: {
|
||||
authorization: `Basic ${credentials}`
|
||||
},
|
||||
failOnStatusCode: false
|
||||
})
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue