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
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
@score = score
@meets_teacher_threshold = score.meets_teacher_threshold?
@ -11,7 +11,6 @@ class GroupedBarColumnPresenter
@measure_id = @measure.measure_id
@category = @measure.subcategory.category
@position = position
@type = type
end
def y_offset
@ -59,41 +58,18 @@ class GroupedBarColumnPresenter
end
def label
case type
when :all
'All Survey Data'
when :student
'All Students'
when :teacher
'All Teachers'
end
end
def basis
return '' if type == :all
type
''
end
def show_irrelevancy_message?
return true if type == :student && !@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
!@measure.includes_teacher_survey_items? && !@measure.includes_student_survey_items?
end
def show_insufficient_data_message?
case type
when :all
!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

@ -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>
<% 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} %>
<% 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} %>
<% 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} %>
</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}"
end
end
context 'when presenters have a score' do
end
end

Loading…
Cancel
Save