From ee528596f5f9f45912cc969454b9d3cff210a55f Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Fri, 21 Jul 2023 15:38:13 +0100 Subject: [PATCH] feat: update log org question selections --- .../form/lettings/questions/managing_organisation.rb | 6 +++--- app/models/form/lettings/questions/stock_owner.rb | 12 ++++++------ .../form/{common => sales}/pages/organisation.rb | 4 ++-- .../questions/owning_organisation_id.rb | 2 +- app/models/form/sales/subsections/setup.rb | 2 +- app/models/validations/setup_validations.rb | 2 +- .../{common => sales}/pages/organisation_spec.rb | 2 +- .../questions/owning_organisation_id_spec.rb | 2 +- 8 files changed, 16 insertions(+), 16 deletions(-) rename app/models/form/{common => sales}/pages/organisation.rb (61%) rename app/models/form/{common => sales}/questions/owning_organisation_id.rb (92%) rename spec/models/form/{common => sales}/pages/organisation_spec.rb (95%) rename spec/models/form/{common => sales}/questions/owning_organisation_id_spec.rb (97%) diff --git a/app/models/form/lettings/questions/managing_organisation.rb b/app/models/form/lettings/questions/managing_organisation.rb index 7e4d318fe..00e817ac3 100644 --- a/app/models/form/lettings/questions/managing_organisation.rb +++ b/app/models/form/lettings/questions/managing_organisation.rb @@ -28,10 +28,10 @@ class Form::Lettings::Questions::ManagingOrganisation < ::Form::Question end orgs = if user.support? - log.owning_organisation + log.owning_organisation.managing_agents else - user.organisation - end.managing_agents.pluck(:id, :name).to_h + user.organisation.managing_agents + user.organisation.absorbed_organisations + end.pluck(:id, :name).to_h opts.merge(orgs) end diff --git a/app/models/form/lettings/questions/stock_owner.rb b/app/models/form/lettings/questions/stock_owner.rb index 4294f440f..8cae51405 100644 --- a/app/models/form/lettings/questions/stock_owner.rb +++ b/app/models/form/lettings/questions/stock_owner.rb @@ -23,13 +23,13 @@ class Form::Lettings::Questions::StockOwner < ::Form::Question answer_opts[user.organisation.id] = "#{user.organisation.name} (Your organisation)" end - stock_owners_answer_options = if user.support? - Organisation.where(holds_own_stock: true) - else - user.organisation.stock_owners - end.pluck(:id, :name).to_h + user_answer_options = if user.support? + Organisation.where(holds_own_stock: true) + else + user.organisation.stock_owners + user.organisation.absorbed_organisations + end.pluck(:id, :name).to_h - answer_opts.merge(stock_owners_answer_options) + answer_opts.merge(user_answer_options) end def displayed_answer_options(log, user = nil) diff --git a/app/models/form/common/pages/organisation.rb b/app/models/form/sales/pages/organisation.rb similarity index 61% rename from app/models/form/common/pages/organisation.rb rename to app/models/form/sales/pages/organisation.rb index eb799d1e9..1d61b86ac 100644 --- a/app/models/form/common/pages/organisation.rb +++ b/app/models/form/sales/pages/organisation.rb @@ -1,4 +1,4 @@ -class Form::Common::Pages::Organisation < ::Form::Page +class Form::Sales::Pages::Organisation < ::Form::Page def initialize(id, hsh, subsection) super @id = "organisation" @@ -6,7 +6,7 @@ class Form::Common::Pages::Organisation < ::Form::Page def questions @questions ||= [ - Form::Common::Questions::OwningOrganisationId.new(nil, nil, self), + Form::Sales::Questions::OwningOrganisationId.new(nil, nil, self), ] end diff --git a/app/models/form/common/questions/owning_organisation_id.rb b/app/models/form/sales/questions/owning_organisation_id.rb similarity index 92% rename from app/models/form/common/questions/owning_organisation_id.rb rename to app/models/form/sales/questions/owning_organisation_id.rb index 14e262f58..fa838f744 100644 --- a/app/models/form/common/questions/owning_organisation_id.rb +++ b/app/models/form/sales/questions/owning_organisation_id.rb @@ -1,4 +1,4 @@ -class Form::Common::Questions::OwningOrganisationId < ::Form::Question +class Form::Sales::Questions::OwningOrganisationId < ::Form::Question def initialize(id, hsh, page) super @id = "owning_organisation_id" diff --git a/app/models/form/sales/subsections/setup.rb b/app/models/form/sales/subsections/setup.rb index 92a28db3e..1fbc2ac9e 100644 --- a/app/models/form/sales/subsections/setup.rb +++ b/app/models/form/sales/subsections/setup.rb @@ -7,7 +7,7 @@ class Form::Sales::Subsections::Setup < ::Form::Subsection def pages @pages ||= [ - Form::Common::Pages::Organisation.new(nil, nil, self), + Form::Sales::Pages::Organisation.new(nil, nil, self), Form::Sales::Pages::CreatedBy.new(nil, nil, self), Form::Sales::Pages::SaleDate.new(nil, nil, self), Form::Sales::Pages::PurchaserCode.new(nil, nil, self), diff --git a/app/models/validations/setup_validations.rb b/app/models/validations/setup_validations.rb index 3e3569a55..97ab550a5 100644 --- a/app/models/validations/setup_validations.rb +++ b/app/models/validations/setup_validations.rb @@ -41,7 +41,7 @@ module Validations::SetupValidations def validate_organisation(record) created_by, managing_organisation, owning_organisation = record.values_at("created_by", "managing_organisation", "owning_organisation") - unless [created_by, managing_organisation, owning_organisation].any?(&:blank?) || created_by.organisation == managing_organisation || created_by.organisation == owning_organisation + unless [created_by, managing_organisation, owning_organisation].any?(&:blank?) || created_by.organisation.absorbed_organisations << created_by.organisation & [managing_organisation, owning_organisation] record.errors.add :created_by, I18n.t("validations.setup.created_by.invalid") record.errors.add :owning_organisation_id, I18n.t("validations.setup.owning_organisation.invalid") record.errors.add :managing_organisation_id, I18n.t("validations.setup.managing_organisation.invalid") diff --git a/spec/models/form/common/pages/organisation_spec.rb b/spec/models/form/sales/pages/organisation_spec.rb similarity index 95% rename from spec/models/form/common/pages/organisation_spec.rb rename to spec/models/form/sales/pages/organisation_spec.rb index bc56adbd7..62156031f 100644 --- a/spec/models/form/common/pages/organisation_spec.rb +++ b/spec/models/form/sales/pages/organisation_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -RSpec.describe Form::Common::Pages::Organisation, type: :model do +RSpec.describe Form::Sales::Pages::Organisation, type: :model do subject(:page) { described_class.new(page_id, page_definition, subsection) } let(:page_id) { nil } diff --git a/spec/models/form/common/questions/owning_organisation_id_spec.rb b/spec/models/form/sales/questions/owning_organisation_id_spec.rb similarity index 97% rename from spec/models/form/common/questions/owning_organisation_id_spec.rb rename to spec/models/form/sales/questions/owning_organisation_id_spec.rb index 8b57bebe1..f6dc02c27 100644 --- a/spec/models/form/common/questions/owning_organisation_id_spec.rb +++ b/spec/models/form/sales/questions/owning_organisation_id_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -RSpec.describe Form::Common::Questions::OwningOrganisationId, type: :model do +RSpec.describe Form::Sales::Questions::OwningOrganisationId, type: :model do subject(:question) { described_class.new(question_id, question_definition, page) } let(:question_id) { nil }