Browse Source

Use date_picker for merge request date

pull/2891/head
Kat 4 months ago
parent
commit
65312d0109
  1. 6
      app/controllers/merge_requests_controller.rb
  2. 14
      app/views/merge_requests/merge_date.html.erb
  3. 8
      spec/requests/merge_requests_controller_spec.rb

6
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?)

14
app/views/merge_requests/merge_date.html.erb

@ -11,11 +11,15 @@
<h2 class="govuk-heading-l">What is the merge date?</h2>
<p class="govuk-hint">
Enter the official merge date. Log and organisation page data will show the new organisation name from this date. <br><br>
For example, <%= date_mid_collection_year_formatted(Time.zone.now) %></p>
<%= f.govuk_date_field :merge_date,
legend: { hidden: true },
width: 20 do %>
<% end %>
For example, <%= date_mid_collection_year_formatted(Time.zone.now).tr(" ", "/") %></p>
<%= 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" %>
<div class="govuk-button-group">
<%= f.govuk_submit submit_merge_request_button_text(request.query_parameters["referrer"]) %>

8
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

Loading…
Cancel
Save