Browse Source

Save merging organisations wip

pull/1535/head
Kat 3 years ago
parent
commit
3d0770b07e
  1. 27
      app/controllers/merge_requests_controller.rb
  2. 4
      app/models/merge_request.rb
  3. 47
      app/views/merge_requests/organisations.html.erb
  4. 1
      config/routes.rb
  5. 2
      db/migrate/20230412111338_add_merge_requests_table.rb
  6. 2
      db/schema.rb

27
app/controllers/merge_requests_controller.rb

@ -13,12 +13,37 @@ class MergeRequestsController < ApplicationController
end
def organisations
@merge_request = MergeRequest.find(params[:merge_request_id])
@answer_options = answer_options
@merging_organisations_list = [@merge_request.requesting_organisation]
end
def update_organisations
@merge_request = MergeRequest.find(params[:merge_request_id])
if @merge_request.merging_organisation_ids
@merge_request.merging_organisation_ids << params[:merge_request][:merging_organisation]
@merge_request.save!
else
@merge_request.update!(merging_organisation_ids:[params[:merge_request][:merging_organisation]])
end
@answer_options = answer_options
@merging_organisations_list = [@merge_request.requesting_organisation] + @merge_request.merging_organisations
render "organisations"
end
private
def answer_options
answer_options = { "" => "Select an option" }
Organisation.all.pluck(:id, :name).each do |organisation|
answer_options[organisation[0]] = organisation[1]
end
answer_options
end
def merge_request_params
required_params = {}
required_params = params.fetch(:merge_request, {}).permit(:requesting_organisation)
required_params[:requesting_organisation] = current_user.organisation
required_params

4
app/models/merge_request.rb

@ -1,3 +1,7 @@
class MergeRequest < ApplicationRecord
belongs_to :requesting_organisation, class_name: "Organisation"
def merging_organisations
Organisation.where(id: merging_organisation_ids)
end
end

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

@ -0,0 +1,47 @@
<% title = "Tell us if your organisation is merging" %>
<% content_for :title, title %>
<%# <%= govuk_back_link href: merge_request_organisation_path %>
<h2 class="govuk-heading-l">Tell us if your organisation is merging</h2>
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds-from-desktop">
<p class="govuk-body">Which organisations are merging?</p>
<%= form_with model: @merge_request, url: merge_request_organisations_path, method: :patch do |f| %>
<%= f.govuk_error_summary %>
<%= render partial: "organisation_relationships/related_organisation_select_question", locals: {
field: :merging_organisation,
question: Form::Question.new("", { "answer_options" => @answer_options }, nil),
f:,
} %>
<%= f.govuk_submit "Add organisation", classes: "govuk-button--secondary" %>
<%= govuk_table do |table| %>
<%= table.body do |body| %>
<%= body.row do |row| %>
<% row.cell(text: @merge_request.requesting_organisation.name) %>
<% row.cell(html_attributes: {
scope: "row",
class: "govuk-!-text-align-right",
}) %>
<% end %>
<% end %>
<% @merge_request.merging_organisations&.each do |merging_organisation| %>
<%= table.body do |body| %>
<%= body.row do |row| %>
<% row.cell(text: merging_organisation.name) %>
<% row.cell(html_attributes: {
scope: "row",
class: "govuk-!-text-align-right",
}) do %>
<%= govuk_link_to("Remove", merge_request_organisations_path) %>
<% end %>
<% end %>
<% end %>
<% end %>
<% end %>
<%= govuk_details(summary_text: "Can't find the managing agent you're looking for?") do %>
<p>List other organisations that are part of the merge but not registered on CORE.</li>
<% end %>
<% end %>
<%= govuk_button_link_to "Continue", "#", button: true %>
</div>

1
config/routes.rb

@ -126,6 +126,7 @@ Rails.application.routes.draw do
resources :merge_requests, path: "/merge-request" do
post "merge-request", to: "merge_request#create_merge_request"
get "organisations", to: "merge_requests#organisations"
patch "organisations", to: "merge_requests#update_organisations"
end
resources :lettings_logs, path: "/lettings-logs" do

2
db/migrate/20230412111338_add_merge_requests_table.rb

@ -2,7 +2,7 @@ class AddMergeRequestsTable < ActiveRecord::Migration[7.0]
def change
create_table :merge_requests do |t|
t.integer :requesting_organisation_id
t.integer :merging_organisations, array: true
t.integer :merging_organisation_ids, array: true
t.timestamps
end
end

2
db/schema.rb

@ -356,7 +356,7 @@ ActiveRecord::Schema[7.0].define(version: 2023_04_12_143245) do
create_table "merge_requests", force: :cascade do |t|
t.integer "requesting_organisation_id"
t.integer "merging_organisations", array: true
t.integer "merging_organisation_ids", array: true
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end

Loading…
Cancel
Save