From 7b85d54dd03fdd744fb86b3574b664da31d08734 Mon Sep 17 00:00:00 2001 From: Kat Date: Wed, 12 Apr 2023 15:10:11 +0100 Subject: [PATCH] Create merge_request table and paths --- app/controllers/merge_requests_controller.rb | 27 +++++++++++++++++++ app/controllers/organisations_controller.rb | 4 +++ app/models/merge_request.rb | 3 +++ .../merge_requests/organisations.html.erb | 0 ...{merge.html.erb => merge_request.html.erb} | 8 +++--- app/views/organisations/show.html.erb | 2 +- config/routes.rb | 7 ++++- ...20230412111338_add_merge_requests_table.rb | 9 +++++++ db/schema.rb | 7 +++++ .../requests/organisations_controller_spec.rb | 10 +++---- 10 files changed, 66 insertions(+), 11 deletions(-) create mode 100644 app/controllers/merge_requests_controller.rb create mode 100644 app/models/merge_request.rb create mode 100644 app/views/merge_requests/organisations.html.erb rename app/views/organisations/{merge.html.erb => merge_request.html.erb} (92%) create mode 100644 db/migrate/20230412111338_add_merge_requests_table.rb diff --git a/app/controllers/merge_requests_controller.rb b/app/controllers/merge_requests_controller.rb new file mode 100644 index 000000000..5e40279b3 --- /dev/null +++ b/app/controllers/merge_requests_controller.rb @@ -0,0 +1,27 @@ +class MergeRequestsController < ApplicationController + before_action :authenticate_user! + # before_action :authenticate_scope! + + def create + @merge_request = MergeRequest.new + end + + def create + @merge_request = MergeRequest.create!(merge_request_params) + + redirect_to merge_request_organisations_path(@merge_request) + end + + def organisations + end + + private + + def merge_request_params + required_params = {} + + required_params[:requesting_organisation] = current_user.organisation + required_params + end + +end diff --git a/app/controllers/organisations_controller.rb b/app/controllers/organisations_controller.rb index 1bd4694ec..70943063f 100644 --- a/app/controllers/organisations_controller.rb +++ b/app/controllers/organisations_controller.rb @@ -137,6 +137,10 @@ class OrganisationsController < ApplicationController end end + def merge_request + @merge_request = MergeRequest.new + end + private def org_params diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb new file mode 100644 index 000000000..0a8f74716 --- /dev/null +++ b/app/models/merge_request.rb @@ -0,0 +1,3 @@ +class MergeRequest < ApplicationRecord + belongs_to :requesting_organisation, class_name: "Organisation" +end diff --git a/app/views/merge_requests/organisations.html.erb b/app/views/merge_requests/organisations.html.erb new file mode 100644 index 000000000..e69de29bb diff --git a/app/views/organisations/merge.html.erb b/app/views/organisations/merge_request.html.erb similarity index 92% rename from app/views/organisations/merge.html.erb rename to app/views/organisations/merge_request.html.erb index 7d72d08b7..7f0aa44c4 100644 --- a/app/views/organisations/merge.html.erb +++ b/app/views/organisations/merge_request.html.erb @@ -40,9 +40,9 @@ <%= govuk_warning_text text: "You will not be able to submit your request without the above information. Do not start the form until you have obtained all of the information. " %> - <%= govuk_start_button( - text: "Start now", - href: "#", - ) %> + + <%= form_for @merge_request, url: merge_requests_path do |f| %> + <%= f.submit "Start now", class: "govuk-button govuk-button--start" %> + <% end %> diff --git a/app/views/organisations/show.html.erb b/app/views/organisations/show.html.erb index 4561e985b..e2dbb9862 100644 --- a/app/views/organisations/show.html.erb +++ b/app/views/organisations/show.html.erb @@ -36,7 +36,7 @@ <% end %> <% end %> <% if FeatureToggle.merge_organisations_enabled? %> -

Is your organisation merging with another? <%= govuk_link_to "Let us know using this form", merge_organisation_path %>

+

Is your organisation merging with another? <%= govuk_link_to "Let us know using this form", merge_request_organisation_path %>

<% end %> diff --git a/config/routes.rb b/config/routes.rb index f6e00083b..80647c28d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -119,10 +119,15 @@ Rails.application.routes.draw do get "managing-agents/remove", to: "organisation_relationships#remove_managing_agent" post "managing-agents", to: "organisation_relationships#create_managing_agent" delete "managing-agents", to: "organisation_relationships#delete_managing_agent" - get "merge", to: "organisations#merge" + get "merge-request", to: "organisations#merge_request" end end + resources :merge_requests, path: "/merge-request" do + post "merge-request", to: "merge_request#create_merge_request" + get "organisations", to: "merge_requests#organisations" + end + resources :lettings_logs, path: "/lettings-logs" do collection do post "bulk-upload", to: "bulk_upload#bulk_upload" diff --git a/db/migrate/20230412111338_add_merge_requests_table.rb b/db/migrate/20230412111338_add_merge_requests_table.rb new file mode 100644 index 000000000..356cd473d --- /dev/null +++ b/db/migrate/20230412111338_add_merge_requests_table.rb @@ -0,0 +1,9 @@ +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.timestamps + end + end +end diff --git a/db/schema.rb b/db/schema.rb index e121fda09..ffd9b7e3a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -354,6 +354,13 @@ ActiveRecord::Schema[7.0].define(version: 2023_04_12_143245) do t.string "collection" end + create_table "merge_requests", force: :cascade do |t| + t.integer "requesting_organisation_id" + t.integer "merging_organisations", array: true + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + end + create_table "organisation_relationships", force: :cascade do |t| t.integer "child_organisation_id" t.integer "parent_organisation_id" diff --git a/spec/requests/organisations_controller_spec.rb b/spec/requests/organisations_controller_spec.rb index 459987fdc..b16ee4750 100644 --- a/spec/requests/organisations_controller_spec.rb +++ b/spec/requests/organisations_controller_spec.rb @@ -230,7 +230,7 @@ RSpec.describe OrganisationsController, type: :request do it "displays a link to merge organisations" do expect(page).to have_content("Is your organisation merging with another?") - expect(page).to have_link("Let us know using this form", href: "/organisations/#{organisation.id}/merge") + expect(page).to have_link("Let us know using this form", href: "/organisations/#{organisation.id}/merge-request") end end @@ -441,10 +441,10 @@ RSpec.describe OrganisationsController, type: :request do end end - describe "#merge" do + fdescribe "#merge" do context "with an organisation that the user belongs to" do before do - get "/organisations/#{organisation.id}/merge", headers:, params: {} + get "/organisations/#{organisation.id}/merge-request", headers:, params: {} end it "shows the correct content" do @@ -456,13 +456,13 @@ RSpec.describe OrganisationsController, type: :request do end it "has a correct start no button" do - expect(page).to have_link("Start now", href: "#") + expect(page).to have_link("Start now", href: "/merge-request/new") end end context "with organisation that are not in scope for the user, i.e. that they do not belong to" do before do - get "/organisations/#{unauthorised_organisation.id}/merge", headers:, params: {} + get "/organisations/#{unauthorised_organisation.id}/merge-request", headers:, params: {} end it "returns not found 404 from org details route" do