diff --git a/app/controllers/merge_requests_controller.rb b/app/controllers/merge_requests_controller.rb index e38d1bdf0..c6687b704 100644 --- a/app/controllers/merge_requests_controller.rb +++ b/app/controllers/merge_requests_controller.rb @@ -137,9 +137,9 @@ private @merge_request.errors.add(:absorbing_organisation_id, :blank) end when "merge_date" - day = merge_request_params["merge_date(3i)"] - month = merge_request_params["merge_date(2i)"] - year = merge_request_params["merge_date(1i)"] + day = merge_request_params["merge_date"].split("/")[0] + month = merge_request_params["merge_date"].split("/")[1] + year = merge_request_params["merge_date"].split("/")[2] return @merge_request.errors.add(:merge_date, :blank) if [day, month, year].all?(&:blank?) diff --git a/app/views/merge_requests/merge_date.html.erb b/app/views/merge_requests/merge_date.html.erb index 637426446..c4f893892 100644 --- a/app/views/merge_requests/merge_date.html.erb +++ b/app/views/merge_requests/merge_date.html.erb @@ -11,11 +11,15 @@

What is the merge date?

Enter the official merge date. Log and organisation page data will show the new organisation name from this date.

- For example, <%= date_mid_collection_year_formatted(Time.zone.now) %>

- <%= f.govuk_date_field :merge_date, - legend: { hidden: true }, - width: 20 do %> - <% end %> + For example, <%= date_mid_collection_year_formatted(Time.zone.now).tr(" ", "/") %>

+ <%= render partial: "components/date_picker", locals: { + resource: @merge_request, + question_id: "merge_date", + legend: nil, + resource_type: "merge_request", + hint: "", + f:, + } %> <%= f.hidden_field :page, value: "merge_date" %>
<%= f.govuk_submit submit_merge_request_button_text(request.query_parameters["referrer"]) %> diff --git a/spec/requests/merge_requests_controller_spec.rb b/spec/requests/merge_requests_controller_spec.rb index 4c07dbfb7..5545d6ca2 100644 --- a/spec/requests/merge_requests_controller_spec.rb +++ b/spec/requests/merge_requests_controller_spec.rb @@ -354,7 +354,7 @@ RSpec.describe MergeRequestsController, type: :request do context "when not answering the question" do let(:merge_request) { MergeRequest.create!(requesting_organisation: organisation, absorbing_organisation: other_organisation) } let(:params) do - { merge_request: { page: "merge_date" } } + { merge_request: { merge_date: "", page: "merge_date" } } end let(:request) do patch "/merge-request/#{merge_request.id}", headers:, params: @@ -375,7 +375,7 @@ RSpec.describe MergeRequestsController, type: :request do context "when merge date set to an invalid date" do let(:merge_request) { MergeRequest.create!(requesting_organisation: organisation) } let(:params) do - { merge_request: { page: "merge_date", "merge_date(3i)": "10", "merge_date(2i)": "44", "merge_date(1i)": "2022" } } + { merge_request: { page: "merge_date", "merge_date": "10/44/2022" } } end let(:request) do @@ -393,7 +393,7 @@ RSpec.describe MergeRequestsController, type: :request do context "when merge date set to a valid date" do let(:merge_request) { MergeRequest.create!(requesting_organisation: organisation) } let(:params) do - { merge_request: { page: "merge_date", "merge_date(3i)": "10", "merge_date(2i)": "4", "merge_date(1i)": "2022" } } + { merge_request: { page: "merge_date", "merge_date": "10/4/2022" } } end let(:request) do @@ -416,7 +416,7 @@ RSpec.describe MergeRequestsController, type: :request do context "when merge date set to a date more than 1 year in the future" do let(:merge_request) { MergeRequest.create!(requesting_organisation: organisation) } let(:params) do - { merge_request: { page: "merge_date", "merge_date(3i)": (Time.zone.now.day + 1).to_s, "merge_date(2i)": Time.zone.now.month.to_s, "merge_date(1i)": (Time.zone.now.year + 1).to_s } } + { merge_request: { page: "merge_date", "merge_date": [(Time.zone.now.day + 1).to_s, Time.zone.now.month.to_s, (Time.zone.now.year + 1).to_s].join("/") } } end let(:request) do