Browse Source

Remove review action

pull/469/head
Kat 3 years ago
parent
commit
a6c1b906ca
  1. 25
      app/controllers/form_controller.rb
  2. 1
      app/models/form/question.rb
  3. 6
      app/views/form/review.html.erb
  4. 17
      spec/requests/form_controller_spec.rb

25
app/controllers/form_controller.rb

@ -1,19 +1,10 @@
class FormController < ApplicationController
before_action :authenticate_user!
before_action :find_resource, only: [:submit_form, :review]
before_action :find_resource_by_named_id, except: [:submit_form, :review]
before_action :find_resource, only: %i[submit_form review]
before_action :find_resource_by_named_id, except: %i[submit_form review]
def submit_form
if @case_log
if is_referrer_review?
if @case_log.completed?
redirect_to(case_logs_path, flash: { notice: "Log #{@case_log.id} has been submitted" })
else
@case_log.errors.add :base, "All mandatory fields have not been completed, please refer to section status"
session[:review_errors] = @case_log.errors.to_json
redirect_to(review_case_log_path)
end
else
@page = @case_log.form.get_page(params[:case_log][:page])
responses_for_page = responses_for_page(@page)
if @case_log.update(responses_for_page)
@ -31,14 +22,12 @@ class FormController < ApplicationController
session[:errors] = @case_log.errors.to_json
redirect_to(send(redirect_path, @case_log))
end
end
else
render_not_found
end
end
def check_answers
session[:review_errors] = nil
if @case_log
current_url = request.env["PATH_INFO"]
subsection = @case_log.form.get_subsection(current_url.split("/")[-2])
@ -50,11 +39,6 @@ class FormController < ApplicationController
def review
if @case_log
if session[:review_errors]
JSON(session[:review_errors]).each do |field, messages|
messages.each { |message| @case_log.errors.add field.to_sym, message }
end
end
render "form/review"
else
render_not_found
@ -127,9 +111,4 @@ private
referrer = request.headers["HTTP_REFERER"].presence || ""
referrer.present? && CGI.parse(referrer.split("?")[-1]).present? && CGI.parse(referrer.split("?")[-1])["referrer"][0] == "check_answers"
end
def is_referrer_review?
referrer = request.headers["HTTP_REFERER"].presence || ""
referrer.present? && referrer.split("/")[-1].present? && referrer.split("/")[-1] == "review"
end
end

1
app/models/form/question.rb

@ -175,6 +175,7 @@ private
def checkbox_answer_label(case_log)
answer = []
return "Yes" if id == "declaration" && value_is_yes?(case_log["declaration"])
answer_options.each { |key, options| value_is_yes?(case_log[key]) ? answer << options["value"] : nil }
answer.join(", ")
end

6
app/views/form/review.html.erb

@ -5,8 +5,6 @@
"Review lettings log" => ""
}) %>
<%= form_with model: @case_log, url: form_case_log_path(@case_log), method: "post" do |f| %>
<%= f.govuk_error_summary %>
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds-from-desktop">
<h1 class="govuk-heading-xl">
@ -30,9 +28,7 @@
<% end %>
<% end %>
<div class="govuk-inset-text">
You can submit changes to this log until the close of the current collection year, 31 March 2022.
You can submit changes to this log until the close of the current collection year, 31 March <%= @case_log.collection_start_year.present? ? @case_log.collection_start_year + 1 : " of current collection end year" %>.
</div>
</div>
</div>
<%= f.govuk_submit "Submit lettings log", accesskey: "s" %>
<% end %>

17
spec/requests/form_controller_spec.rb

@ -364,23 +364,6 @@ RSpec.describe FormController, type: :request do
expect(response).to have_http_status(:not_found)
end
end
context "When submitting the case log from the review page" do
it "redirects to the case logs page on a successful submission of a complete case log" do
post "/logs/#{completed_case_log.id}/form", headers: { "HTTP_REFERER": "/logs/#{completed_case_log.id}/review" }
expect(response).to redirect_to("/logs")
follow_redirect!
expect(Capybara::Node::Simple.new(response.body)).to have_content("Log #{completed_case_log.id} has been submitted")
end
it "redirects to the review page and presents an error to the user if submitting an incomplete case log" do
post "/logs/#{setup_complete_case_log.id}/form", headers: { "HTTP_REFERER": "/logs/#{setup_complete_case_log.id}/review" }
expect(response).to redirect_to("/logs/#{setup_complete_case_log.id}/review")
follow_redirect!
expect(Capybara::Node::Simple.new(response.body)).to have_content("All mandatory fields have not been completed, please refer to section status")
end
end
end
end
end

Loading…
Cancel
Save