diff --git a/app/components/check_answers_summary_list_card_component.rb b/app/components/check_answers_summary_list_card_component.rb index c9409462a..d4e7650de 100644 --- a/app/components/check_answers_summary_list_card_component.rb +++ b/app/components/check_answers_summary_list_card_component.rb @@ -35,17 +35,13 @@ class CheckAnswersSummaryListCardComponent < ViewComponent::Base private def unanswered_value - if bulk_uploaded? + if log.creation_method_bulk_upload? "You still need to answer this question".html_safe else "You didn’t answer this question".html_safe end end - def bulk_uploaded? - log.bulk_upload - end - def number_of_buyers log[:jointpur] == 1 ? 2 : 1 end diff --git a/app/helpers/check_answers_helper.rb b/app/helpers/check_answers_helper.rb index 7d55594ee..d235dbc6f 100644 --- a/app/helpers/check_answers_helper.rb +++ b/app/helpers/check_answers_helper.rb @@ -54,14 +54,10 @@ private end def unanswered_value(log:) - if bulk_uploaded?(log:) + if log.creation_method_bulk_upload? "You still need to answer this question".html_safe else "You didn’t answer this question".html_safe end end - - def bulk_uploaded?(log:) - log.bulk_upload - end end diff --git a/app/helpers/log_actions_helper.rb b/app/helpers/log_actions_helper.rb index 8f02ccbf5..d6949e0cb 100644 --- a/app/helpers/log_actions_helper.rb +++ b/app/helpers/log_actions_helper.rb @@ -16,7 +16,7 @@ private def back_button_for(log) if log.completed? - if log.bulk_uploaded? + if log.creation_method_bulk_upload? if log.lettings? govuk_button_link_to "Back to uploaded logs", resume_bulk_upload_lettings_result_path(log.bulk_upload) else diff --git a/app/models/log.rb b/app/models/log.rb index 3a6361e36..699bbae3f 100644 --- a/app/models/log.rb +++ b/app/models/log.rb @@ -24,7 +24,7 @@ class Log < ApplicationRecord "single log" => 1, "bulk upload" => 2, }.freeze - enum creation_method: CREATION_METHOD + enum creation_method: CREATION_METHOD, _prefix: true scope :visible, -> { where(status: %w[not_started in_progress completed]) } scope :exportable, -> { where(status: %w[not_started in_progress completed deleted]) } @@ -184,10 +184,6 @@ class Log < ApplicationRecord end end - def bulk_uploaded? - bulk_upload_id.present? - end - def collection_closed_for_editing? form.edit_end_date < Time.zone.now || older_than_previous_collection_year? end diff --git a/app/services/bulk_upload/lettings/log_creator.rb b/app/services/bulk_upload/lettings/log_creator.rb index 02852a2a5..99cfd4390 100644 --- a/app/services/bulk_upload/lettings/log_creator.rb +++ b/app/services/bulk_upload/lettings/log_creator.rb @@ -14,7 +14,7 @@ class BulkUpload::Lettings::LogCreator row_parser.log.blank_invalid_non_setup_fields! row_parser.log.bulk_upload = bulk_upload - row_parser.log.creation_method = "bulk upload" + row_parser.log.creation_method_bulk_upload! row_parser.log.skip_update_status = true row_parser.log.status = "pending" row_parser.log.status_cache = row_parser.log.calculate_status diff --git a/app/services/bulk_upload/sales/log_creator.rb b/app/services/bulk_upload/sales/log_creator.rb index 5aa9d01c8..3028914b9 100644 --- a/app/services/bulk_upload/sales/log_creator.rb +++ b/app/services/bulk_upload/sales/log_creator.rb @@ -14,7 +14,7 @@ class BulkUpload::Sales::LogCreator row_parser.log.blank_invalid_non_setup_fields! row_parser.log.bulk_upload = bulk_upload - row_parser.log.creation_method = "bulk upload" + row_parser.log.creation_method_bulk_upload! row_parser.log.skip_update_status = true row_parser.log.status = "pending" row_parser.log.status_cache = row_parser.log.calculate_status diff --git a/app/services/imports/lettings_logs_field_import_service.rb b/app/services/imports/lettings_logs_field_import_service.rb index 61fe3e829..9148c99b7 100644 --- a/app/services/imports/lettings_logs_field_import_service.rb +++ b/app/services/imports/lettings_logs_field_import_service.rb @@ -49,10 +49,10 @@ module Imports when "Manual Entry" @logger.info "lettings log with old id #{old_id} entered manually, no need for update" when "Bulk Upload" - if log.creation_method == "bulk upload" + if log.creation_method_bulk_upload? @logger.info "lettings log #{log.id} creation method already set to bulk upload, no need for update" else - log.update!(creation_method: "bulk upload") + log.creation_method_bulk_upload! @logger.info "lettings log #{log.id} creation method set to bulk upload" end end diff --git a/app/services/imports/sales_logs_field_import_service.rb b/app/services/imports/sales_logs_field_import_service.rb index 5aafd29e3..d34aa878a 100644 --- a/app/services/imports/sales_logs_field_import_service.rb +++ b/app/services/imports/sales_logs_field_import_service.rb @@ -22,10 +22,10 @@ module Imports when "Manual Entry" @logger.info "sales log with old id #{old_id} entered manually, no need for update" when "Bulk Upload" - if log.creation_method == "bulk upload" + if log.creation_method_bulk_upload? @logger.info "sales log #{log.id} creation method already set to bulk upload, no need for update" else - log.update!(creation_method: "bulk upload") + log.creation_method_bulk_upload! @logger.info "sales log #{log.id} creation method set to bulk upload" end end diff --git a/lib/tasks/creation_method.rake b/lib/tasks/creation_method.rake new file mode 100644 index 000000000..7dde5ad80 --- /dev/null +++ b/lib/tasks/creation_method.rake @@ -0,0 +1,5 @@ +desc "set creation method to bulk upload if a log has a bulk upload id" +task set_creation_method: :environment do + LettingsLog.where.not(bulk_upload_id: nil).each(&:creation_method_bulk_upload!) + SalesLog.where.not(bulk_upload_id: nil).each(&:creation_method_bulk_upload!) +end diff --git a/spec/components/check_answers_summary_list_card_component_spec.rb b/spec/components/check_answers_summary_list_card_component_spec.rb index 842f55e14..3dcafe104 100644 --- a/spec/components/check_answers_summary_list_card_component_spec.rb +++ b/spec/components/check_answers_summary_list_card_component_spec.rb @@ -40,8 +40,7 @@ RSpec.describe CheckAnswersSummaryListCardComponent, type: :component do context "when log was created via a bulk upload and has an unanswered question" do subject(:component) { described_class.new(questions:, log:, user:) } - let(:bulk_upload) { build(:bulk_upload, :lettings) } - let(:log) { build(:lettings_log, :in_progress, bulk_upload:, age2: 99, startdate: Time.zone.local(2021, 5, 1)) } + let(:log) { build(:lettings_log, :in_progress, creation_method: "bulk upload", age2: 99, startdate: Time.zone.local(2021, 5, 1)) } it "displays tweaked copy in red" do expect(rendered).to have_selector("span", class: "app-!-colour-red", text: "You still need to answer this question") diff --git a/spec/helpers/check_answers_helper_spec.rb b/spec/helpers/check_answers_helper_spec.rb index a31c6bf16..f633801cb 100644 --- a/spec/helpers/check_answers_helper_spec.rb +++ b/spec/helpers/check_answers_helper_spec.rb @@ -39,8 +39,7 @@ RSpec.describe CheckAnswersHelper do describe "#get_answer_label" do context "when unanswered and bulk upload" do let(:question) { log.form.questions.sample } - let(:bulk_upload) { build(:bulk_upload, :sales) } - let(:log) { build(:sales_log, bulk_upload:) } + let(:log) { build(:sales_log, creation_method: "bulk upload") } it "is red" do expect(get_answer_label(question, log)).to include("red") diff --git a/spec/services/imports/lettings_logs_field_import_service_spec.rb b/spec/services/imports/lettings_logs_field_import_service_spec.rb index b151e1bf0..7a9767aa2 100644 --- a/spec/services/imports/lettings_logs_field_import_service_spec.rb +++ b/spec/services/imports/lettings_logs_field_import_service_spec.rb @@ -106,7 +106,7 @@ RSpec.describe Imports::LettingsLogsFieldImportService do let(:lettings_log_id) { "166fc004-392e-47a8-acb8-1c018734882b" } it "logs that bulk upload id does not need setting" do - lettings_log.update!(creation_method: "single log") + lettings_log.creation_method_single_log! expect(logger).to receive(:info).with(/lettings log \d+ creation method set to bulk upload/) expect { import_service.update_field(field, remote_folder) }.to change { lettings_log.reload.creation_method }.to "bulk upload" end diff --git a/spec/services/imports/sales_logs_field_import_service_spec.rb b/spec/services/imports/sales_logs_field_import_service_spec.rb index 36d83b578..b5bdb22a4 100644 --- a/spec/services/imports/sales_logs_field_import_service_spec.rb +++ b/spec/services/imports/sales_logs_field_import_service_spec.rb @@ -57,7 +57,7 @@ RSpec.describe Imports::SalesLogsFieldImportService do let(:sales_log_filename) { "shared_ownership_sales_log2" } it "logs that bulk upload id does not need setting" do - sales_log.update!(creation_method: "single log") + sales_log.creation_method_single_log! expect(logger).to receive(:info).with(/sales log \d+ creation method set to bulk upload/) expect { import_service.update_field(field, remote_folder) }.to change { sales_log.reload.creation_method }.to "bulk upload" end diff --git a/spec/views/logs/edit.html.erb_spec.rb b/spec/views/logs/edit.html.erb_spec.rb index 6ac12230d..e28e0bc4b 100644 --- a/spec/views/logs/edit.html.erb_spec.rb +++ b/spec/views/logs/edit.html.erb_spec.rb @@ -69,7 +69,7 @@ RSpec.describe "logs/edit.html.erb" do context "when lettings log is bulk uploaded" do let(:bulk_upload) { create(:bulk_upload, :lettings) } - let(:log) { create(:lettings_log, :completed, bulk_upload:) } + let(:log) { create(:lettings_log, :completed, bulk_upload:, creation_method: "bulk upload") } it "has link 'Back to uploaded logs'" do render @@ -90,7 +90,7 @@ RSpec.describe "logs/edit.html.erb" do context "when sales log is bulk uploaded" do let(:bulk_upload) { create(:bulk_upload, :sales) } - let(:log) { create(:sales_log, :completed, bulk_upload:) } + let(:log) { create(:sales_log, :completed, bulk_upload:, creation_method: "bulk upload") } it "has link 'Back to uploaded logs'" do render