mirror of
https://github.com/edcommonwealth/sqm-dashboards.git
synced 2026-03-07 21:48:16 -08:00
feat: suppress parent view on overview page if the school didn't take the survey
This commit is contained in:
parent
66ed401d57
commit
5de7bbe8a1
4 changed files with 18 additions and 85 deletions
|
|
@ -66,6 +66,10 @@ class CategoryPresenter
|
||||||
@category
|
@category
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def show_parent_view?(school:, academic_year:)
|
||||||
|
subcategories(school:, academic_year:).any? { |subcategory| subcategory.show_scale_presenters? }
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def colors
|
def colors
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,10 @@
|
||||||
<div class="d-flex justify-content-between align-items-center">
|
<div class="d-flex justify-content-between align-items-center">
|
||||||
<h2 class="sub-header-2">School Quality Framework Indicators</h2>
|
<h2 class="sub-header-2">School Quality Framework Indicators</h2>
|
||||||
<%= render partial: "harvey_ball_legend" %>
|
<%= render partial: "harvey_ball_legend" %>
|
||||||
<%= render partial: "student_parent_toggle" %>
|
|
||||||
|
<% if @category_presenters.any? {|category_presenter| category_presenter.show_parent_view?(school: @school, academic_year: @academic_year) } %>
|
||||||
|
<%= render partial: "student_parent_toggle" %>
|
||||||
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<%= render partial: "quality_framework_indicators", locals: { category_presenters: @category_presenters } %>
|
<%= render partial: "quality_framework_indicators", locals: { category_presenters: @category_presenters } %>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -136,6 +136,9 @@ FactoryBot.define do
|
||||||
factory :admin_scale do
|
factory :admin_scale do
|
||||||
scale_id { "a-#{rand}" }
|
scale_id { "a-#{rand}" }
|
||||||
end
|
end
|
||||||
|
factory :parent_scale do
|
||||||
|
scale_id { "p-#{rand}" }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
factory :survey_item do
|
factory :survey_item do
|
||||||
|
|
@ -163,6 +166,13 @@ FactoryBot.define do
|
||||||
approval_low_benchmark { 4.0 }
|
approval_low_benchmark { 4.0 }
|
||||||
ideal_low_benchmark { 4.5 }
|
ideal_low_benchmark { 4.5 }
|
||||||
end
|
end
|
||||||
|
factory :parent_survey_item do
|
||||||
|
survey_item_id { "p-#{rand}" }
|
||||||
|
watch_low_benchmark { 2.0 }
|
||||||
|
growth_low_benchmark { 3.0 }
|
||||||
|
approval_low_benchmark { 4.0 }
|
||||||
|
ideal_low_benchmark { 4.5 }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
factory :survey_item_response do
|
factory :survey_item_response do
|
||||||
|
|
|
||||||
|
|
@ -136,88 +136,4 @@ describe "overview/index" do
|
||||||
expect(displayed_variance_labels.first.inner_text).to include "Display Me"
|
expect(displayed_variance_labels.first.inner_text).to include "Display Me"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when the default view is shown" do
|
|
||||||
let(:variance_chart_row_presenters) do
|
|
||||||
measure = create(:measure, name: "Display Me", measure_id: "display-me")
|
|
||||||
scale = create(:scale, measure:)
|
|
||||||
create(:student_survey_item,
|
|
||||||
scale:,
|
|
||||||
watch_low_benchmark: 1.5,
|
|
||||||
growth_low_benchmark: 2.5,
|
|
||||||
approval_low_benchmark: 3.5,
|
|
||||||
ideal_low_benchmark: 4.5)
|
|
||||||
[
|
|
||||||
Overview::VarianceChartRowPresenter.new(measure:,
|
|
||||||
score: Score.new(average: rand))
|
|
||||||
]
|
|
||||||
end
|
|
||||||
|
|
||||||
before :each do
|
|
||||||
assign :category_presenters, []
|
|
||||||
assign :variance_chart_row_presenters, variance_chart_row_presenters
|
|
||||||
@academic_year = create(:academic_year)
|
|
||||||
assign :academic_years, [@academic_year]
|
|
||||||
@district = create(:district)
|
|
||||||
@school = create(:school)
|
|
||||||
assign :page,
|
|
||||||
Overview::OverviewPresenter.new(params: { view: "student" }, school: @school,
|
|
||||||
academic_year: @academic_year)
|
|
||||||
@student_response_rate_presenter = ResponseRatePresenter.new(focus: :student, school: @school,
|
|
||||||
academic_year: @academic_year)
|
|
||||||
@teacher_response_rate_presenter = ResponseRatePresenter.new(focus: :teacher, school: @school,
|
|
||||||
academic_year: @academic_year)
|
|
||||||
|
|
||||||
Respondent.create!(school: @school, academic_year: @academic_year, total_students: 40, total_teachers: 40)
|
|
||||||
ResponseRate.create!(subcategory: Subcategory.first, school: @school, academic_year: @academic_year,
|
|
||||||
student_response_rate: 100, teacher_response_rate: 100, meets_student_threshold: true, meets_teacher_threshold: true)
|
|
||||||
|
|
||||||
render
|
|
||||||
end
|
|
||||||
it "shows the view with the students & teachers button active" do
|
|
||||||
expect(subject.css("input[id='student_and_teacher_btn'][checked='checked']").count).to eq 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context "when the parent view is shown" do
|
|
||||||
let(:variance_chart_row_presenters) do
|
|
||||||
measure = create(:measure, name: "Display Me", measure_id: "display-me")
|
|
||||||
scale = create(:scale, measure:)
|
|
||||||
create(:student_survey_item,
|
|
||||||
scale:,
|
|
||||||
watch_low_benchmark: 1.5,
|
|
||||||
growth_low_benchmark: 2.5,
|
|
||||||
approval_low_benchmark: 3.5,
|
|
||||||
ideal_low_benchmark: 4.5)
|
|
||||||
[
|
|
||||||
Overview::VarianceChartRowPresenter.new(measure:,
|
|
||||||
score: Score.new(average: rand))
|
|
||||||
]
|
|
||||||
end
|
|
||||||
|
|
||||||
before :each do
|
|
||||||
assign :category_presenters, []
|
|
||||||
assign :variance_chart_row_presenters, variance_chart_row_presenters
|
|
||||||
@academic_year = create(:academic_year)
|
|
||||||
assign :academic_years, [@academic_year]
|
|
||||||
@district = create(:district)
|
|
||||||
@school = create(:school)
|
|
||||||
assign :page,
|
|
||||||
Overview::OverviewPresenter.new(params: { view: "parent" }, school: @school,
|
|
||||||
academic_year: @academic_year)
|
|
||||||
@student_response_rate_presenter = ResponseRatePresenter.new(focus: :student, school: @school,
|
|
||||||
academic_year: @academic_year)
|
|
||||||
@teacher_response_rate_presenter = ResponseRatePresenter.new(focus: :teacher, school: @school,
|
|
||||||
academic_year: @academic_year)
|
|
||||||
|
|
||||||
Respondent.create!(school: @school, academic_year: @academic_year, total_students: 40, total_teachers: 40)
|
|
||||||
ResponseRate.create!(subcategory: Subcategory.first, school: @school, academic_year: @academic_year,
|
|
||||||
student_response_rate: 100, teacher_response_rate: 100, meets_student_threshold: true, meets_teacher_threshold: true)
|
|
||||||
|
|
||||||
render
|
|
||||||
end
|
|
||||||
it "shows the view with the students & teachers button active" do
|
|
||||||
expect(subject.css("input[id='parent_btn'][checked='checked']").count).to eq 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue