Browse Source

CLDC-3156: Update 2024 referral options (#2366)

* CLDC-3156: Update 2024 referral options

* CLDC-3156: Add tests for referral question

* CLDC-3156: Update other referral questions
pull/2370/head v0.4.30
Robert Sullivan 9 months ago committed by GitHub
parent
commit
378388ebc5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 123
      app/models/form/lettings/questions/referral.rb
  2. 141
      app/models/form/lettings/questions/referral_prp.rb
  3. 132
      app/models/form/lettings/questions/referral_supported_housing.rb
  4. 112
      app/models/form/lettings/questions/referral_supported_housing_prp.rb
  5. 101
      spec/models/form/lettings/questions/referral_spec.rb

123
app/models/form/lettings/questions/referral.rb

@ -7,49 +7,92 @@ class Form::Lettings::Questions::Referral < ::Form::Question
@type = "radio" @type = "radio"
@check_answers_card_number = 0 @check_answers_card_number = 0
@hint_text = "You told us that you are a local authority and that the needs type is general needs. We have removed some options because of this." @hint_text = "You told us that you are a local authority and that the needs type is general needs. We have removed some options because of this."
@answer_options = ANSWER_OPTIONS
@question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max]
end end
ANSWER_OPTIONS = { def answer_options
"1" => { if form.start_year_after_2024?
"value" => "Internal transfer", {
"hint" => "Where the tenant has moved to another social property owned by the same landlord.", "1" => {
}, "value" => "Internal transfer",
"2" => { "hint" => "Where the tenant has moved to another social property owned by the same landlord.",
"value" => "Tenant applied directly (no referral or nomination)", },
}, "2" => {
"8" => { "value" => "Tenant applied directly (no referral or nomination)",
"value" => "Re-located through official housing mobility scheme", },
}, "8" => {
"10" => { "value" => "Re-located through official housing mobility scheme",
"value" => "Other social landlord", },
}, "10" => {
"9" => { "value" => "Other social landlord",
"value" => "Community learning disability team", },
}, "9" => {
"14" => { "value" => "Community learning disability team",
"value" => "Community mental health team", },
}, "14" => {
"15" => { "value" => "Community mental health team",
"value" => "Health service", },
}, "15" => {
"12" => { "value" => "Health service",
"value" => "Police, probation or prison", },
}, "18" => {
"7" => { "value" => "Police, probation, prison or youth offending team – tenant had custodial sentence",
"value" => "Voluntary agency", },
}, "19" => {
"13" => { "value" => "Police, probation, prison or youth offending team – no custodial sentence",
"value" => "Youth offending team", },
}, "7" => {
"17" => { "value" => "Voluntary agency",
"value" => "Children’s Social Care", },
}, "17" => {
"16" => { "value" => "Children’s Social Care",
"value" => "Other", },
}, "16" => {
}.freeze "value" => "Other",
},
}.freeze
else
{
"1" => {
"value" => "Internal transfer",
"hint" => "Where the tenant has moved to another social property owned by the same landlord.",
},
"2" => {
"value" => "Tenant applied directly (no referral or nomination)",
},
"8" => {
"value" => "Re-located through official housing mobility scheme",
},
"10" => {
"value" => "Other social landlord",
},
"9" => {
"value" => "Community learning disability team",
},
"14" => {
"value" => "Community mental health team",
},
"15" => {
"value" => "Health service",
},
"12" => {
"value" => "Police, probation or prison",
},
"7" => {
"value" => "Voluntary agency",
},
"13" => {
"value" => "Youth offending team",
},
"17" => {
"value" => "Children’s Social Care",
},
"16" => {
"value" => "Other",
},
}.freeze
end
end
QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84 }.freeze QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84 }.freeze
end end

141
app/models/form/lettings/questions/referral_prp.rb

