From 48533fbc7ae1779b0977f3174f8dbaa57a7ce2c6 Mon Sep 17 00:00:00 2001 From: Kat <54268893+kosiakkatrina@users.noreply.github.com> Date: Tue, 17 Dec 2024 08:51:36 +0000 Subject: [PATCH] Deduplicate soft validations forms --- ...tings_soft_validations_check_controller.rb | 6 +-- ...sales_soft_validations_check_controller.rb | 6 +-- .../confirm.rb | 47 ---------------- .../chosen.rb | 31 ----------- .../confirm_soft_errors.rb | 53 ------------------- .../chosen.rb | 9 ++-- .../confirm.rb | 13 ++--- .../confirm_soft_errors.rb | 13 ++--- config/locales/en.yml | 6 +-- 9 files changed, 26 insertions(+), 158 deletions(-) delete mode 100644 app/models/forms/bulk_upload_lettings_soft_validations_check/confirm.rb delete mode 100644 app/models/forms/bulk_upload_sales_soft_validations_check/chosen.rb delete mode 100644 app/models/forms/bulk_upload_sales_soft_validations_check/confirm_soft_errors.rb rename app/models/forms/{bulk_upload_lettings_soft_validations_check => bulk_upload_soft_validations_check}/chosen.rb (65%) rename app/models/forms/{bulk_upload_sales_soft_validations_check => bulk_upload_soft_validations_check}/confirm.rb (65%) rename app/models/forms/{bulk_upload_lettings_soft_validations_check => bulk_upload_soft_validations_check}/confirm_soft_errors.rb (65%) diff --git a/app/controllers/bulk_upload_lettings_soft_validations_check_controller.rb b/app/controllers/bulk_upload_lettings_soft_validations_check_controller.rb index a70af3c4b..faaf60302 100644 --- a/app/controllers/bulk_upload_lettings_soft_validations_check_controller.rb +++ b/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 diff --git a/app/controllers/bulk_upload_sales_soft_validations_check_controller.rb b/app/controllers/bulk_upload_sales_soft_validations_check_controller.rb index 5b71b2c40..0795ad81e 100644 --- a/app/controllers/bulk_upload_sales_soft_validations_check_controller.rb +++ b/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 diff --git a/app/models/forms/bulk_upload_lettings_soft_validations_check/confirm.rb b/app/models/forms/bulk_upload_lettings_soft_validations_check/confirm.rb deleted file mode 100644 index aba75791e..000000000 --- a/app/models/forms/bulk_upload_lettings_soft_validations_check/confirm.rb +++ /dev/null @@ -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 diff --git a/app/models/forms/bulk_upload_sales_soft_validations_check/chosen.rb b/app/models/forms/bulk_upload_sales_soft_validations_check/chosen.rb deleted file mode 100644 index 2286d3b39..000000000 --- a/app/models/forms/bulk_upload_sales_soft_validations_check/chosen.rb +++ /dev/null @@ -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 diff --git a/app/models/forms/bulk_upload_sales_soft_validations_check/confirm_soft_errors.rb b/app/models/forms/bulk_upload_sales_soft_validations_check/confirm_soft_errors.rb deleted file mode 100644 index 041647cf0..000000000 --- a/app/models/forms/bulk_upload_sales_soft_validations_check/confirm_soft_errors.rb +++ /dev/null @@ -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 diff --git a/app/models/forms/bulk_upload_lettings_soft_validations_check/chosen.rb b/app/models/forms/bulk_upload_soft_validations_check/chosen.rb similarity index 65% rename from app/models/forms/bulk_upload_lettings_soft_validations_check/chosen.rb rename to app/models/forms/bulk_upload_soft_validations_check/chosen.rb index b3091bc51..359eea9dd 100644 --- a/app/models/forms/bulk_upload_lettings_soft_validations_check/chosen.rb +++ b/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! diff --git a/app/models/forms/bulk_upload_sales_soft_validations_check/confirm.rb b/app/models/forms/bulk_upload_soft_validations_check/confirm.rb similarity index 65% rename from app/models/forms/bulk_upload_sales_soft_validations_check/confirm.rb rename to app/models/forms/bulk_upload_soft_validations_check/confirm.rb index 894f55123..8700937cb 100644 --- a/app/models/forms/bulk_upload_sales_soft_validations_check/confirm.rb +++ b/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 diff --git a/app/models/forms/bulk_upload_lettings_soft_validations_check/confirm_soft_errors.rb b/app/models/forms/bulk_upload_soft_validations_check/confirm_soft_errors.rb similarity index 65% rename from app/models/forms/bulk_upload_lettings_soft_validations_check/confirm_soft_errors.rb rename to app/models/forms/bulk_upload_soft_validations_check/confirm_soft_errors.rb index 34b4b97f3..aeb072152 100644 --- a/app/models/forms/bulk_upload_lettings_soft_validations_check/confirm_soft_errors.rb +++ b/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 diff --git a/config/locales/en.yml b/config/locales/en.yml index cd2cada1b..97a6a4bff 100644 --- a/config/locales/en.yml +++ b/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."