Browse Source

Deduplicate soft validations forms

pull/2873/head
Kat 6 months ago
parent
commit
48533fbc7a
  1. 6
      app/controllers/bulk_upload_lettings_soft_validations_check_controller.rb
  2. 6
      app/controllers/bulk_upload_sales_soft_validations_check_controller.rb
  3. 47
      app/models/forms/bulk_upload_lettings_soft_validations_check/confirm.rb
  4. 31
      app/models/forms/bulk_upload_sales_soft_validations_check/chosen.rb
  5. 53
      app/models/forms/bulk_upload_sales_soft_validations_check/confirm_soft_errors.rb
  6. 9
      app/models/forms/bulk_upload_soft_validations_check/chosen.rb
  7. 13
      app/models/forms/bulk_upload_soft_validations_check/confirm.rb
  8. 13
      app/models/forms/bulk_upload_soft_validations_check/confirm_soft_errors.rb
  9. 6
      config/locales/en.yml

6
app/controllers/bulk_upload_lettings_soft_validations_check_controller.rb

@ -36,11 +36,11 @@ private
def form
@form ||= case params[:page]
when "confirm-soft-errors"
Forms::BulkUploadLettingsSoftValidationsCheck::ConfirmSoftErrors.new(form_params.merge(bulk_upload: @bulk_upload))
Forms::BulkUploadSoftValidationsCheck::ConfirmSoftErrors.new(form_params.merge(bulk_upload: @bulk_upload, log_type: "lettings"))
when "chosen"
Forms::BulkUploadLettingsSoftValidationsCheck::Chosen.new(form_params.merge(bulk_upload: @bulk_upload))
Forms::BulkUploadSoftValidationsCheck::Chosen.new(form_params.merge(bulk_upload: @bulk_upload, log_type: "lettings"))
when "confirm"
Forms::BulkUploadLettingsSoftValidationsCheck::Confirm.new(form_params.merge(bulk_upload: @bulk_upload))
Forms::BulkUploadSoftValidationsCheck::Confirm.new(form_params.merge(bulk_upload: @bulk_upload, log_type: "lettings"))
else
raise "invalid form"
end

6
app/controllers/bulk_upload_sales_soft_validations_check_controller.rb

@ -36,11 +36,11 @@ private
def form
@form ||= case params[:page]
when "confirm-soft-errors"
Forms::BulkUploadSalesSoftValidationsCheck::ConfirmSoftErrors.new(form_params.merge(bulk_upload: @bulk_upload))
Forms::BulkUploadSoftValidationsCheck::ConfirmSoftErrors.new(form_params.merge(bulk_upload: @bulk_upload, log_type: "sales"))
when "chosen"
Forms::BulkUploadSalesSoftValidationsCheck::Chosen.new(form_params.merge(bulk_upload: @bulk_upload))
Forms::BulkUploadSoftValidationsCheck::Chosen.new(form_params.merge(bulk_upload: @bulk_upload, log_type: "sales"))
when "confirm"
Forms::BulkUploadSalesSoftValidationsCheck::Confirm.new(form_params.merge(bulk_upload: @bulk_upload))
Forms::BulkUploadSoftValidationsCheck::Confirm.new(form_params.merge(bulk_upload: @bulk_upload, log_type: "sales"))
else
raise "invalid form"
end

47
app/models/forms/bulk_upload_lettings_soft_validations_check/confirm.rb

@ -1,47 +0,0 @@
module Forms
module BulkUploadLettingsSoftValidationsCheck
class Confirm
include ActiveModel::Model
include ActiveModel::Attributes
include Rails.application.routes.url_helpers
attribute :bulk_upload
def view_path
"bulk_upload_lettings_soft_validations_check/confirm"
end
def back_path
page_bulk_upload_lettings_soft_validations_check_path(bulk_upload, page: "confirm-soft-errors")
end
def next_path
lettings_logs_path
end
def save!
ApplicationRecord.transaction do
processor = BulkUpload::Processor.new(bulk_upload:)
processor.approve_and_confirm_soft_validations
bulk_upload.update!(choice: "bulk-confirm-soft-validations")
end
true
end
def preflight_valid?
bulk_upload.choice != "bulk-confirm-soft-validations" && bulk_upload.choice != "create-fix-inline"
end
def preflight_redirect
case bulk_upload.choice
when "bulk-confirm-soft-validations"
page_bulk_upload_lettings_soft_validations_check_path(bulk_upload, :chosen)
when "create-fix-inline"
page_bulk_upload_lettings_resume_path(bulk_upload, :chosen)
end
end
end
end
end

31
app/models/forms/bulk_upload_sales_soft_validations_check/chosen.rb

@ -1,31 +0,0 @@
module Forms
module BulkUploadSalesSoftValidationsCheck
class Chosen
include ActiveModel::Model
include ActiveModel::Attributes
include Rails.application.routes.url_helpers
attribute :bulk_upload
def view_path
"bulk_upload_sales_soft_validations_check/chosen"
end
def back_path
sales_logs_path
end
def next_path
sales_logs_path
end
def save!
true
end
def preflight_valid?
true
end
end
end
end

53
app/models/forms/bulk_upload_sales_soft_validations_check/confirm_soft_errors.rb

