Browse Source

Allow adding other merging organisations

pull/1535/head
Kat 3 years ago
parent
commit
582ab475b3
  1. 18
      app/controllers/merge_requests_controller.rb
  2. 10
      app/views/merge_requests/organisations.html.erb
  3. 4
      config/routes.rb
  4. 1
      db/migrate/20230412111338_add_merge_requests_table.rb
  5. 15
      db/schema.rb
  6. 16
      spec/requests/merge_requests_controller_spec.rb

18
app/controllers/merge_requests_controller.rb

@ -1,6 +1,6 @@
class MergeRequestsController < ApplicationController class MergeRequestsController < ApplicationController
before_action :authenticate_user! before_action :authenticate_user!
before_action :find_resource, only: %i[organisations update_organisations remove_merging_organsiation] before_action :find_resource, only: %i[organisations update_organisations remove_merging_organisation update_other_merging_organisations]
def create def create
@merge_request = MergeRequest.create!(merge_request_params) @merge_request = MergeRequest.create!(merge_request_params)
@ -26,7 +26,15 @@ class MergeRequestsController < ApplicationController
end end
end end
def remove_merging_organsiation def update_other_merging_organisations
if @merge_request.update(other_merging_organisaitions_params)
redirect_to merge_request_absorbing_organisation_path(@merge_request)
else
render :organisations, status: :unprocessable_entity
end
end
def remove_merging_organisation
MergeRequestOrganisation.find_by(merge_request_organisation_params).destroy! MergeRequestOrganisation.find_by(merge_request_organisation_params).destroy!
@merge_request.reload @merge_request.reload
@answer_options = organisations_answer_options @answer_options = organisations_answer_options
@ -46,7 +54,7 @@ private
end end
def merge_request_params def merge_request_params
merge_params = params.fetch(:merge_request, {}).permit(:requesting_organisation_id) merge_params = params.fetch(:merge_request, {}).permit(:requesting_organisation_id, :other_merging_organisations)
if current_user.data_coordinator? || current_user.data_provider? if current_user.data_coordinator? || current_user.data_provider?
merge_params[:requesting_organisation_id] = current_user.organisation.id merge_params[:requesting_organisation_id] = current_user.organisation.id
@ -59,6 +67,10 @@ private
{ merge_request: @merge_request, merging_organisation: Organisation.find(params[:merge_request][:merging_organisation]) } { merge_request: @merge_request, merging_organisation: Organisation.find(params[:merge_request][:merging_organisation]) }
end end
def other_merging_organisaitions_params
params.fetch(:merge_request, {}).permit(:other_merging_organisations)
end
def find_resource def find_resource
@merge_request = MergeRequest.find(params[:merge_request_id]) @merge_request = MergeRequest.find(params[:merge_request_id])
end end

10
app/views/merge_requests/organisations.html.erb