@ -7,55 +7,104 @@ class Form::Lettings::Questions::ReferralPrp < ::Form::Question
@type = "radio" @type = "radio"
@check_answers_card_number = 0 @check_answers_card_number = 0
@hint_text = "You told us that the needs type is general needs. We have removed some options because of this." @hint_text = "You told us that the needs type is general needs. We have removed some options because of this."
@answer_options = ANSWER_OPTIONS
@question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max]
end end
ANSWER_OPTIONS = { def answer_options
"1" => { if form.start_year_after_2024?
"value" => "Internal transfer", {
"hint" => "Where the tenant has moved to another social property owned by the same landlord.", "1" => {
}, "value" => "Internal transfer",
"2" => { "hint" => "Where the tenant has moved to another social property owned by the same landlord.",
"value" => "Tenant applied directly (no nomination)", },
}, "2" => {
"3" => { "value" => "Tenant applied directly (no nomination)",
"value" => "Nominated by a local housing authority", },
}, "3" => {
"4" => { "value" => "Nominated by a local housing authority",
"value" => "Referred by local authority housing department", },
}, "4" => {
"8" => { "value" => "Referred by local authority housing department",
"value" => "Re-located through official housing mobility scheme", },
}, "8" => {
"10" => { "value" => "Re-located through official housing mobility scheme",
"value" => "Other social landlord", },
}, "10" => {
"9" => { "value" => "Other social landlord",
"value" => "Community learning disability team", },
}, "9" => {
"14" => { "value" => "Community learning disability team",
"value" => "Community mental health team", },
}, "14" => {
"15" => { "value" => "Community mental health team",
"value" => "Health service", },
}, "15" => {
"12" => { "value" => "Health service",
"value" => "Police, probation or prison", },
}, "18" => {
"7" => { "value" => "Police, probation, prison or youth offending team – tenant had custodial sentence",
"value" => "Voluntary agency", },
}, "19" => {
"13" => { "value" => "Police, probation, prison or youth offending team – no custodial sentence",
"value" => "Youth offending team", },
}, "7" => {
"17" => { "value" => "Voluntary agency",
"value" => "Children’s Social Care", },
}, "17" => {
"16" => { "value" => "Children’s Social Care",
"value" => "Other", },
}, "16" => {
}.freeze "value" => "Other",
},
}.freeze
else
{
"1" => {
"value" => "Internal transfer",
"hint" => "Where the tenant has moved to another social property owned by the same landlord.",
},
"2" => {
"value" => "Tenant applied directly (no nomination)",
},
"3" => {
"value" => "Nominated by a local housing authority",
},
"4" => {
"value" => "Referred by local authority housing department",
},
"8" => {
"value" => "Re-located through official housing mobility scheme",
},
"10" => {
"value" => "Other social landlord",
},
"9" => {
"value" => "Community learning disability team",
},
"14" => {
"value" => "Community mental health team",
},
"15" => {
"value" => "Health service",
},
"12" => {
"value" => "Police, probation or prison",
},
"7" => {
"value" => "Voluntary agency",
},
"13" => {
"value" => "Youth offending team",
},
"17" => {
"value" => "Children’s Social Care",
},
"16" => {
"value" => "Other",
},
}.freeze
end
end
QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84 }.freeze QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84 }.freeze
end end

132
app/models/form/lettings/questions/referral_supported_housing.rb

