diff --git a/app/presenters/admin_data_presenter.rb b/app/presenters/admin_data_presenter.rb
index 406d68b1..7ca1cc25 100644
--- a/app/presenters/admin_data_presenter.rb
+++ b/app/presenters/admin_data_presenter.rb
@@ -1,6 +1,6 @@
class AdminDataPresenter < DataItemPresenter
def initialize(measure_id:, admin_data_items:)
- super(measure_id: measure_id, has_sufficient_data: true)
+ super(measure_id: measure_id, has_sufficient_data: false)
@admin_data_items = admin_data_items
end
@@ -15,4 +15,8 @@ class AdminDataPresenter < DataItemPresenter
def item_descriptions
@admin_data_items.map(&:description)
end
+
+ def reason_for_insufficiency
+ "limited availability"
+ end
end
diff --git a/app/presenters/student_survey_presenter.rb b/app/presenters/student_survey_presenter.rb
index 01a3ddc0..3fc86ddb 100644
--- a/app/presenters/student_survey_presenter.rb
+++ b/app/presenters/student_survey_presenter.rb
@@ -15,4 +15,8 @@ class StudentSurveyPresenter < DataItemPresenter
def item_descriptions
@survey_items.map(&:prompt)
end
+
+ def reason_for_insufficiency
+ "low response rate"
+ end
end
diff --git a/app/presenters/teacher_survey_presenter.rb b/app/presenters/teacher_survey_presenter.rb
index 1fad9806..126ed5ec 100644
--- a/app/presenters/teacher_survey_presenter.rb
+++ b/app/presenters/teacher_survey_presenter.rb
@@ -15,4 +15,8 @@ class TeacherSurveyPresenter < DataItemPresenter
def item_descriptions
@survey_items.map(&:prompt)
end
+
+ def reason_for_insufficiency
+ "low response rate"
+ end
end
diff --git a/app/views/categories/_data_item_section.html.erb b/app/views/categories/_data_item_section.html.erb
index 0aa1bd58..34556364 100644
--- a/app/views/categories/_data_item_section.html.erb
+++ b/app/views/categories/_data_item_section.html.erb
@@ -23,7 +23,7 @@
<% unless data_item_section.sufficient_data? %>
- Data not included due to low response rate
+ Data not included due to <%= data_item_section.reason_for_insufficiency %>
<% end %>
diff --git a/spec/presenters/measure_presenter_spec.rb b/spec/presenters/measure_presenter_spec.rb
index 971ec448..ebbd6927 100644
--- a/spec/presenters/measure_presenter_spec.rb
+++ b/spec/presenters/measure_presenter_spec.rb
@@ -54,7 +54,6 @@ describe MeasurePresenter do
expect(second_data_item_presenter.title).to eq 'School admin data'
expect(second_data_item_presenter.data_item_accordion_id).to eq 'data-item-accordion-measure-id'
expect(second_data_item_presenter.item_descriptions).to eq ["An admin data item description", "Another admin data item description"]
- expect(second_data_item_presenter.sufficient_data?).to be true
end
end
@@ -75,5 +74,22 @@ describe MeasurePresenter do
end
end
+ context 'when the measure has insufficient admin data and insufficient teacher/student data' do
+ before :each do
+ create(:admin_data_item, measure: measure)
+ create(:teacher_survey_item, measure: measure)
+ create(:student_survey_item, measure: measure)
+ end
+
+ it 'tracks the reason for their insufficiency' do
+ teacher_data_item_presenter = measure_presenter.data_item_presenters.find { |presenter| presenter.title == 'Teacher survey' }
+ student_data_item_presenter = measure_presenter.data_item_presenters.find { |presenter| presenter.title == 'Student survey' }
+ admin_data_item_presenter = measure_presenter.data_item_presenters.find { |presenter| presenter.title == 'School admin data' }
+ expect(teacher_data_item_presenter.reason_for_insufficiency).to eq 'low response rate'
+ expect(student_data_item_presenter.reason_for_insufficiency).to eq 'low response rate'
+ expect(admin_data_item_presenter.reason_for_insufficiency).to eq 'limited availability'
+ end
+ end
+
end