diff --git a/app/presenters/category_presenter.rb b/app/presenters/category_presenter.rb
index df9c4698..5a11f359 100644
--- a/app/presenters/category_presenter.rb
+++ b/app/presenters/category_presenter.rb
@@ -66,6 +66,10 @@ class CategoryPresenter
@category
end
+ def show_parent_view?(school:, academic_year:)
+ subcategories(school:, academic_year:).any? { |subcategory| subcategory.show_scale_presenters? }
+ end
+
private
def colors
diff --git a/app/views/overview/index.html.erb b/app/views/overview/index.html.erb
index 18ae7b75..5af0c143 100644
--- a/app/views/overview/index.html.erb
+++ b/app/views/overview/index.html.erb
@@ -14,7 +14,10 @@
<%= 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 %>
<%= render partial: "quality_framework_indicators", locals: { category_presenters: @category_presenters } %>
diff --git a/spec/factories.rb b/spec/factories.rb
index 28b34ece..7899d1c6 100644
--- a/spec/factories.rb
+++ b/spec/factories.rb
@@ -136,6 +136,9 @@ FactoryBot.define do
factory :admin_scale do
scale_id { "a-#{rand}" }
end
+ factory :parent_scale do
+ scale_id { "p-#{rand}" }
+ end
end
factory :survey_item do
@@ -163,6 +166,13 @@ FactoryBot.define do
approval_low_benchmark { 4.0 }
ideal_low_benchmark { 4.5 }
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
factory :survey_item_response do
diff --git a/spec/views/overview/index.html.erb_spec.rb b/spec/views/overview/index.html.erb_spec.rb
index a74ba6cd..efa8d6ce 100644
--- a/spec/views/overview/index.html.erb_spec.rb
+++ b/spec/views/overview/index.html.erb_spec.rb
@@ -136,88 +136,4 @@ describe "overview/index" do
expect(displayed_variance_labels.first.inner_text).to include "Display Me"
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