Browse Source

feat: wip errors more refactoring

pull/980/head
natdeanlewissoftwire 2 years ago
parent
commit
4c6e8aff03
  1. 36
      app/controllers/schemes_controller.rb
  2. 2
      app/views/schemes/toggle_active.html.erb
  3. 2
      app/views/schemes/toggle_active_confirm.html.erb
  4. 3
      config/locales/en.yml
  5. 1
      config/routes.rb

36
app/controllers/schemes_controller.rb

@ -26,16 +26,18 @@ class SchemesController < ApplicationController
if @scheme.errors.present?
render "toggle_active", locals: { action: "deactivate" }, status: :unprocessable_entity
elsif deactivation_date_value.blank?
render "toggle_active", locals: { action: "deactivate" }
elsif params[:scheme][:confirm].present?
if @scheme.update(deactivation_date: deactivation_date_value)
# update the logs
flash[:notice] = "#{@scheme.service_name} has been deactivated"
end
redirect_to scheme_details_path(@scheme)
else
render "toggle_active_confirm", locals: { action: "deactivate", deactivation_date: deactivation_date_value }
if deactivation_date_value.blank?
render "toggle_active", locals: { action: "deactivate" }
elsif (params[:scheme][:confirm].present?)
if @scheme.update(deactivation_date: deactivation_date_value)
# update the logs
flash[:notice] = "#{@scheme.service_name} has been deactivated"
end
redirect_to scheme_details_path(@scheme)
else
render "toggle_active_confirm", locals: {action: "deactivate", deactivation_date: deactivation_date_value}
end
end
end
@ -146,24 +148,18 @@ class SchemesController < ApplicationController
end
def deactivation_date
return if params[:scheme].blank?
return @scheme.errors.add(:deactivation_date, message: I18n.t("validations.scheme.deactivation_date.not_selected")) if params[:scheme][:deactivation_date].blank?
return unless params[:scheme].present?
return @scheme.errors.add(:deactivation_date, message: I18n.t("validations.scheme.deactivation_date.not_selected")) unless params[:scheme][:deactivation_date].present?
return params[:scheme][:deactivation_date] unless params[:scheme][:deactivation_date] == "other"
day = params[:scheme]["deactivation_date(3i)"]
month = params[:scheme]["deactivation_date(2i)"]
year = params[:scheme]["deactivation_date(1i)"]
if [day, month, year].any?(&:blank?)
{ day:, month:, year: }.each do |period, value|
@scheme.errors.add(:deactivation_date, message: I18n.t("validations.scheme.deactivation_date.not_entered", period: period.to_s)) if value.blank?
end
elsif !Date.valid_date?(year.to_i, month.to_i, day.to_i)
@scheme.errors.add(:deactivation_date, message: I18n.t("validations.scheme.deactivation_date.invalid"))
elsif !year.to_i.between?(2000, 2200)
@scheme.errors.add(:deactivation_date, message: I18n.t("validations.scheme.deactivation_date.invalid"))
else
if [day, month, year].all?(&:present?) && Date.valid_date?(year.to_i, month.to_i, day.to_i) && year.to_i.between?(2000, 2200)
Date.new(year.to_i, month.to_i, day.to_i)
else
@scheme.errors.add(:deactivation_date, message: I18n.t("validations.scheme.deactivation_date.not_entered"))
end
end

2
app/views/schemes/toggle_active.html.erb

@ -5,7 +5,7 @@
) %>
<% end %>
<%= form_with model: @scheme, url: scheme_deactivate_path(@scheme), method: "get", local: true do |f| %>
<%= form_with model: @scheme, url: scheme_deactivate_path(@scheme), method: "patch", local: true do |f| %>
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds">
<%= f.govuk_error_summary %>

2
app/views/schemes/toggle_active_confirm.html.erb

@ -1,4 +1,4 @@
<%= form_with model: @scheme, url: scheme_deactivate_path(@scheme), method: "get", local: true do |f| %>
<%= form_with model: @scheme, url: scheme_deactivate_path(@scheme), method: "patch", local: true do |f| %>
<% content_for :before_content do %>
<%= govuk_back_link(href: :back) %>
<% end %>

3
config/locales/en.yml

@ -314,8 +314,7 @@ en:
scheme:
deactivation_date:
not_selected: "Select one of the options"
not_entered: "Enter a %{period}"
invalid: "Enter a valid date"
not_entered: "Enter a date"
soft_validations:
net_income:

1
config/routes.rb

@ -50,6 +50,7 @@ Rails.application.routes.draw do
get "edit-name", to: "schemes#edit_name"
get "support-services-provider", to: "schemes#support_services_provider"
get "deactivate", to: "schemes#deactivate"
patch "deactivate", to: "schemes#deactivate"
member do
resources :locations do

Loading…
Cancel
Save