From 1fbd3c90dd53b54fdc5e71cee63076e7a45642f8 Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Thu, 20 Jul 2023 11:12:49 +0100 Subject: [PATCH 1/6] Update allowed lead tenants age in foster care validation (#1786) --- app/models/validations/household_validations.rb | 6 +++--- app/services/imports/lettings_logs_import_service.rb | 2 +- config/locales/en.yml | 4 ++-- spec/models/validations/household_validations_spec.rb | 8 ++++---- .../services/imports/lettings_logs_import_service_spec.rb | 8 ++++---- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/app/models/validations/household_validations.rb b/app/models/validations/household_validations.rb index 5609f1e1c..07a3fa467 100644 --- a/app/models/validations/household_validations.rb +++ b/app/models/validations/household_validations.rb @@ -60,9 +60,9 @@ module Validations::HouseholdValidations record.errors.add :prevten, :non_temp_accommodation, message: I18n.t("validations.household.prevten.non_temp_accommodation") end - if record.age1.present? && record.age1 > 19 && record.previous_tenancy_was_foster_care? - record.errors.add :prevten, :over_20_foster_care, message: I18n.t("validations.household.prevten.over_20_foster_care") - record.errors.add :age1, I18n.t("validations.household.age.lead.over_20") + if record.age1.present? && record.age1 > 25 && record.previous_tenancy_was_foster_care? + record.errors.add :prevten, :over_25_foster_care, message: I18n.t("validations.household.prevten.over_25_foster_care") + record.errors.add :age1, I18n.t("validations.household.age.lead.over_25") end if record.sex1 == "M" && record.previous_tenancy_was_refuge? diff --git a/app/services/imports/lettings_logs_import_service.rb b/app/services/imports/lettings_logs_import_service.rb index b25318e43..e798665a9 100644 --- a/app/services/imports/lettings_logs_import_service.rb +++ b/app/services/imports/lettings_logs_import_service.rb @@ -308,7 +308,7 @@ module Imports %i[referral internal_transfer_non_social_housing] => %w[referral], %i[referral internal_transfer_fixed_or_lifetime] => %w[referral], %i[tenancylength tenancylength_invalid] => %w[tenancylength tenancy], - %i[prevten over_20_foster_care] => %w[prevten age1], + %i[prevten over_25_foster_care] => %w[prevten age1], %i[prevten non_temp_accommodation] => %w[prevten rsnvac], %i[joint not_joint_tenancy] => %w[joint], %i[offered outside_the_range] => %w[offered], diff --git a/config/locales/en.yml b/config/locales/en.yml index e3507b9e5..f4d968d44 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -441,7 +441,7 @@ en: must_be_16_19: "Person must be aged 16-19 if they are a student and have relationship ‘child’" partner_under_16: "Cannot be under 16 if the relationship is partner" lead: - over_20: "The lead tenant must be under 20 as you told us their housing situation immediately before this letting was a children’s home or foster care" + over_25: "The lead tenant must be under 26 as you told us their housing situation immediately before this letting was a children’s home or foster care" ecstat: retired_over_70: "Person %{person_num} must be retired if over 70" child_under_16: "Person %{person_num}’s working situation must be ‘child under 16’ as you told us they’re under 16" @@ -475,7 +475,7 @@ en: no_and_dont_know_disabled_needs_conjunction: "No disabled access needs and don’t know disabled access needs cannot be selected together" prevten: non_temp_accommodation: "Answer cannot be non-temporary accommodation as this is a re-let to a tenant who occupied the same property as temporary accommodation" - over_20_foster_care: "Answer cannot be a children’s home or foster care as the lead tenant is 20 or older" + over_25_foster_care: "Answer cannot be a children’s home or foster care as the lead tenant is 26 or older" male_refuge: "Answer cannot be a refuge as the lead tenant identifies as male" internal_transfer: "Answer cannot be %{prevten} as this tenancy is an internal transfer" la_general_needs: diff --git a/spec/models/validations/household_validations_spec.rb b/spec/models/validations/household_validations_spec.rb index caf53695e..f44c5d255 100644 --- a/spec/models/validations/household_validations_spec.rb +++ b/spec/models/validations/household_validations_spec.rb @@ -624,15 +624,15 @@ RSpec.describe Validations::HouseholdValidations do end end - context "when the lead tenant is over 20" do + context "when the lead tenant is over 25" do it "cannot be children's home/foster care" do record.prevten = 13 - record.age1 = 21 + record.age1 = 26 household_validator.validate_previous_housing_situation(record) expect(record.errors["prevten"]) - .to include(match I18n.t("validations.household.prevten.over_20_foster_care")) + .to include(match I18n.t("validations.household.prevten.over_25_foster_care")) expect(record.errors["age1"]) - .to include(match I18n.t("validations.household.age.lead.over_20")) + .to include(match I18n.t("validations.household.age.lead.over_25")) end end diff --git a/spec/services/imports/lettings_logs_import_service_spec.rb b/spec/services/imports/lettings_logs_import_service_spec.rb index bc4bc91b4..9a4ef025e 100644 --- a/spec/services/imports/lettings_logs_import_service_spec.rb +++ b/spec/services/imports/lettings_logs_import_service_spec.rb @@ -296,16 +296,16 @@ RSpec.describe Imports::LettingsLogsImportService do end end - context "and an lead tenant must be under 20 if childrens home or foster care" do + context "and an lead tenant must be under 26 if childrens home or foster care" do before do lettings_log_xml.at_xpath("//meta:status").content = "submitted" lettings_log_xml.at_xpath("//xmlns:Q11").content = "13" - lettings_log_xml.at_xpath("//xmlns:P1Age").content = "22" + lettings_log_xml.at_xpath("//xmlns:P1Age").content = "26" end it "intercepts the relevant validation error" do - expect(logger).to receive(:warn).with(/Removing prevten with error: Answer cannot be a children’s home or foster care as the lead tenant is 20 or older/) - expect(logger).to receive(:warn).with(/Removing age1 with error: Answer cannot be a children’s home or foster care as the lead tenant is 20 or older/) + expect(logger).to receive(:warn).with(/Removing prevten with error: Answer cannot be a children’s home or foster care as the lead tenant is 26 or older/) + expect(logger).to receive(:warn).with(/Removing age1 with error: Answer cannot be a children’s home or foster care as the lead tenant is 26 or older/) expect { lettings_log_service.send(:create_log, lettings_log_xml) } .not_to raise_error end From 0c7f2aceb0aa9b348d5e5a37f5bc567eca40c460 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire <94526761+natdeanlewissoftwire@users.noreply.github.com> Date: Fri, 21 Jul 2023 09:16:21 +0100 Subject: [PATCH 2/6] Include specific managing and owning orgs in filter count (#1791) * feat: update filter count to include managing/owning org select * feat: update tests * feat: fix when org filters display * feat: update tests * feat: update tests * feat: update tests * feat: update tests --- app/helpers/filters_helper.rb | 4 ++-- spec/features/lettings_log_spec.rb | 14 +++++++++++++- spec/helpers/filters_helper_spec.rb | 5 +++-- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/app/helpers/filters_helper.rb b/app/helpers/filters_helper.rb index 80f3199d5..f3d03cc01 100644 --- a/app/helpers/filters_helper.rb +++ b/app/helpers/filters_helper.rb @@ -91,8 +91,8 @@ private filters.each.sum do |category, category_filters| if %w[status years bulk_upload_id].include?(category) category_filters.count(&:present?) - elsif %w[assigned_to organisation].include?(category) - category_filters != "all" ? 1 : 0 + elsif %w[user owning_organisation managing_organisation].include?(category) + 1 else 0 end diff --git a/spec/features/lettings_log_spec.rb b/spec/features/lettings_log_spec.rb index 8d245fffe..f849decc1 100644 --- a/spec/features/lettings_log_spec.rb +++ b/spec/features/lettings_log_spec.rb @@ -59,9 +59,17 @@ RSpec.describe "Lettings Log Features" do context "when filtering logs" do let(:user) { create(:user, last_sign_in_at: Time.zone.now) } + let(:stock_owner_1) { create(:organisation, name: "stock owner 1") } + let(:stock_owner_2) { create(:organisation, name: "stock owner 2") } + let(:managing_agent_1) { create(:organisation, name: "managing agent 1") } + let(:managing_agent_2) { create(:organisation, name: "managing agent 2") } context "when I am signed in" do before do + FactoryBot.create(:organisation_relationship, child_organisation: user.organisation, parent_organisation: stock_owner_1) + FactoryBot.create(:organisation_relationship, child_organisation: user.organisation, parent_organisation: stock_owner_2) + FactoryBot.create(:organisation_relationship, child_organisation: managing_agent_1, parent_organisation: user.organisation) + FactoryBot.create(:organisation_relationship, child_organisation: managing_agent_2, parent_organisation: user.organisation) visit("/lettings-logs") fill_in("user[email]", with: user.email) fill_in("user[password]", with: user.password) @@ -80,11 +88,15 @@ RSpec.describe "Lettings Log Features" do check("Not started") check("In progress") choose("You") + choose("Specific owning organisation") + select(stock_owner_1.name, from: "owning_organisation") + choose("Specific managing organisation") + select(managing_agent_1.name, from: "managing_organisation") click_button("Apply filters") end it "displays the filters component with a correct count and clear button" do - expect(page).to have_content("3 filters applied") + expect(page).to have_content("5 filters applied") expect(page).to have_content("Clear") end diff --git a/spec/helpers/filters_helper_spec.rb b/spec/helpers/filters_helper_spec.rb index 58ecf738d..10b18ac1e 100644 --- a/spec/helpers/filters_helper_spec.rb +++ b/spec/helpers/filters_helper_spec.rb @@ -222,7 +222,7 @@ RSpec.describe FiltersHelper do "assigned_to" => "all", "status" => [""], "years" => [""], - "organisation" => "all", + "organisation_select" => "all", } end @@ -237,7 +237,8 @@ RSpec.describe FiltersHelper do "assigned_to" => "all", "status" => %w[in_progress completed], "years" => [""], - "organisation" => 2, + "organisation_select" => "specific_org", + "managing_organisation" => 2, } end From 9f73e0f3c9710aa31853fb76b7b31d535c0971c5 Mon Sep 17 00:00:00 2001 From: Jack <113976590+bibblobcode@users.noreply.github.com> Date: Mon, 24 Jul 2023 08:16:37 +0100 Subject: [PATCH 3/6] CLDC-2498 Prevent non-support from editing org name (#1788) * CLDC-2498 Prevent non-support from editing org name * Update specs --- app/helpers/organisation_helper.rb | 16 ++++++++++++++ app/models/organisation.rb | 1 - app/views/organisations/edit.html.erb | 5 +++-- app/views/organisations/show.html.erb | 1 + spec/models/organisation_spec.rb | 21 ++++++++++--------- .../requests/organisations_controller_spec.rb | 8 +++---- 6 files changed, 35 insertions(+), 17 deletions(-) diff --git a/app/helpers/organisation_helper.rb b/app/helpers/organisation_helper.rb index 68fa98242..7c42bf358 100644 --- a/app/helpers/organisation_helper.rb +++ b/app/helpers/organisation_helper.rb @@ -8,4 +8,20 @@ module OrganisationHelper current_organisation.name end end + + def organisation_name_row(user:, organisation:, summary_list:) + summary_list.row do |row| + row.key { "Name" } + row.value { organisation.name } + if user.support? + row.action( + visually_hidden_text: organisation.name.humanize.downcase, + href: edit_organisation_path(organisation), + html_attributes: { "data-qa": "change-#{organisation.name.downcase}" }, + ) + else + row.action + end + end + end end diff --git a/app/models/organisation.rb b/app/models/organisation.rb index 91c091720..b4317c3e0 100644 --- a/app/models/organisation.rb +++ b/app/models/organisation.rb @@ -104,7 +104,6 @@ class Organisation < ApplicationRecord def display_organisation_attributes [ - { name: "Name", value: name, editable: true }, { name: "Organisation ID", value: "ORG#{id}", editable: false }, { name: "Address", value: address_string, editable: true }, { name: "Telephone number", value: phone, editable: true }, diff --git a/app/views/organisations/edit.html.erb b/app/views/organisations/edit.html.erb index c217d26ad..21297ec86 100644 --- a/app/views/organisations/edit.html.erb +++ b/app/views/organisations/edit.html.erb @@ -11,8 +11,9 @@ <%= content_for(:title) %> - <%= f.govuk_text_field :name, - autocomplete: "name" %> + <% if current_user.support? %> + <%= f.govuk_text_field :name, autocomplete: "name" %> + <% end %> <%= f.govuk_text_field :address_line1, label: { text: "Address line 1" }, diff --git a/app/views/organisations/show.html.erb b/app/views/organisations/show.html.erb index 07af1970a..87020120d 100644 --- a/app/views/organisations/show.html.erb +++ b/app/views/organisations/show.html.erb @@ -14,6 +14,7 @@