Browse Source

Deduplicate resume forms

pull/2873/head
Kat 8 months ago
parent
commit
5954d7435e
  1. 8
      app/controllers/bulk_upload_lettings_resume_controller.rb
  2. 8
      app/controllers/bulk_upload_sales_resume_controller.rb
  3. 55
      app/models/forms/bulk_upload_lettings_resume/confirm.rb
  4. 74
      app/models/forms/bulk_upload_lettings_resume/fix_choice.rb
  5. 9
      app/models/forms/bulk_upload_resume/chosen.rb
  6. 17
      app/models/forms/bulk_upload_resume/confirm.rb
  7. 9
      app/models/forms/bulk_upload_resume/deletion_report.rb
  8. 17
      app/models/forms/bulk_upload_resume/fix_choice.rb
  9. 31
      app/models/forms/bulk_upload_sales_resume/chosen.rb
  10. 28
      app/models/forms/bulk_upload_sales_resume/deletion_report.rb

8
app/controllers/bulk_upload_lettings_resume_controller.rb

@ -42,13 +42,13 @@ private
def form def form
@form ||= case params[:page] @form ||= case params[:page]
when "fix-choice" 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" 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" 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" 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 else
raise "invalid form" raise "invalid form"
end end

8
app/controllers/bulk_upload_sales_resume_controller.rb

@ -42,13 +42,13 @@ private
def form def form
@form ||= case params[:page] @form ||= case params[:page]
when "fix-choice" 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" 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" 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" 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 else
raise "invalid form" raise "invalid form"
end end

55
app/models/forms/bulk_upload_lettings_resume/confirm.rb

@ -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

74
app/models/forms/bulk_upload_lettings_resume/fix_choice.rb

@ -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

9
app/models/forms/bulk_upload_lettings_resume/chosen.rb → app/models/forms/bulk_upload_resume/chosen.rb

@ -1,22 +1,23 @@
module Forms module Forms
module BulkUploadLettingsResume module BulkUploadResume
class Chosen class Chosen
include ActiveModel::Model include ActiveModel::Model
include ActiveModel::Attributes include ActiveModel::Attributes
include Rails.application.routes.url_helpers include Rails.application.routes.url_helpers
attribute :log_type
attribute :bulk_upload attribute :bulk_upload
def view_path 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 end
def back_path def back_path
lettings_logs_path send("#{log_type}_logs_path")
end end
def next_path def next_path
lettings_logs_path send("#{log_type}_logs_path")
end end
def save! def save!

17
app/models/forms/bulk_upload_sales_resume/confirm.rb → app/models/forms/bulk_upload_resume/confirm.rb

@ -1,29 +1,30 @@
module Forms module Forms
module BulkUploadSalesResume module BulkUploadResume
class Confirm class Confirm
include ActiveModel::Model include ActiveModel::Model
include ActiveModel::Attributes include ActiveModel::Attributes
include Rails.application.routes.url_helpers include Rails.application.routes.url_helpers
attribute :log_type
attribute :bulk_upload attribute :bulk_upload
def view_path def view_path
"bulk_upload_sales_resume/confirm" "bulk_upload_#{log_type}_resume/confirm"
end end
def back_path 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 end
def next_path def next_path
resume_bulk_upload_sales_result_path(bulk_upload) send("resume_bulk_upload_#{log_type}_result_path", bulk_upload)
end end
def error_report_path def error_report_path
if BulkUploadErrorSummaryTableComponent.new(bulk_upload:).errors? 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 else
bulk_upload_sales_result_path(bulk_upload) send("bulk_upload_#{log_type}_result_path", bulk_upload)
end end
end end
@ -45,9 +46,9 @@ module Forms
def preflight_redirect def preflight_redirect
case bulk_upload.choice case bulk_upload.choice
when "create-fix-inline" 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" 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 end
end end

9
app/models/forms/bulk_upload_lettings_resume/deletion_report.rb → app/models/forms/bulk_upload_resume/deletion_report.rb

@ -1,14 +1,15 @@
module Forms module Forms
module BulkUploadLettingsResume module BulkUploadResume
class DeletionReport class DeletionReport
include ActiveModel::Model include ActiveModel::Model
include ActiveModel::Attributes include ActiveModel::Attributes
include Rails.application.routes.url_helpers include Rails.application.routes.url_helpers
attribute :log_type
attribute :bulk_upload attribute :bulk_upload
def view_path def view_path
"bulk_upload_lettings_resume/deletion_report" "bulk_upload_#{log_type}_resume/deletion_report"
end end
def preflight_valid? def preflight_valid?
@ -18,9 +19,9 @@ module Forms
def preflight_redirect def preflight_redirect
case bulk_upload.choice case bulk_upload.choice
when "create-fix-inline" 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" 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 end
end end

17
app/models/forms/bulk_upload_sales_resume/fix_choice.rb → app/models/forms/bulk_upload_resume/fix_choice.rb

@ -1,10 +1,11 @@
module Forms module Forms
module BulkUploadSalesResume module BulkUploadResume
class FixChoice class FixChoice
include ActiveModel::Model include ActiveModel::Model
include ActiveModel::Attributes include ActiveModel::Attributes
include Rails.application.routes.url_helpers include Rails.application.routes.url_helpers
attribute :log_type
attribute :bulk_upload attribute :bulk_upload
attribute :choice, :string attribute :choice, :string
@ -19,13 +20,13 @@ module Forms
end end
def view_path def view_path
"bulk_upload_sales_resume/fix_choice" "bulk_upload_#{log_type}_resume/fix_choice"
end end
def next_path def next_path
case choice case choice
when "create-fix-inline" 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" when "upload-again"
error_report_path error_report_path
else else
@ -35,9 +36,9 @@ module Forms
def error_report_path def error_report_path
if BulkUploadErrorSummaryTableComponent.new(bulk_upload:).errors? 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 else
bulk_upload_sales_result_path(bulk_upload) send("bulk_upload_#{log_type}_result_path", bulk_upload)
end end
end end
@ -62,11 +63,11 @@ module Forms
def preflight_redirect def preflight_redirect
case bulk_upload.choice case bulk_upload.choice
when "create-fix-inline" 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" 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 else
bulk_upload_sales_result_path(bulk_upload) send("bulk_upload_#{log_type}_result_path", bulk_upload)
end end
end end
end end

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

@ -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

28
app/models/forms/bulk_upload_sales_resume/deletion_report.rb

@ -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
Loading…
Cancel
Save