Browse Source

refactor: combine method calls

pull/1257/head
natdeanlewissoftwire 3 years ago
parent
commit
295251bbed
  1. 21
      app/models/form/question.rb
  2. 2
      app/models/form/subsection.rb
  3. 6
      db/schema.rb
  4. 67
      db/seeds.rb

21
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 }

2
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

6
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"

67
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",

Loading…
Cancel
Save