mirror of
https://github.com/edcommonwealth/sqm-dashboards.git
synced 2026-03-07 21:48:16 -08:00
chore: move code that normalizes race data to the Race class
This commit is contained in:
parent
7670246291
commit
75451648e5
3 changed files with 19 additions and 31 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -155,7 +155,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
|
||||
|
||||
|
|
@ -327,30 +327,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…
Add table
Add a link
Reference in a new issue