Browse Source

feat: add person 1 age question

pull/939/head
natdeanlewissoftwire 3 years ago
parent
commit
759bfd5817
  1. 22
      app/models/form/sales/pages/person1_age.rb
  2. 12
      app/models/form/sales/questions/person1_age.rb
  3. 28
      app/models/form/sales/questions/person1_age_known.rb
  4. 1
      app/models/form/sales/subsections/household_characteristics.rb
  5. 8
      db/migrate/20221007093606_add_person1_age_to_sales_log.rb
  6. 7
      db/schema.rb

22
app/models/form/sales/pages/person1_age.rb

@ -0,0 +1,22 @@
class Form::Sales::Pages::Person1Age < ::Form::Page
def initialize(id, hsh, subsection)
super
@id = "person_1_age"
@header = ""
@description = ""
@subsection = subsection
@depends_on = [
{ "hholdcount" => 1 },
{ "hholdcount" => 2 },
{ "hholdcount" => 3 },
{ "hholdcount" => 4 },
]
end
def questions
@questions ||= [
Form::Sales::Questions::Person1AgeKnown.new(nil, nil, self),
Form::Sales::Questions::Person1Age.new(nil, nil, self),
]
end
end

12
app/models/form/sales/questions/person1_age.rb

@ -0,0 +1,12 @@
class Form::Sales::Questions::Person1Age < ::Form::Question
def initialize(id, hsh, page)
super
@id = "age3"
@check_answer_label = "Person 1’s age"
@header = "Age"
@type = "numeric"
@page = page
@width = 3
end
end

28
app/models/form/sales/questions/person1_age_known.rb

@ -0,0 +1,28 @@
class Form::Sales::Questions::Person1AgeKnown < ::Form::Question
def initialize(id, hsh, page)
super
@id = "age3_known"
@check_answer_label = "Person 1’s age known?"
@header = "Do you know person 1’s age?"
@type = "radio"
@answer_options = ANSWER_OPTIONS
@page = page
@hint_text = ""
@conditional_for = {
"age3" => [0],
}
@hidden_in_check_answers = {
"depends_on" => [
{
"age3_known" => 0,
},
],
}
@hide
end
ANSWER_OPTIONS = {
"0" => { "value" => "Yes" },
"1" => { "value" => "No" },
}.freeze
end

1
app/models/form/sales/subsections/household_characteristics.rb

@ -28,6 +28,7 @@ class Form::Sales::Subsections::HouseholdCharacteristics < ::Form::Subsection
Form::Sales::Pages::Buyer2WorkingSituation.new(nil, nil, self), Form::Sales::Pages::Buyer2WorkingSituation.new(nil, nil, self),
Form::Sales::Pages::Buyer2LiveInProperty.new(nil, nil, self), Form::Sales::Pages::Buyer2LiveInProperty.new(nil, nil, self),
Form::Sales::Pages::NumberOfOthersInProperty.new(nil, nil, self), Form::Sales::Pages::NumberOfOthersInProperty.new(nil, nil, self),
Form::Sales::Pages::Person1Age.new(nil, nil, self),
] ]
end end
end end

8
db/migrate/20221007093606_add_person1_age_to_sales_log.rb

@ -0,0 +1,8 @@
class AddPerson1AgeToSalesLog < ActiveRecord::Migration[7.0]
def change
change_table :sales_logs, bulk: true do |t|
t.column :age3, :integer
t.column :age3_known, :integer
end
end
end

7
db/schema.rb

@ -10,7 +10,7 @@
# #
# It's strongly recommended that you check this file into your version control system. # It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.0].define(version: 2022_10_05_150022) do ActiveRecord::Schema[7.0].define(version: 2022_10_07_093606) do
# These are extensions that must be enabled in order to support this database # These are extensions that must be enabled in order to support this database
enable_extension "plpgsql" enable_extension "plpgsql"
@ -348,15 +348,16 @@ ActiveRecord::Schema[7.0].define(version: 2022_10_05_150022) do
t.integer "age2" t.integer "age2"
t.integer "age2_known" t.integer "age2_known"
t.string "relat2" t.string "relat2"
t.string "otherrelat2"
t.string "sex2" t.string "sex2"
t.integer "noint" t.integer "noint"
t.integer "buy2livein" t.integer "buy2livein"
t.integer "ecstat2" t.integer "ecstat2"
t.integer "privacynotice" t.integer "privacynotice"
t.integer "ecstat1" t.integer "ecstat1"
t.integer "hholdcount"
t.integer "wheel" t.integer "wheel"
t.integer "hholdcount"
t.integer "age3"
t.integer "age3_known"
t.index ["created_by_id"], name: "index_sales_logs_on_created_by_id" t.index ["created_by_id"], name: "index_sales_logs_on_created_by_id"
t.index ["managing_organisation_id"], name: "index_sales_logs_on_managing_organisation_id" t.index ["managing_organisation_id"], name: "index_sales_logs_on_managing_organisation_id"
t.index ["owning_organisation_id"], name: "index_sales_logs_on_owning_organisation_id" t.index ["owning_organisation_id"], name: "index_sales_logs_on_owning_organisation_id"

Loading…
Cancel
Save