Extract student and teacher presenters from grouped_bar_column_presenter

pull/1/head
Nelson Jovel 4 years ago
parent 08c84c8321
commit 8efaf8514d

@ -1,8 +1,8 @@
class GroupedBarColumnPresenter class GroupedBarColumnPresenter
include AnalyzeHelper include AnalyzeHelper
attr_reader :score, :measure_name, :measure_id, :category, :position, :type attr_reader :score, :measure_name, :measure_id, :category, :position
def initialize(measure:, score:, position:, type:) def initialize(measure:, score:, position:)
@measure = measure @measure = measure
@score = score @score = score
@meets_teacher_threshold = score.meets_teacher_threshold? @meets_teacher_threshold = score.meets_teacher_threshold?
@ -11,7 +11,6 @@ class GroupedBarColumnPresenter
@measure_id = @measure.measure_id @measure_id = @measure.measure_id
@category = @measure.subcategory.category @category = @measure.subcategory.category
@position = position @position = position
@type = type
end end
def y_offset def y_offset
@ -59,41 +58,18 @@ class GroupedBarColumnPresenter
end end
def label def label
case type
when :all
'All Survey Data' 'All Survey Data'
when :student
'All Students'
when :teacher
'All Teachers'
end
end end
def basis def basis
return '' if type == :all ''
type
end end
def show_irrelevancy_message? def show_irrelevancy_message?
return true if type == :student && !@measure.includes_student_survey_items? !@measure.includes_teacher_survey_items? && !@measure.includes_student_survey_items?
return true if type == :teacher && !@measure.includes_teacher_survey_items?
return true if type == :all && !@measure.includes_teacher_survey_items? && !@measure.includes_student_survey_items?
false
end end
def show_insufficient_data_message? def show_insufficient_data_message?
case type
when :all
!score.meets_teacher_threshold? && !score.meets_student_threshold? !score.meets_teacher_threshold? && !score.meets_student_threshold?
when :student
!score.meets_student_threshold?
when :teacher
!score.meets_teacher_threshold?
else
false
end
end end
end end

@ -0,0 +1,21 @@
class StudentGroupedBarColumnPresenter < GroupedBarColumnPresenter
def label
'All Students'
end
def basis
'student'
end
def show_irrelevancy_message?
!@measure.includes_student_survey_items?
end
def show_insufficient_data_message?
!score.meets_student_threshold?
end
# def score
# @measure.student_score(school: @school, academic_year: @academic_year)
# end
end

@ -0,0 +1,21 @@
class TeacherGroupedBarColumnPresenter < GroupedBarColumnPresenter
def label
'All Teachers'
end
def basis
'teacher'
end
def show_irrelevancy_message?
!@measure.includes_teacher_survey_items?
end
def show_insufficient_data_message?
!score.meets_teacher_threshold?
end
# def score
# @measure.teacher_score(school: @school, academic_year: @academic_year)
# end
end

@ -31,11 +31,11 @@
</g> </g>
</g> </g>
<% presenter = GroupedBarColumnPresenter.new(measure: measure, score: measure.student_score(school: @school, academic_year: @academic_year), position: 1, type: :student) %> <% presenter = StudentGroupedBarColumnPresenter.new(measure: measure, score: measure.student_score(school: @school, academic_year: @academic_year), position: 1) %>
<%= render partial: "grouped_bar_column", locals: {presenter: presenter} %> <%= render partial: "grouped_bar_column", locals: {presenter: presenter} %>
<% presenter = GroupedBarColumnPresenter.new(measure: measure, score: measure.teacher_score(school: @school, academic_year: @academic_year), position: 2, type: :teacher) %> <% presenter = TeacherGroupedBarColumnPresenter.new(measure: measure, score: measure.teacher_score(school: @school, academic_year: @academic_year), position: 2) %>
<%= render partial: "grouped_bar_column", locals: {presenter: presenter} %> <%= render partial: "grouped_bar_column", locals: {presenter: presenter} %>
<% presenter = GroupedBarColumnPresenter.new(measure: measure, score: measure.score(school: @school, academic_year: @academic_year), position: 3, type: :all) %> <% presenter = GroupedBarColumnPresenter.new(measure: measure, score: measure.score(school: @school, academic_year: @academic_year), position: 3) %>
<%= render partial: "grouped_bar_column", locals: {presenter: presenter} %> <%= render partial: "grouped_bar_column", locals: {presenter: presenter} %>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

@ -101,4 +101,7 @@ describe 'analyze/index' do
expect(subject).to have_css "##{academic_year.range}" expect(subject).to have_css "##{academic_year.range}"
end end
end end
context 'when presenters have a score' do
end
end end

Loading…
Cancel
Save