Browse Source

use the methods dynamically created by active record in all relevant places, removing obsolete methods in teh process.

various tests tweaked to suppor this change.
rake task from another ticket folded into this ticket to prevent merge conflicts
pull/1744/head
Arthur Campbell 3 years ago
parent
commit
f11f14dc50
  1. 6
      app/components/check_answers_summary_list_card_component.rb
  2. 6
      app/helpers/check_answers_helper.rb
  3. 2
      app/helpers/log_actions_helper.rb
  4. 6
      app/models/log.rb
  5. 2
      app/services/bulk_upload/lettings/log_creator.rb
  6. 2
      app/services/bulk_upload/sales/log_creator.rb
  7. 4
      app/services/imports/lettings_logs_field_import_service.rb
  8. 4
      app/services/imports/sales_logs_field_import_service.rb
  9. 5
      lib/tasks/creation_method.rake
  10. 3
      spec/components/check_answers_summary_list_card_component_spec.rb
  11. 3
      spec/helpers/check_answers_helper_spec.rb
  12. 2
      spec/services/imports/lettings_logs_field_import_service_spec.rb
  13. 2
      spec/services/imports/sales_logs_field_import_service_spec.rb
  14. 4
      spec/views/logs/edit.html.erb_spec.rb

6
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?
"<span class=\"app-!-colour-red\">You still need to answer this question</span>".html_safe
else
"<span class=\"app-!-colour-muted\">You didn’t answer this question</span>".html_safe
end
end
def bulk_uploaded?
log.bulk_upload
end
def number_of_buyers
log[:jointpur] == 1 ? 2 : 1
end

6
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?
"<span class=\"app-!-colour-red\">You still need to answer this question</span>".html_safe
else
"<span class=\"app-!-colour-muted\">You didn’t answer this question</span>".html_safe
end
end
def bulk_uploaded?(log:)
log.bulk_upload
end
end

2
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

6
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

2
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

2
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

4
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

4
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

5
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

3
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")

3
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")

2
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

2
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

4
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

Loading…
Cancel
Save