Skip to content

Commit

Permalink
Merge pull request #20884 from code-dot-org/regionalPartnerContact
Browse files Browse the repository at this point in the history
Regional partner contact logic
  • Loading branch information
tessawiedmann committed Mar 1, 2018
2 parents 560d75c + 86c15c3 commit ac37cd4
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 63 deletions.
24 changes: 4 additions & 20 deletions dashboard/app/models/pd/regional_partner_contact.rb
Original file line number Diff line number Diff line change
Expand Up @@ -80,26 +80,10 @@ def validate_email
end

def update_regional_partner
return if sanitize_form_data_hash[:grade_levels] == ['Elementary School']

school_district = SchoolDistrict.find_by_id(sanitize_form_data_hash[:school_district])

return unless school_district

possible_partners = school_district.regional_partners_school_districts

if possible_partners.size == 1
self.regional_partner = possible_partners.first.regional_partner
elsif possible_partners.size > 1
grade_levels = sanitize_form_data_hash[:grade_levels]

if grade_levels.include? 'High School'
self.regional_partner = possible_partners.find_by(course: 'csp').try(:regional_partner)
elsif grade_levels.include? 'Middle School'
self.regional_partner = possible_partners.find_by(course: 'csd').try(:regional_partner)
end
hash = sanitize_form_data_hash
zipcode = hash[:school_zipcode]
state = hash[:school_state]

self.regional_partner = possible_partners.first.regional_partner if regional_partner.nil?
end
self.regional_partner = RegionalPartner.find_by_region(zipcode, state)
end
end
62 changes: 19 additions & 43 deletions dashboard/test/models/pd/regional_partner_contact_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -92,48 +92,24 @@ class Pd::RegionalPartnerContactTest < ActiveSupport::TestCase
).valid?
end

test 'Updates regional partner' do
school_district = create :school_district
regional_partner_hs = create :regional_partner, name: 'High School regional Partner'
regional_partner_ms = create :regional_partner, name: 'Middle School regional Partner'

create :regional_partners_school_district, school_district: school_district, course: 'csp', regional_partner: regional_partner_hs
create :regional_partners_school_district, school_district: school_district, course: 'csd', regional_partner: regional_partner_ms

regional_partner_contact = create(
:pd_regional_partner_contact, form_data: FORM_DATA.merge(
{
school_type: 'public',
school_district: school_district.id,
grade_levels: ['High School']
}
).to_json
)

assert_equal regional_partner_hs.name, regional_partner_contact.regional_partner.name

regional_partner_contact = create(
:pd_regional_partner_contact, form_data: FORM_DATA.merge(
{
school_type: 'public',
school_district: school_district.id,
grade_levels: ['Middle School']
}
).to_json
)

assert_equal regional_partner_ms.name, regional_partner_contact.regional_partner.name

regional_partner_contact = create(
:pd_regional_partner_contact, form_data: FORM_DATA.merge(
{
school_type: 'public',
school_district: school_district.id,
grade_levels: ['Elementary School']
}
).to_json
)

assert_nil regional_partner_contact.regional_partner
test 'Matches regional partner' do
state = 'OH'
zip = '45242'

regional_partner = create :regional_partner, name: "partner_OH_45242"
regional_partner.mappings.find_or_create_by!(state: state)
regional_partner.mappings.find_or_create_by!(zip_code: zip)

regional_partner_contact = create :pd_regional_partner_contact, form_data: FORM_DATA.merge(
{
school_type: 'public',
school_district_other: false,
school_district: 'District',
school_state: state,
school_zipcode: zip
}
).to_json

assert_equal regional_partner.id, regional_partner_contact.regional_partner_id
end
end

0 comments on commit ac37cd4

Please sign in to comment.