@ -7,52 +7,98 @@ class Form::Lettings::Questions::ReferralSupportedHousing < ::Form::Question
@type = "radio" @type = "radio"
@check_answers_card_number = 0 @check_answers_card_number = 0
@hint_text = "You told us that you are a local authority. We have removed some options because of this." @hint_text = "You told us that you are a local authority. We have removed some options because of this."
@answer_options = ANSWER_OPTIONS
@question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max]
end end
ANSWER_OPTIONS = { def answer_options
"1" => { if form.start_year_after_2024?
"value" => "Internal transfer", {
"hint" => "Where the tenant has moved to another social property owned by the same landlord.", "1" => {
}, "value" => "Internal transfer",
"2" => { "hint" => "Where the tenant has moved to another social property owned by the same landlord.",
"value" => "Tenant applied directly (no referral)", },
}, "2" => {
"3" => { "value" => "Tenant applied directly (no referral)",
"value" => "Referred by local authority housing department", },
}, "3" => {
"8" => { "value" => "Nominated by a local housing authority",
"value" => "Re-located through official housing mobility scheme", },
}, "8" => {
"10" => { "value" => "Re-located through official housing mobility scheme",
"value" => "Other social landlord", },
}, "10" => {
"9" => { "value" => "Other social landlord",
"value" => "Community learning disability team", },
}, "9" => {
"14" => { "value" => "Community learning disability team",
"value" => "Community mental health team", },
}, "14" => {
"15" => { "value" => "Community mental health team",
"value" => "Health service", },
}, "15" => {
"12" => { "value" => "Health service",
"value" => "Police, probation or prison", },
}, "18" => {
"7" => { "value" => "Police, probation, prison or youth offending team – tenant had custodial sentence",
"value" => "Voluntary agency", },
}, "19" => {
"13" => { "value" => "Police, probation, prison or youth offending team – no custodial sentence",
"value" => "Youth offending team", },
}, "7" => {
"17" => { "value" => "Voluntary agency",
"value" => "Children’s Social Care", },
}, "17" => {
"16" => { "value" => "Children’s Social Care",
"value" => "Other", },
}, "16" => {
}.freeze "value" => "Other",
},
}.freeze
else
{
"1" => {
"value" => "Internal transfer",
"hint" => "Where the tenant has moved to another social property owned by the same landlord.",
},
"2" => {
"value" => "Tenant applied directly (no referral)",
},
"3" => {
"value" => "Nominated by a local housing authority",
},
"8" => {
"value" => "Re-located through official housing mobility scheme",
},
"10" => {
"value" => "Other social landlord",
},
"9" => {
"value" => "Community learning disability team",
},
"14" => {
"value" => "Community mental health team",
},
"15" => {
"value" => "Health service",
},
"12" => {
"value" => "Police, probation or prison",
},
"7" => {
"value" => "Voluntary agency",
},
"13" => {
"value" => "Youth offending team",
},
"17" => {
"value" => "Children’s Social Care",
},
"16" => {
"value" => "Other",
},
}.freeze
end
end
QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84 }.freeze QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84 }.freeze
end end

112
app/models/form/lettings/questions/referral_supported_housing_prp.rb

@ -7,26 +7,104 @@ class Form::Lettings::Questions::ReferralSupportedHousingPrp < ::Form::Question
@type = "radio" @type = "radio"
@check_answers_card_number = 0 @check_answers_card_number = 0
@hint_text = "" @hint_text = ""
@answer_options = ANSWER_OPTIONS
@question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max]
end end
ANSWER_OPTIONS = { def answer_options
"1" => { "value" => "Internal transfer", "hint" => "Where the tenant has moved to another social property owned by the same landlord." }, if form.start_year_after_2024?
"2" => { "value" => "Tenant applied directly (no referral or nomination)" }, {
"3" => { "value" => "Nominated by a local housing authority" }, "1" => {
"4" => { "value" => "Referred by local authority housing department" }, "value" => "Internal transfer",
"8" => { "value" => "Re-located through official housing mobility scheme" }, "hint" => "Where the tenant has moved to another social property owned by the same landlord.",
"10" => { "value" => "Other social landlord" }, },
"9" => { "value" => "Community learning disability team" }, "2" => {
"14" => { "value" => "Community mental health team" }, "value" => "Tenant applied directly (no referral or nomination)",
"15" => { "value" => "Health service" }, },
"12" => { "value" => "Police, probation or prison" }, "3" => {
"7" => { "value" => "Voluntary agency" }, "value" => "Nominated by a local housing authority",
"13" => { "value" => "Youth offending team" }, },
"17" => { "value" => "Children’s Social Care" }, "4" => {
"16" => { "value" => "Other" }, "value" => "Referred by local authority housing department",
}.freeze },
"8" => {
"value" => "Re-located through official housing mobility scheme",
},
"10" => {
"value" => "Other social landlord",
},
"9" => {
"value" => "Community learning disability team",
},
"14" => {
"value" => "Community mental health team",
},
"15" => {
"value" => "Health service",
},
"18" => {
"value" => "Police, probation, prison or youth offending team – tenant had custodial sentence",
},
"19" => {
"value" => "Police, probation, prison or youth offending team – no custodial sentence",
},
"7" => {
"value" => "Voluntary agency",
},
"17" => {
"value" => "Children’s Social Care",
},
"16" => {
"value" => "Other",
},
}.freeze
else
{
"1" => {
"value" => "Internal transfer",
"hint" => "Where the tenant has moved to another social property owned by the same landlord.",
},
"2" => {
"value" => "Tenant applied directly (no referral or nomination)",
},
"3" => {
"value" => "Nominated by a local housing authority",
},
"4" => {
"value" => "Referred by local authority housing department",
},
"8" => {
"value" => "Re-located through official housing mobility scheme",
},
"10" => {
"value" => "Other social landlord",
},
"9" => {
"value" => "Community learning disability team",
},
"14" => {
"value" => "Community mental health team",
},
"15" => {
"value" => "Health service",
},
"12" => {
"value" => "Police, probation or prison",
},
"7" => {
"value" => "Voluntary agency",
},
"13" => {
"value" => "Youth offending team",
},
"17" => {
"value" => "Children’s Social Care",
},
"16" => {
"value" => "Other",
},
}.freeze
end
end
QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84 }.freeze QUESTION_NUMBER_FROM_YEAR = { 2023 => 85, 2024 => 84 }.freeze
end end

