chore: move code that normalizes race data to the Race class

rpp-main
Nelson Jovel 2 years ago
parent c565dbe46f
commit 080a054cad

@ -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

@ -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

@ -80,17 +80,17 @@
<div class="font-size-14">Ideal</div>
</div>
</div>
<%= render partial: "quality_framework_indicators", locals: { category_presenters: @category_presenters }, cached: true %>
<%= render partial: "quality_framework_indicators", locals: { category_presenters: @category_presenters } %>
<div class="overall-response-rate-row">
<%= 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} %>
</div>
</div>
<div class="card">
<h2 class="sub-header-2 mb-4">Distance From Benchmark</h2>
<%= render partial: "variance_chart", locals: { presenters: @variance_chart_row_presenters } , cached: true %>
<%= render partial: "variance_chart", locals: { presenters: @variance_chart_row_presenters } %>
</div>
<% if @district == District.find_by_name("Boston") %>
<%= render partial: 'layouts/boston_modal' %>

Loading…
Cancel
Save