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. 10
      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 class FormController < ApplicationController
before_action :authenticate_user! before_action :authenticate_user!
before_action :find_resource, only: [:submit_form, :review] before_action :find_resource, only: %i[submit_form review]
before_action :find_resource_by_named_id, except: [:submit_form, :review] before_action :find_resource_by_named_id, except: %i[submit_form review]
def submit_form def submit_form
if @case_log 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]) @page = @case_log.form.get_page(params[:case_log][:page])
responses_for_page = responses_for_page(@page) responses_for_page = responses_for_page(@page)
if @case_log.update(responses_for_page) if @case_log.update(responses_for_page)
@ -31,14 +22,12 @@ class FormController < ApplicationController
session[:errors] = @case_log.errors.to_json session[:errors] = @case_log.errors.to_json
redirect_to(send(redirect_path, @case_log)) redirect_to(send(redirect_path, @case_log))
end end
end
else else
render_not_found render_not_found
end end
end end
def check_answers def check_answers
session[:review_errors] = nil
if @case_log if @case_log
current_url = request.env["PATH_INFO"] current_url = request.env["PATH_INFO"]
subsection = @case_log.form.get_subsection(current_url.split("/")[-2]) subsection = @case_log.form.get_subsection(current_url.split("/")[-2])
@ -50,11 +39,6 @@ class FormController < ApplicationController
def review def review
if @case_log 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" render "form/review"
else else
render_not_found render_not_found
@ -127,9 +111,4 @@ private
referrer = request.headers["HTTP_REFERER"].presence || "" referrer = request.headers["HTTP_REFERER"].presence || ""
referrer.present? && CGI.parse(referrer.split("?")[-1]).present? && CGI.parse(referrer.split("?")[-1])["referrer"][0] == "check_answers" referrer.present? && CGI.parse(referrer.split("?")[-1]).present? && CGI.parse(referrer.split("?")[-1])["referrer"][0] == "check_answers"
end end
def is_referrer_review?
referrer = request.headers["HTTP_REFERER"].presence || ""
referrer.present? && referrer.split("/")[-1].present? && referrer.split("/")[-1] == "review"
end
end end

1
app/models/form/question.rb

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

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

@ -5,9 +5,7 @@
"Review lettings log" => "" "Review lettings log" => ""
}) %> }) %>
<%= form_with model: @case_log, url: form_case_log_path(@case_log), method: "post" do |f| %> <div class="govuk-grid-row">
<%= f.govuk_error_summary %>
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds-from-desktop"> <div class="govuk-grid-column-two-thirds-from-desktop">
<h1 class="govuk-heading-xl"> <h1 class="govuk-heading-xl">
<%= content_for(:title) %> <%= content_for(:title) %>
@ -30,9 +28,7 @@
<% end %> <% end %>
<% end %> <% end %>
<div class="govuk-inset-text"> <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> </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) expect(response).to have_http_status(:not_found)
end end
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 end
end end

Loading…
Cancel
Save