101
spec/models/form/lettings/questions/referral_spec.rb

@ -0,0 +1,101 @@
require "rails_helper"
RSpec.describe Form::Lettings::Questions::Referral, type: :model do
subject(:question) { described_class.new(question_id, question_definition, page) }
let(:question_id) { nil }
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page) }
let(:subsection) { instance_double(Form::Subsection) }
let(:form) { instance_double(Form, start_date: Time.zone.local(2023, 4, 1)) }
before do
allow(form).to receive(:start_year_after_2024?).and_return(false)
allow(page).to receive(:subsection).and_return(subsection)
allow(subsection).to receive(:form).and_return(form)
end
it "has correct page" do
expect(question.page).to eq(page)
end
it "has the correct id" do
expect(question.id).to eq("referral")
end
it "has the correct header" do
expect(question.header).to eq("What was the source of referral for this letting?")
end
it "has the correct check_answer_label" do
expect(question.check_answer_label).to eq("Source of referral for letting")
end
it "has the correct type" do
expect(question.type).to eq("radio")
end
it "has the correct check_answers_card_number" do
expect(question.check_answers_card_number).to eq(0)
end
it "has the correct hint" do
expect(question.hint_text).to eq("You told us that you are a local authority and that the needs type is general needs. We have removed some options because of this.")
end
it "is not marked as derived" do
expect(question).not_to be_derived(nil)
end
context "with 2023/24 form" do
it "has the correct answer_options" do
expect(question.answer_options).to eq({
"1" => { "value" => "Internal transfer", "hint" => "Where the tenant has moved to another social property owned by the same landlord." },
"2" => { "value" => "Tenant applied directly (no referral or nomination)" },
"8" => { "value" => "Re-located through official housing mobility scheme" },
"10" => { "value" => "Other social landlord" },
"9" => { "value" => "Community learning disability team" },
"14" => { "value" => "Community mental health team" },
"15" => { "value" => "Health service" },
"12" => { "value" => "Police, probation or prison" },
"7" => { "value" => "Voluntary agency" },
"13" => { "value" => "Youth offending team" },
"17" => { "value" => "Children’s Social Care" },
"16" => { "value" => "Other" },
})
end
it "has the correct question number" do
expect(question.question_number).to eq(85)
end
end
context "with 2024/25 form" do
let(:form) { instance_double(Form, start_date: Time.zone.local(2024, 4, 1)) }
before do
allow(form).to receive(:start_year_after_2024?).and_return(true)
end
it "has the correct answer_options" do
expect(question.answer_options).to eq({
"1" => { "value" => "Internal transfer", "hint" => "Where the tenant has moved to another social property owned by the same landlord." },
"2" => { "value" => "Tenant applied directly (no referral or nomination)" },
"8" => { "value" => "Re-located through official housing mobility scheme" },
"10" => { "value" => "Other social landlord" },
"9" => { "value" => "Community learning disability team" },
"14" => { "value" => "Community mental health team" },
"15" => { "value" => "Health service" },
"18" => { "value" => "Police, probation, prison or youth offending team – tenant had custodial sentence" },
"19" => { "value" => "Police, probation, prison or youth offending team – no custodial sentence" },
"7" => { "value" => "Voluntary agency" },
"17" => { "value" => "Children’s Social Care" },
"16" => { "value" => "Other" },
})
end
it "has the correct question number" do
expect(question.question_number).to eq(84)
end
end
end
Loading…
Cancel
Save