@ -1,53 +0,0 @@
module Forms
module BulkUploadSalesSoftValidationsCheck
class ConfirmSoftErrors
include ActiveModel::Model
include ActiveModel::Attributes
include Rails.application.routes.url_helpers
attribute :bulk_upload
attribute :confirm_soft_errors, :string
validates :confirm_soft_errors, presence: true
def options
[
OpenStruct.new(id: "yes", name: "Yes, these fields are correct"),
OpenStruct.new(id: "no", name: "No, there are errors"),
]
end
def view_path
"bulk_upload_sales_soft_validations_check/confirm_soft_errors"
end
def next_path
case confirm_soft_errors
when "no"
page_bulk_upload_sales_resume_path(bulk_upload, page: "fix-choice", soft_errors_only: true)
when "yes"
page_bulk_upload_sales_soft_validations_check_path(bulk_upload, page: "confirm")
else
raise "invalid choice"
end
end
def save!
true
end
def preflight_valid?
bulk_upload.choice != "bulk-confirm-soft-validations" && bulk_upload.choice != "create-fix-inline"
end
def preflight_redirect
case bulk_upload.choice
when "bulk-confirm-soft-validations"
page_bulk_upload_sales_soft_validations_check_path(bulk_upload, :chosen)
when "create-fix-inline"
page_bulk_upload_sales_resume_path(bulk_upload, :chosen)
end
end
end
end
end

9
app/models/forms/bulk_upload_lettings_soft_validations_check/chosen.rb → app/models/forms/bulk_upload_soft_validations_check/chosen.rb

@ -1,22 +1,23 @@
module Forms
module BulkUploadLettingsSoftValidationsCheck
module BulkUploadSoftValidationsCheck
class Chosen
include ActiveModel::Model
include ActiveModel::Attributes
include Rails.application.routes.url_helpers
attribute :log_type
attribute :bulk_upload
def view_path
"bulk_upload_lettings_soft_validations_check/chosen"
"bulk_upload_#{log_type}_soft_validations_check/chosen"
end
def back_path
lettings_logs_path
send("#{log_type}_logs_path")
end
def next_path
lettings_logs_path
send("#{log_type}_logs_path")
end
def save!

13
app/models/forms/bulk_upload_sales_soft_validations_check/confirm.rb → app/models/forms/bulk_upload_soft_validations_check/confirm.rb

@ -1,22 +1,23 @@
module Forms
module BulkUploadSalesSoftValidationsCheck
module BulkUploadSoftValidationsCheck
class Confirm
include ActiveModel::Model
include ActiveModel::Attributes
include Rails.application.routes.url_helpers
attribute :log_type
attribute :bulk_upload
def view_path
"bulk_upload_sales_soft_validations_check/confirm"
"bulk_upload_#{log_type}_soft_validations_check/confirm"
end
def back_path
page_bulk_upload_sales_soft_validations_check_path(bulk_upload, page: "confirm-soft-errors")
send("page_bulk_upload_#{log_type}_soft_validations_check_path", bulk_upload, page: "confirm-soft-errors")
end
def next_path
sales_logs_path
send("#{log_type}_logs_path")
end
def save!
@ -37,9 +38,9 @@ module Forms
def preflight_redirect
case bulk_upload.choice
when "bulk-confirm-soft-validations"
page_bulk_upload_sales_soft_validations_check_path(bulk_upload, :chosen)
send("page_bulk_upload_#{log_type}_soft_validations_check_path", bulk_upload, :chosen)
when "create-fix-inline"
page_bulk_upload_sales_resume_path(bulk_upload, :chosen)
send("page_bulk_upload_#{log_type}_resume_path", bulk_upload, :chosen)
end
end
end

13
app/models/forms/bulk_upload_lettings_soft_validations_check/confirm_soft_errors.rb → app/models/forms/bulk_upload_soft_validations_check/confirm_soft_errors.rb

@ -1,10 +1,11 @@
module Forms
module BulkUploadLettingsSoftValidationsCheck
module BulkUploadSoftValidationsCheck
class ConfirmSoftErrors
include ActiveModel::Model
include ActiveModel::Attributes
include Rails.application.routes.url_helpers
attribute :log_type
attribute :bulk_upload
attribute :confirm_soft_errors, :string
@ -18,15 +19,15 @@ module Forms
end
def view_path
"bulk_upload_lettings_soft_validations_check/confirm_soft_errors"
"bulk_upload_#{log_type}_soft_validations_check/confirm_soft_errors"
end
def next_path
case confirm_soft_errors
when "no"
page_bulk_upload_lettings_resume_path(bulk_upload, page: "fix-choice", soft_errors_only: true)
send("page_bulk_upload_#{log_type}_resume_path", bulk_upload, page: "fix-choice", soft_errors_only: true)
when "yes"
page_bulk_upload_lettings_soft_validations_check_path(bulk_upload, page: "confirm")
send("page_bulk_upload_#{log_type}_soft_validations_check_path", bulk_upload, page: "confirm")
else
raise "invalid choice"
end
@ -43,9 +44,9 @@ module Forms
def preflight_redirect
case bulk_upload.choice
when "bulk-confirm-soft-validations"
page_bulk_upload_lettings_soft_validations_check_path(bulk_upload, :chosen)
send("page_bulk_upload_#{log_type}_soft_validations_check_path", bulk_upload, :chosen)
when "create-fix-inline"
page_bulk_upload_lettings_resume_path(bulk_upload, :chosen)
send("page_bulk_upload_#{log_type}_resume_path", bulk_upload, :chosen)
end
end
end

6
config/locales/en.yml

@ -80,11 +80,7 @@ en:
choice:
blank: "Select how you would like to fix these errors."
inclusion: "You must select one of the following options for how you would like to fix these errors."
forms/bulk_upload_lettings_soft_validations_check/confirm_soft_errors:
attributes:
confirm_soft_errors:
blank: "You must select if there are errors in these fields."
forms/bulk_upload_sales_soft_validations_check/confirm_soft_errors:
forms/bulk_upload_soft_validations_check/confirm_soft_errors:
attributes:
confirm_soft_errors:
blank: "You must select if there are errors in these fields."

Loading…
Cancel
Save