mirror of
https://github.com/edcommonwealth/sqm-dashboards.git
synced 2026-03-07 21:48:16 -08:00
Exclude boston results. Completes #182117456
This commit is contained in:
parent
4634282572
commit
57bfaa51c6
10 changed files with 65 additions and 5 deletions
|
|
@ -38,3 +38,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- Add deployment script for beta. Runs tests before deployment to Heroku's git server
|
- Add deployment script for beta. Runs tests before deployment to Heroku's git server
|
||||||
|
- Add new set of student results for 2016-17
|
||||||
|
`bundle exec rake one_off:load_single_file`
|
||||||
|
- Exclude results from boston. Add foreign key from school to district
|
||||||
|
`bundle exec rake db:migrate`
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,8 @@ class StudentResponseRate
|
||||||
def response_count
|
def response_count
|
||||||
@response_count ||= @subcategory.measures.map do |measure|
|
@response_count ||= @subcategory.measures.map do |measure|
|
||||||
measure.student_survey_items.map do |survey_item|
|
measure.student_survey_items.map do |survey_item|
|
||||||
survey_item.survey_item_responses.where(school: @school, academic_year: @academic_year).count
|
survey_item.survey_item_responses.where(school: @school,
|
||||||
|
academic_year: @academic_year).exclude_boston.count
|
||||||
end.sum
|
end.sum
|
||||||
end.sum
|
end.sum
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,8 @@ class SurveyItem < ActiveRecord::Base
|
||||||
|
|
||||||
def score(school:, academic_year:)
|
def score(school:, academic_year:)
|
||||||
@score ||= Hash.new do |memo|
|
@score ||= Hash.new do |memo|
|
||||||
memo[[school, academic_year]] = survey_item_responses.where(school:, academic_year:).average(:likert_score).to_f
|
memo[[school, academic_year]] = survey_item_responses.where(school:,
|
||||||
|
academic_year:).exclude_boston.average(:likert_score).to_f
|
||||||
end
|
end
|
||||||
|
|
||||||
@score[[school, academic_year]]
|
@score[[school, academic_year]]
|
||||||
|
|
|
||||||
|
|
@ -5,4 +5,9 @@ class SurveyItemResponse < ActiveRecord::Base
|
||||||
belongs_to :academic_year
|
belongs_to :academic_year
|
||||||
belongs_to :school
|
belongs_to :school
|
||||||
belongs_to :survey_item
|
belongs_to :survey_item
|
||||||
|
|
||||||
|
scope :exclude_boston, lambda {
|
||||||
|
boston = District.where(name: 'Boston').first
|
||||||
|
where.not(school: boston.schools) if boston.present?
|
||||||
|
}
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,8 @@ class TeacherResponseRate
|
||||||
def response_count
|
def response_count
|
||||||
@response_count ||= @subcategory.measures.map do |measure|
|
@response_count ||= @subcategory.measures.map do |measure|
|
||||||
measure.teacher_survey_items.map do |survey_item|
|
measure.teacher_survey_items.map do |survey_item|
|
||||||
survey_item.survey_item_responses.where(school: @school, academic_year: @academic_year).count
|
survey_item.survey_item_responses.where(school: @school,
|
||||||
|
academic_year: @academic_year).exclude_boston.count
|
||||||
end.sum
|
end.sum
|
||||||
end.sum
|
end.sum
|
||||||
end
|
end
|
||||||
|
|
|
||||||
14
app/views/layouts/_boston_modal.html.erb
Normal file
14
app/views/layouts/_boston_modal.html.erb
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
<div id="empty-dataset-modal" class="modal" tabindex="-1">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h3 class="modal-title">No results available</h3>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<p> We’re unable to display results for the selected school and school year. </p>
|
||||||
|
<p> You’re welcome to <a target="_blank" href="https://www.mciea.org/contact.html">contact MCIEA</a> for more information</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
@ -97,4 +97,8 @@
|
||||||
<%= render partial: "variance_chart", locals: { presenters: @variance_chart_row_presenters } %>
|
<%= render partial: "variance_chart", locals: { presenters: @variance_chart_row_presenters } %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<%= render partial: 'layouts/empty_dataset_modal' if @has_empty_dataset %>
|
<% if @district == District.find_by_name("Boston") %>
|
||||||
|
<%= render partial: 'layouts/boston_modal' %>
|
||||||
|
<% elsif @has_empty_dataset %>
|
||||||
|
<%= render partial: 'layouts/empty_dataset_modal' %>
|
||||||
|
<% end %>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
class AddForeignKeyBetweenSchoolsAndDistricts < ActiveRecord::Migration[7.0]
|
||||||
|
def change
|
||||||
|
add_foreign_key :schools, :districts
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema[7.0].define(version: 2022_05_03_180142) do
|
ActiveRecord::Schema[7.0].define(version: 2022_05_10_232626) do
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "pg_stat_statements"
|
enable_extension "pg_stat_statements"
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
|
|
@ -381,6 +381,7 @@ ActiveRecord::Schema[7.0].define(version: 2022_05_03_180142) do
|
||||||
add_foreign_key "respondents", "academic_years"
|
add_foreign_key "respondents", "academic_years"
|
||||||
add_foreign_key "respondents", "schools"
|
add_foreign_key "respondents", "schools"
|
||||||
add_foreign_key "scales", "measures"
|
add_foreign_key "scales", "measures"
|
||||||
|
add_foreign_key "schools", "districts"
|
||||||
add_foreign_key "subcategories", "categories"
|
add_foreign_key "subcategories", "categories"
|
||||||
add_foreign_key "survey_item_responses", "academic_years"
|
add_foreign_key "survey_item_responses", "academic_years"
|
||||||
add_foreign_key "survey_item_responses", "schools"
|
add_foreign_key "survey_item_responses", "schools"
|
||||||
|
|
|
||||||
24
spec/models/survey_item_response_spec.rb
Normal file
24
spec/models/survey_item_response_spec.rb
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
require 'rails_helper'
|
||||||
|
RSpec.describe SurveyItemResponse, type: :model do
|
||||||
|
let(:district) { create(:district) }
|
||||||
|
let(:boston) { create(:district, name: 'Boston') }
|
||||||
|
let(:school) { create(:school, district:) }
|
||||||
|
let(:boston_school) { create(:school, district: boston) }
|
||||||
|
let(:academic_year) { create(:academic_year) }
|
||||||
|
let(:survey_item) { create(:student_survey_item) }
|
||||||
|
|
||||||
|
before :each do
|
||||||
|
create(:survey_item_response, school:, survey_item:)
|
||||||
|
create(:survey_item_response, school: boston_school, survey_item:)
|
||||||
|
end
|
||||||
|
describe '.survey_item_responses' do
|
||||||
|
it 'includes all survey item responses' do
|
||||||
|
expect(survey_item.survey_item_responses.count).to eq 2
|
||||||
|
end
|
||||||
|
end
|
||||||
|
describe '.exclude_boston' do
|
||||||
|
it 'excludes survey item responses from boston schools' do
|
||||||
|
expect(survey_item.survey_item_responses.exclude_boston.count).to eq 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
Add table
Add a link
Reference in a new issue