From 295251bbedd908a5ec7a5bb6139004cd1a97e029 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Tue, 31 Jan 2023 10:30:24 +0000 Subject: [PATCH] refactor: combine method calls --- app/models/form/question.rb | 21 ++++++----- app/models/form/subsection.rb | 2 +- db/schema.rb | 6 ++-- db/seeds.rb | 67 +++++++++++++++++++---------------- 4 files changed, 54 insertions(+), 42 deletions(-) diff --git a/app/models/form/question.rb b/app/models/form/question.rb index a6e8c87e8..d8bd251f7 100644 --- a/app/models/form/question.rb +++ b/app/models/form/question.rb @@ -99,12 +99,6 @@ class Form::Question !!derived end - def has_inferred_check_answers_value?(log) - return false unless inferred_check_answers_value - - inferred_check_answers_value&.any? { |inferred_value| inferred_value["condition"].values.first == log[inferred_value["condition"].keys.first] } - end - def displayed_answer_options(log, _current_user = nil) answer_options.select do |_key, val| !val.is_a?(Hash) || !val["depends_on"] || form.depends_on_met(val["depends_on"], log) @@ -112,7 +106,7 @@ class Form::Question end def action_text(log) - if has_inferred_check_answers_value?(log) || selected_answer_option_is_derived?(log) + if has_inferred_check_answers_value_or_is_derived?(log) "Change" elsif type == "checkbox" answer_options.keys.any? { |key| value_is_yes?(log[key]) } ? "Change" : "Answer" @@ -259,12 +253,23 @@ class Form::Question @guidance_partial && @guidance_position == GuidancePosition::BOTTOM end + def has_inferred_check_answers_value_or_is_derived?(log) + has_inferred_check_answers_value?(log) || selected_answer_option_is_derived?(log) + end + +private + def selected_answer_option_is_derived?(log) selected_option = answer_options&.dig(log[id].to_s.presence) selected_option.is_a?(Hash) && selected_option["depends_on"] && form.depends_on_met(selected_option["depends_on"], log) end -private + def has_inferred_check_answers_value?(log) + return false unless inferred_check_answers_value + + inferred_check_answers_value&.any? { |inferred_value| inferred_value["condition"].values.first == log[inferred_value["condition"].keys.first] } + end + def has_inferred_display_value?(log) inferred_check_answers_value.present? && inferred_check_answers_value.any? { |inferred_value| log[inferred_value["condition"].keys.first] == inferred_value["condition"].values.first } diff --git a/app/models/form/subsection.rb b/app/models/form/subsection.rb index c500908d7..f8591427c 100644 --- a/app/models/form/subsection.rb +++ b/app/models/form/subsection.rb @@ -44,7 +44,7 @@ class Form::Subsection def applicable_questions(log) questions.select do |q| - (q.displayed_to_user?(log) && !q.derived?) || q.has_inferred_check_answers_value?(log) || q.selected_answer_option_is_derived?(log) + (q.displayed_to_user?(log) && !q.derived?) || q.has_inferred_check_answers_value_or_is_derived?(log) end end diff --git a/db/schema.rb b/db/schema.rb index dc431d425..c169731ad 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -504,11 +504,11 @@ ActiveRecord::Schema[7.0].define(version: 2023_01_26_145529) do t.integer "retirement_value_check" t.integer "hodate_check" t.integer "extrabor_value_check" - t.integer "grant_value_check" - t.integer "staircase_bought_value_check" - t.integer "deposit_and_mortgage_value_check" t.integer "shared_ownership_deposit_value_check" + t.integer "grant_value_check" t.integer "old_persons_shared_ownership_value_check" + t.integer "deposit_and_mortgage_value_check" + t.integer "staircase_bought_value_check" t.index ["bulk_upload_id"], name: "index_sales_logs_on_bulk_upload_id" t.index ["created_by_id"], name: "index_sales_logs_on_created_by_id" t.index ["owning_organisation_id"], name: "index_sales_logs_on_owning_organisation_id" diff --git a/db/seeds.rb b/db/seeds.rb index 15d84a38d..7a9244eb9 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -146,35 +146,6 @@ unless Rails.env.test? child_organisation: managing_agent2, ) - if (Rails.env.development? || Rails.env.review?) && SalesLog.count.zero? - SalesLog.find_or_create_by!( - saledate: Date.new(2023, 1, 1), - purchid: "1", - ownershipsch: 1, - type: 2, - jointpur: 1, - jointmore: 1, - ) - - SalesLog.find_or_create_by!( - saledate: Date.new(2023, 1, 1), - purchid: "1", - ownershipsch: 2, - type: 9, - jointpur: 1, - jointmore: 1, - ) - - SalesLog.find_or_create_by!( - saledate: Date.new(2023, 1, 1), - purchid: "1", - ownershipsch: 3, - type: 10, - companybuy: 1, - ) - - pp "Seeded a sales log of each type" - end if Rails.env.development? || Rails.env.review? User.find_or_create_by!( @@ -197,7 +168,7 @@ unless Rails.env.test? user.confirmed_at = Time.zone.now end - User.find_or_create_by!( + support_user = User.find_or_create_by!( name: "Support", email: "support@example.com", organisation: org, @@ -210,6 +181,42 @@ unless Rails.env.test? pp "Seeded 3 dummy users" end + if (Rails.env.development? || Rails.env.review?) && SalesLog.count.zero? + SalesLog.find_or_create_by!( + created_by: support_user, + owning_organisation: org, + saledate: Date.new(2023, 1, 1), + purchid: "1", + ownershipsch: 1, + type: 2, + jointpur: 1, + jointmore: 1, + ) + + SalesLog.find_or_create_by!( + created_by: support_user, + owning_organisation: org, + saledate: Date.new(2023, 1, 1), + purchid: "1", + ownershipsch: 2, + type: 9, + jointpur: 1, + jointmore: 1, + ) + + SalesLog.find_or_create_by!( + created_by: support_user, + owning_organisation: org, + saledate: Date.new(2023, 1, 1), + purchid: "1", + ownershipsch: 3, + type: 10, + companybuy: 1, + ) + + pp "Seeded a sales log of each type" + end + if Rails.env.development? || Rails.env.review? dummy_org = Organisation.find_or_create_by!( name: "FooBar LTD",