mirror of
https://github.com/edcommonwealth/sqm-dashboards.git
synced 2026-03-08 23:18:18 -07:00
Extract student and teacher presenters from grouped_bar_column_presenter
This commit is contained in:
parent
08c84c8321
commit
8efaf8514d
5 changed files with 54 additions and 33 deletions
|
|
@ -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
|
||||
'All Survey Data'
|
||||
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
|
||||
!score.meets_teacher_threshold? && !score.meets_student_threshold?
|
||||
end
|
||||
end
|
||||
|
|
|
|||
21
app/presenters/student_grouped_bar_column_presenter.rb
Normal file
21
app/presenters/student_grouped_bar_column_presenter.rb
Normal file
|
|
@ -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
|
||||
21
app/presenters/teacher_grouped_bar_column_presenter.rb
Normal file
21
app/presenters/teacher_grouped_bar_column_presenter.rb
Normal file
|
|
@ -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…
Add table
Add a link
Reference in a new issue