diff --git a/app/models/race.rb b/app/models/race.rb index 25976b0c..7b82d716 100644 --- a/app/models/race.rb +++ b/app/models/race.rb @@ -32,4 +32,18 @@ class Race < ApplicationRecord 99 end end + +def self.normalize_race_list(codes) + # if anyone selects not to disclose their race or prefers to self-describe, categorize that as unknown race + races = codes.map do |code| + code = 99 if [6, 7].include?(code) || code.nil? || code.zero? + code + end.uniq + + races.delete(99) if races.length > 1 #remove unkown race if other races present + races << 100 if races.length > 1 # add multiracial designation if multiple races present + races << 99 if races.length == 0 # add unknown race if other races missing + races + end + end diff --git a/app/services/survey_item_values.rb b/app/services/survey_item_values.rb index e216dc90..809a3508 100644 --- a/app/services/survey_item_values.rb +++ b/app/services/survey_item_values.rb @@ -150,7 +150,7 @@ class SurveyItemValues race_codes = race_codes.push(4) if hispanic == "true" end - process_races(codes: race_codes) + Race.normalize_race_list(race_codes) end end @@ -300,30 +300,4 @@ class SurveyItemValues row[main_item] = likert_score if likert_score.present? && row[main_item].blank? end end - - def process_races(codes:) - races = codes.map do |code| - code = 99 if [6, 7].include?(code) || code.nil? || code.zero? - code - end.uniq - - races = add_unknown_race_if_other_races_missing(races:) - races = remove_unknown_race_if_other_races_present(races:) - add_multiracial_designation(races:) - end - - def remove_unknown_race_if_other_races_present(races:) - races.delete(99) if races.length > 1 - races - end - - def add_multiracial_designation(races:) - races << 100 if races.length > 1 - races - end - - def add_unknown_race_if_other_races_missing(races:) - races << 99 if races.length == 0 - races - end end diff --git a/app/views/overview/index.html.erb b/app/views/overview/index.html.erb index b1c062c0..4adcc49b 100644 --- a/app/views/overview/index.html.erb +++ b/app/views/overview/index.html.erb @@ -80,17 +80,17 @@
Ideal
- <%= render partial: "quality_framework_indicators", locals: { category_presenters: @category_presenters }, cached: true %> + <%= render partial: "quality_framework_indicators", locals: { category_presenters: @category_presenters } %>
- <%= render partial: "response_rate", locals: {response_rate_presenter: @student_response_rate_presenter}, cached: true %> - <%= render partial: "response_rate", locals: {response_rate_presenter: @teacher_response_rate_presenter}, cached: true %> + <%= render partial: "response_rate", locals: {response_rate_presenter: @student_response_rate_presenter} %> + <%= render partial: "response_rate", locals: {response_rate_presenter: @teacher_response_rate_presenter} %>

Distance From Benchmark

- <%= render partial: "variance_chart", locals: { presenters: @variance_chart_row_presenters } , cached: true %> + <%= render partial: "variance_chart", locals: { presenters: @variance_chart_row_presenters } %>
<% if @district == District.find_by_name("Boston") %> <%= render partial: 'layouts/boston_modal' %>