Kat
2 years ago
3 changed files with 89 additions and 0 deletions
@ -0,0 +1,42 @@
|
||||
class MergeController < ApplicationController |
||||
before_action :authenticate_user! |
||||
|
||||
def show |
||||
render form.view_path |
||||
end |
||||
|
||||
def update |
||||
if form.valid? && form.save! |
||||
redirect_to form.next_path |
||||
else |
||||
render form.view_path |
||||
end |
||||
end |
||||
|
||||
def organisations |
||||
@answer_options = answer_options |
||||
@merge = Merge.new(form_params) |
||||
@merging_organisations_list = Organisation.where(id: @merge.merging_organisations) |
||||
end |
||||
|
||||
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 |
||||
|
||||
private |
||||
|
||||
def form_params |
||||
merge_params = params.fetch(:merge, {}).permit(:merging_organisations) |
||||
if merge_params[:merging_organisations].blank? |
||||
merge_params[:merging_organisations] = [params[:id]] |
||||
else |
||||
merge_params[:merging_organisations] = merge_params[:merging_organisations].split(" ") << params[:merge][:merging_organisation] |
||||
end |
||||
merge_params |
||||
end |
||||
end |
@ -0,0 +1,6 @@
|
||||
class Merge |
||||
include ActiveModel::Model |
||||
include ActiveModel::Attributes |
||||
|
||||
attribute :merging_organisations, array: true, default: [] |
||||
end |
@ -0,0 +1,41 @@
|
||||
<% title = "Tell us if your organisation is merging" %> |
||||
<% content_for :title, title %> |
||||
|
||||
<%= govuk_back_link href: 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">Start typing to search for your managing agent</p> |
||||
|
||||
<%= form_with model: @merge, url: merge_organisations_organisation_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.hidden_field :merging_organisations %> |
||||
<%= f.govuk_submit "Add organisation", classes: "govuk-button--secondary" %> |
||||
<%= govuk_table do |table| %> |
||||
<% @merging_organisations_list.each do |merging_organisation| %> |
||||
<%= table.body do |body| %> |
||||
<%= body.row do |row| %> |
||||
<% row.cell(text: merging_organisation.name) %> |
||||
<% if current_user.data_coordinator? || current_user.support? %> |
||||
<% row.cell(html_attributes: { |
||||
scope: "row", |
||||
class: "govuk-!-text-align-right", |
||||
}) do %> |
||||
<%= govuk_link_to("Remove", merge_organisations_organisation_path) %> |
||||
<% end %> |
||||
<% end %> |
||||
<% end %> |
||||
<% end %> |
||||
<% end %> |
||||
<% end %> |
||||
<% end %> |
||||
|
||||
<%= govuk_button_link_to "Continue", merge_organisations_organisation_path, button: true %> |
||||
</div> |
Loading…
Reference in new issue