From 5954d7435e0eecc9f367d7d4e34ebea9ea4126f3 Mon Sep 17 00:00:00 2001 From: Kat <54268893+kosiakkatrina@users.noreply.github.com> Date: Mon, 16 Dec 2024 15:27:06 +0000 Subject: [PATCH] Deduplicate resume forms --- .../bulk_upload_lettings_resume_controller.rb | 8 +- .../bulk_upload_sales_resume_controller.rb | 8 +- .../bulk_upload_lettings_resume/confirm.rb | 55 -------------- .../bulk_upload_lettings_resume/fix_choice.rb | 74 ------------------- .../chosen.rb | 9 ++- .../confirm.rb | 17 +++-- .../deletion_report.rb | 9 ++- .../fix_choice.rb | 17 +++-- .../forms/bulk_upload_sales_resume/chosen.rb | 31 -------- .../deletion_report.rb | 28 ------- 10 files changed, 36 insertions(+), 220 deletions(-) delete mode 100644 app/models/forms/bulk_upload_lettings_resume/confirm.rb delete mode 100644 app/models/forms/bulk_upload_lettings_resume/fix_choice.rb rename app/models/forms/{bulk_upload_lettings_resume => bulk_upload_resume}/chosen.rb (60%) rename app/models/forms/{bulk_upload_sales_resume => bulk_upload_resume}/confirm.rb (62%) rename app/models/forms/{bulk_upload_lettings_resume => bulk_upload_resume}/deletion_report.rb (65%) rename app/models/forms/{bulk_upload_sales_resume => bulk_upload_resume}/fix_choice.rb (76%) delete mode 100644 app/models/forms/bulk_upload_sales_resume/chosen.rb delete mode 100644 app/models/forms/bulk_upload_sales_resume/deletion_report.rb diff --git a/app/controllers/bulk_upload_lettings_resume_controller.rb b/app/controllers/bulk_upload_lettings_resume_controller.rb index 9003c8ced..756e26baa 100644 --- a/app/controllers/bulk_upload_lettings_resume_controller.rb +++ b/app/controllers/bulk_upload_lettings_resume_controller.rb @@ -42,13 +42,13 @@ private def form @form ||= case params[:page] when "fix-choice" - Forms::BulkUploadLettingsResume::FixChoice.new(form_params.merge(bulk_upload: @bulk_upload)) + Forms::BulkUploadResume::FixChoice.new(form_params.merge(bulk_upload: @bulk_upload, log_type: "lettings")) when "chosen" - Forms::BulkUploadLettingsResume::Chosen.new(form_params.merge(bulk_upload: @bulk_upload)) + Forms::BulkUploadResume::Chosen.new(form_params.merge(bulk_upload: @bulk_upload, log_type: "lettings")) when "confirm" - Forms::BulkUploadLettingsResume::Confirm.new(form_params.merge(bulk_upload: @bulk_upload)) + Forms::BulkUploadResume::Confirm.new(form_params.merge(bulk_upload: @bulk_upload, log_type: "lettings")) when "deletion-report" - Forms::BulkUploadLettingsResume::DeletionReport.new(form_params.merge(bulk_upload: @bulk_upload)) + Forms::BulkUploadResume::DeletionReport.new(form_params.merge(bulk_upload: @bulk_upload, log_type: "lettings")) else raise "invalid form" end diff --git a/app/controllers/bulk_upload_sales_resume_controller.rb b/app/controllers/bulk_upload_sales_resume_controller.rb index 7514d2515..ad786f4a1 100644 --- a/app/controllers/bulk_upload_sales_resume_controller.rb +++ b/app/controllers/bulk_upload_sales_resume_controller.rb @@ -42,13 +42,13 @@ private def form @form ||= case params[:page] when "fix-choice" - Forms::BulkUploadSalesResume::FixChoice.new(form_params.merge(bulk_upload: @bulk_upload)) + Forms::BulkUploadResume::FixChoice.new(form_params.merge(bulk_upload: @bulk_upload, log_type: "sales")) when "chosen" - Forms::BulkUploadSalesResume::Chosen.new(form_params.merge(bulk_upload: @bulk_upload)) + Forms::BulkUploadResume::Chosen.new(form_params.merge(bulk_upload: @bulk_upload, log_type: "sales")) when "confirm" - Forms::BulkUploadSalesResume::Confirm.new(form_params.merge(bulk_upload: @bulk_upload)) + Forms::BulkUploadResume::Confirm.new(form_params.merge(bulk_upload: @bulk_upload, log_type: "sales")) when "deletion-report" - Forms::BulkUploadSalesResume::DeletionReport.new(form_params.merge(bulk_upload: @bulk_upload)) + Forms::BulkUploadResume::DeletionReport.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_resume/confirm.rb b/app/models/forms/bulk_upload_lettings_resume/confirm.rb deleted file mode 100644 index 3419e794f..000000000 --- a/app/models/forms/bulk_upload_lettings_resume/confirm.rb +++ /dev/null @@ -1,55 +0,0 @@ -module Forms - module BulkUploadLettingsResume - class Confirm - include ActiveModel::Model - include ActiveModel::Attributes - include Rails.application.routes.url_helpers - - attribute :bulk_upload - - def view_path - "bulk_upload_lettings_resume/confirm" - end - - def back_path - page_bulk_upload_lettings_resume_path(bulk_upload, page: "fix-choice") - end - - def next_path - resume_bulk_upload_lettings_result_path(bulk_upload) - end - - def error_report_path - if BulkUploadErrorSummaryTableComponent.new(bulk_upload:).errors? - summary_bulk_upload_lettings_result_path(bulk_upload) - else - bulk_upload_lettings_result_path(bulk_upload) - end - end - - def save! - ApplicationRecord.transaction do - processor = BulkUpload::Processor.new(bulk_upload:) - processor.approve - - bulk_upload.update!(choice: "create-fix-inline") - end - - true - end - - def preflight_valid? - bulk_upload.choice != "create-fix-inline" && bulk_upload.choice != "bulk-confirm-soft-validations" - end - - def preflight_redirect - case bulk_upload.choice - when "create-fix-inline" - page_bulk_upload_lettings_resume_path(bulk_upload, :chosen) - when "bulk-confirm-soft-validations" - page_bulk_upload_lettings_soft_validations_check_path(bulk_upload, :chosen) - end - end - end - end -end diff --git a/app/models/forms/bulk_upload_lettings_resume/fix_choice.rb b/app/models/forms/bulk_upload_lettings_resume/fix_choice.rb deleted file mode 100644 index 40ada602e..000000000 --- a/app/models/forms/bulk_upload_lettings_resume/fix_choice.rb +++ /dev/null @@ -1,74 +0,0 @@ -module Forms - module BulkUploadLettingsResume - class FixChoice - include ActiveModel::Model - include ActiveModel::Attributes - include Rails.application.routes.url_helpers - - attribute :bulk_upload - attribute :choice, :string - - validates :choice, presence: true, - inclusion: { in: %w[create-fix-inline upload-again] } - - def options - [ - OpenStruct.new(id: "create-fix-inline", name: "Upload these logs and fix errors on CORE site"), - OpenStruct.new(id: "upload-again", name: "Fix errors in the CSV and upload the file again"), - ] - end - - def view_path - "bulk_upload_lettings_resume/fix_choice" - end - - def next_path - case choice - when "create-fix-inline" - page_bulk_upload_lettings_resume_path(bulk_upload, page: "confirm") - when "upload-again" - error_report_path - else - raise "invalid choice" - end - end - - def error_report_path - if BulkUploadErrorSummaryTableComponent.new(bulk_upload:).errors? - summary_bulk_upload_lettings_result_path(bulk_upload) - else - bulk_upload_lettings_result_path(bulk_upload) - end - end - - def recommendation - if BulkUploadErrorSummaryTableComponent.new(bulk_upload:).errors? - "We recommend fixing these errors in the CSV, as you may be able to edit multiple fields at once. However, you can also upload these logs and fix the errors on the CORE site." - else - "We recommend uploading logs and fixing errors on site as you can easily see the questions and select the appropriate answer. However, you can also fix these errors in the CSV." - end - end - - def save! - bulk_upload.update!(choice:) if choice == "upload-again" - - true - end - - def preflight_valid? - bulk_upload.choice.blank? - end - - def preflight_redirect - case bulk_upload.choice - when "create-fix-inline" - page_bulk_upload_lettings_resume_path(bulk_upload, :chosen) - when "bulk-confirm-soft-validations" - page_bulk_upload_lettings_soft_validations_check_path(bulk_upload, :chosen) - else - bulk_upload_lettings_result_path(bulk_upload) - end - end - end - end -end diff --git a/app/models/forms/bulk_upload_lettings_resume/chosen.rb b/app/models/forms/bulk_upload_resume/chosen.rb similarity index 60% rename from app/models/forms/bulk_upload_lettings_resume/chosen.rb rename to app/models/forms/bulk_upload_resume/chosen.rb index b795d8d4b..935d29178 100644 --- a/app/models/forms/bulk_upload_lettings_resume/chosen.rb +++ b/app/models/forms/bulk_upload_resume/chosen.rb @@ -1,22 +1,23 @@ module Forms - module BulkUploadLettingsResume + module BulkUploadResume 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.completed? ? "bulk_upload_lettings_resume/completed" : "bulk_upload_lettings_resume/chosen" + bulk_upload.completed? ? "bulk_upload_#{log_type}_resume/completed" : "bulk_upload_#{log_type}_resume/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_resume/confirm.rb b/app/models/forms/bulk_upload_resume/confirm.rb similarity index 62% rename from app/models/forms/bulk_upload_sales_resume/confirm.rb rename to app/models/forms/bulk_upload_resume/confirm.rb index a84272682..96a1fe1bc 100644 --- a/app/models/forms/bulk_upload_sales_resume/confirm.rb +++ b/app/models/forms/bulk_upload_resume/confirm.rb @@ -1,29 +1,30 @@ module Forms - module BulkUploadSalesResume + module BulkUploadResume 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_resume/confirm" + "bulk_upload_#{log_type}_resume/confirm" end def back_path - page_bulk_upload_sales_resume_path(bulk_upload, page: "fix-choice") + send("page_bulk_upload_#{log_type}_resume_path", bulk_upload, page: "fix-choice") end def next_path - resume_bulk_upload_sales_result_path(bulk_upload) + send("resume_bulk_upload_#{log_type}_result_path", bulk_upload) end def error_report_path if BulkUploadErrorSummaryTableComponent.new(bulk_upload:).errors? - summary_bulk_upload_sales_result_path(bulk_upload) + send("summary_bulk_upload_#{log_type}_result_path", bulk_upload) else - bulk_upload_sales_result_path(bulk_upload) + send("bulk_upload_#{log_type}_result_path", bulk_upload) end end @@ -45,9 +46,9 @@ module Forms def preflight_redirect case bulk_upload.choice when "create-fix-inline" - page_bulk_upload_sales_resume_path(bulk_upload, :chosen) + send("page_bulk_upload_#{log_type}_resume_path", bulk_upload, :chosen) 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) end end end diff --git a/app/models/forms/bulk_upload_lettings_resume/deletion_report.rb b/app/models/forms/bulk_upload_resume/deletion_report.rb similarity index 65% rename from app/models/forms/bulk_upload_lettings_resume/deletion_report.rb rename to app/models/forms/bulk_upload_resume/deletion_report.rb index 61e7c54cd..40c532553 100644 --- a/app/models/forms/bulk_upload_lettings_resume/deletion_report.rb +++ b/app/models/forms/bulk_upload_resume/deletion_report.rb @@ -1,14 +1,15 @@ module Forms - module BulkUploadLettingsResume + module BulkUploadResume class DeletionReport include ActiveModel::Model include ActiveModel::Attributes include Rails.application.routes.url_helpers + attribute :log_type attribute :bulk_upload def view_path - "bulk_upload_lettings_resume/deletion_report" + "bulk_upload_#{log_type}_resume/deletion_report" end def preflight_valid? @@ -18,9 +19,9 @@ module Forms def preflight_redirect case bulk_upload.choice when "create-fix-inline" - page_bulk_upload_lettings_resume_path(bulk_upload, :chosen) + send("page_bulk_upload_#{log_type}_resume_path", bulk_upload, :chosen) 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) end end end diff --git a/app/models/forms/bulk_upload_sales_resume/fix_choice.rb b/app/models/forms/bulk_upload_resume/fix_choice.rb similarity index 76% rename from app/models/forms/bulk_upload_sales_resume/fix_choice.rb rename to app/models/forms/bulk_upload_resume/fix_choice.rb index 79d06529a..c731dbf93 100644 --- a/app/models/forms/bulk_upload_sales_resume/fix_choice.rb +++ b/app/models/forms/bulk_upload_resume/fix_choice.rb @@ -1,10 +1,11 @@ module Forms - module BulkUploadSalesResume + module BulkUploadResume class FixChoice include ActiveModel::Model include ActiveModel::Attributes include Rails.application.routes.url_helpers + attribute :log_type attribute :bulk_upload attribute :choice, :string @@ -19,13 +20,13 @@ module Forms end def view_path - "bulk_upload_sales_resume/fix_choice" + "bulk_upload_#{log_type}_resume/fix_choice" end def next_path case choice when "create-fix-inline" - page_bulk_upload_sales_resume_path(bulk_upload, page: "confirm") + send("page_bulk_upload_#{log_type}_resume_path", bulk_upload, page: "confirm") when "upload-again" error_report_path else @@ -35,9 +36,9 @@ module Forms def error_report_path if BulkUploadErrorSummaryTableComponent.new(bulk_upload:).errors? - summary_bulk_upload_sales_result_path(bulk_upload) + send("summary_bulk_upload_#{log_type}_result_path", bulk_upload) else - bulk_upload_sales_result_path(bulk_upload) + send("bulk_upload_#{log_type}_result_path", bulk_upload) end end @@ -62,11 +63,11 @@ module Forms def preflight_redirect case bulk_upload.choice when "create-fix-inline" - page_bulk_upload_sales_resume_path(bulk_upload, :chosen) + send("page_bulk_upload_#{log_type}_resume_path", bulk_upload, :chosen) 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) else - bulk_upload_sales_result_path(bulk_upload) + send("bulk_upload_#{log_type}_result_path", bulk_upload) end end end diff --git a/app/models/forms/bulk_upload_sales_resume/chosen.rb b/app/models/forms/bulk_upload_sales_resume/chosen.rb deleted file mode 100644 index 3bf32ee71..000000000 --- a/app/models/forms/bulk_upload_sales_resume/chosen.rb +++ /dev/null @@ -1,31 +0,0 @@ -module Forms - module BulkUploadSalesResume - class Chosen - include ActiveModel::Model - include ActiveModel::Attributes - include Rails.application.routes.url_helpers - - attribute :bulk_upload - - def view_path - bulk_upload.completed? ? "bulk_upload_sales_resume/completed" : "bulk_upload_sales_resume/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_resume/deletion_report.rb b/app/models/forms/bulk_upload_sales_resume/deletion_report.rb deleted file mode 100644 index 93b466b51..000000000 --- a/app/models/forms/bulk_upload_sales_resume/deletion_report.rb +++ /dev/null @@ -1,28 +0,0 @@ -module Forms - module BulkUploadSalesResume - class DeletionReport - include ActiveModel::Model - include ActiveModel::Attributes - include Rails.application.routes.url_helpers - - attribute :bulk_upload - - def view_path - "bulk_upload_sales_resume/deletion_report" - end - - def preflight_valid? - bulk_upload.choice != "create-fix-inline" && bulk_upload.choice != "bulk-confirm-soft-validations" - end - - def preflight_redirect - case bulk_upload.choice - when "create-fix-inline" - page_bulk_upload_sales_resume_path(bulk_upload, :chosen) - when "bulk-confirm-soft-validations" - page_bulk_upload_sales_soft_validations_check_path(bulk_upload, :chosen) - end - end - end - end -end