@ -5,11 +5,10 @@
<div class="govuk-grid-row"> <div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds-from-desktop"> <div class="govuk-grid-column-two-thirds-from-desktop">
<p class="govuk-body">Add all organisations to be merged - we have already added your own.</p> <p class="govuk-body">Which organisations are merging?</p>
<%= form_with model: @merge_request, url: merge_request_organisations_path, method: :patch do |f| %> <%= form_with model: @merge_request, url: merge_request_organisations_path, method: :patch do |f| %>
<%= f.govuk_error_summary %> <%= f.govuk_error_summary %>
<p class="govuk-body">Start typing to search</p>
<%= render partial: "organisation_relationships/related_organisation_select_question", locals: { <%= render partial: "organisation_relationships/related_organisation_select_question", locals: {
field: :merging_organisation, field: :merging_organisation,
question: Form::Question.new("", { "answer_options" => @answer_options }, nil), question: Form::Question.new("", { "answer_options" => @answer_options }, nil),
@ -40,8 +39,11 @@
<% end %> <% end %>
<% end %> <% end %>
<% end %> <% end %>
<%= govuk_details(summary_text: "I cannot find an organisation on the list") do %> <% end %>
<%= form_with model: @merge_request, url: merge_request_other_merging_organisations_path, method: :patch do |f| %>
<%= govuk_details(summary_text: "Can't find the managing agent you're looking for?") do %>
<%= f.govuk_text_area :other_merging_organisations, label: { text: "Other organisations" }, hint: { text: "List other organisations that are part of the merge but not registered on CORE." }, rows: 9 %>
<% end %> <% end %>
<%= f.govuk_submit "Continue" %>
<% end %> <% end %>
<%= govuk_button_link_to "Continue", "#", button: true %>
</div> </div>

4
config/routes.rb

@ -127,7 +127,9 @@ Rails.application.routes.draw do
post "merge-request", to: "merge_request#create_merge_request" post "merge-request", to: "merge_request#create_merge_request"
get "organisations", to: "merge_requests#organisations" get "organisations", to: "merge_requests#organisations"
patch "organisations", to: "merge_requests#update_organisations" patch "organisations", to: "merge_requests#update_organisations"
get "organisations/remove", to: "merge_requests#remove_merging_organsiation" get "organisations/remove", to: "merge_requests#remove_merging_organisation"
patch "other-merging-organisations", to: "merge_requests#update_other_merging_organisations"
get "absorbing_organisation", to: "merge_requests#absorbing_organisation"
end end
resources :lettings_logs, path: "/lettings-logs" do resources :lettings_logs, path: "/lettings-logs" do

1
db/migrate/20230412111338_add_merge_requests_table.rb

@ -2,6 +2,7 @@ class AddMergeRequestsTable < ActiveRecord::Migration[7.0]
def change def change
create_table :merge_requests do |t| create_table :merge_requests do |t|
t.integer :requesting_organisation_id t.integer :requesting_organisation_id
t.text :other_merging_organisations
t.timestamps t.timestamps
end end
end end

15
db/schema.rb

@ -363,6 +363,7 @@ ActiveRecord::Schema[7.0].define(version: 2023_04_13_135407) do
create_table "merge_requests", force: :cascade do |t| create_table "merge_requests", force: :cascade do |t|
t.integer "requesting_organisation_id" t.integer "requesting_organisation_id"
t.text "other_merging_organisations"
t.datetime "created_at", null: false t.datetime "created_at", null: false
t.datetime "updated_at", null: false t.datetime "updated_at", null: false
end end
@ -532,6 +533,7 @@ ActiveRecord::Schema[7.0].define(version: 2023_04_13_135407) do
t.integer "prevten" t.integer "prevten"
t.integer "mortgageused" t.integer "mortgageused"
t.integer "wchair" t.integer "wchair"
t.integer "income2_value_check"
t.integer "armedforcesspouse" t.integer "armedforcesspouse"
t.datetime "hodate", precision: nil t.datetime "hodate", precision: nil
t.integer "hoday" t.integer "hoday"
@ -556,14 +558,13 @@ ActiveRecord::Schema[7.0].define(version: 2023_04_13_135407) do
t.integer "retirement_value_check" t.integer "retirement_value_check"
t.integer "hodate_check" t.integer "hodate_check"
t.integer "extrabor_value_check" t.integer "extrabor_value_check"
t.integer "grant_value_check"
t.integer "staircase_bought_value_check"
t.integer "deposit_and_mortgage_value_check" t.integer "deposit_and_mortgage_value_check"
t.integer "shared_ownership_deposit_value_check" t.integer "shared_ownership_deposit_value_check"
t.integer "grant_value_check"
t.integer "value_value_check"
t.integer "old_persons_shared_ownership_value_check" t.integer "old_persons_shared_ownership_value_check"
t.integer "income2_value_check" t.integer "staircase_bought_value_check"
t.integer "monthly_charges_value_check" t.integer "monthly_charges_value_check"
t.integer "value_value_check"
t.integer "details_known_5" t.integer "details_known_5"
t.integer "details_known_6" t.integer "details_known_6"
t.integer "saledate_check" t.integer "saledate_check"
@ -573,10 +574,9 @@ ActiveRecord::Schema[7.0].define(version: 2023_04_13_135407) do
t.integer "ethnicbuy2" t.integer "ethnicbuy2"
t.integer "proplen_asked" t.integer "proplen_asked"
t.string "old_id" t.string "old_id"
t.integer "pregblank"
t.integer "buy2living" t.integer "buy2living"
t.integer "prevtenbuy2" t.integer "prevtenbuy2"
t.integer "nationalbuy2" t.integer "pregblank"
t.string "uprn" t.string "uprn"
t.integer "uprn_known" t.integer "uprn_known"
t.integer "uprn_confirmed" t.integer "uprn_confirmed"
@ -584,10 +584,11 @@ ActiveRecord::Schema[7.0].define(version: 2023_04_13_135407) do
t.string "address_line2" t.string "address_line2"
t.string "town_or_city" t.string "town_or_city"
t.string "county" t.string "county"
t.integer "nationalbuy2"
t.integer "discounted_sale_value_check" t.integer "discounted_sale_value_check"
t.integer "student_not_child_value_check" t.integer "student_not_child_value_check"
t.integer "buyer_livein_value_check"
t.integer "percentage_discount_value_check" t.integer "percentage_discount_value_check"
t.integer "buyer_livein_value_check"
t.index ["bulk_upload_id"], name: "index_sales_logs_on_bulk_upload_id" t.index ["bulk_upload_id"], name: "index_sales_logs_on_bulk_upload_id"
t.index ["created_by_id"], name: "index_sales_logs_on_created_by_id" t.index ["created_by_id"], name: "index_sales_logs_on_created_by_id"
t.index ["old_id"], name: "index_sales_logs_on_old_id", unique: true t.index ["old_id"], name: "index_sales_logs_on_old_id", unique: true

16
spec/requests/merge_requests_controller_spec.rb

@ -122,6 +122,22 @@ RSpec.describe MergeRequestsController, type: :request do
end end
end end
end end
describe "#other_merging_organisations" do
let(:params) { { merge_request: { other_merging_organisations: "A list of other merging organisations" } } }
context "when adding other merging organisations" do
before do
MergeRequestOrganisation.create!(merge_request_id: merge_request.id, merging_organisation_id: other_organisation.id)
patch "/merge-request/#{merge_request.id}/other-merging-organisations", headers:, params:
end
it "updates the merge request" do
merge_request.reload
expect(merge_request.other_merging_organisations).to eq("A list of other merging organisations")
end
end
end
end end
context "when user is signed in as a support user" do context "when user is signed in as a support user" do

Loading…
Cancel
Save