mirror of
https://github.com/edcommonwealth/sqm-dashboards.git
synced 2026-03-07 21:48:16 -08:00
Calculate benchmarks for measures based on a weighted average of survey and admin data items Added architectural records
33 lines
1.2 KiB
Ruby
33 lines
1.2 KiB
Ruby
module Legacy
|
|
class SchoolQuestion < ApplicationRecord
|
|
belongs_to :school
|
|
belongs_to :question
|
|
belongs_to :school_category
|
|
|
|
validates_associated :school
|
|
validates_associated :question
|
|
validates_associated :school_category
|
|
|
|
scope :for, ->(school, question) { where(school_id: school.id, question_id: question.id) }
|
|
scope :in, ->(year) { where(year: year) }
|
|
|
|
def sync_attempts
|
|
attempt_data = Attempt
|
|
.joins(:question)
|
|
.created_in(school_category.year)
|
|
.for_question(question)
|
|
.for_school(school)
|
|
.select('count(attempts.answer_index) as response_count')
|
|
.select('sum(case when questions.reverse then 6 - attempts.answer_index else attempts.answer_index end) as answer_index_total')[0]
|
|
|
|
available_responders = school.available_responders_for(question)
|
|
|
|
update(
|
|
attempt_count: available_responders,
|
|
response_count: attempt_data.response_count,
|
|
response_rate: attempt_data.response_count.to_f / available_responders.to_f,
|
|
response_total: attempt_data.answer_index_total
|
|
)
|
|
end
|
|
end
|
|
end
|