From 2744a4a35bcbeaae51b95ddb7c0d0ff70ca40866 Mon Sep 17 00:00:00 2001 From: Chris <76159444+hunchr@users.noreply.github.com> Date: Thu, 5 Sep 2024 08:31:09 +0200 Subject: [PATCH] Set address of family members during self-registration (#417) --- app/models/wizards/signup/sektion_wizard.rb | 14 +++++--------- spec/models/wizards/signup/sektion_wizard_spec.rb | 4 +++- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/app/models/wizards/signup/sektion_wizard.rb b/app/models/wizards/signup/sektion_wizard.rb index 65caf76cd..c8f07e013 100644 --- a/app/models/wizards/signup/sektion_wizard.rb +++ b/app/models/wizards/signup/sektion_wizard.rb @@ -15,6 +15,7 @@ class SektionWizard < Wizards::RegisterNewUserWizard ] MIN_ADULT_YEARS = SacCas::Beitragskategorie::Calculator::AGE_RANGE_ADULT.begin + ADDRESS_KEYS = %i[address_care_of street housenumber postbox zip_code town country] delegate :email, to: :main_email_field delegate :person_attributes, :birthday, to: :person_fields @@ -54,10 +55,9 @@ def operations_valid? end def people_attrs - members - .map(&:person_attributes) - .unshift(main_person_attributes) - .map { |attrs| attrs.merge(common_person_attrs) } + main_person_attrs = main_person_attributes.merge(common_person_attrs) + merge_attrs = main_person_attrs.slice(*ADDRESS_KEYS, *common_person_attrs.keys) + members.map { |member| member.person_attributes.merge(merge_attrs) }.unshift(main_person_attrs) end def main_person_attributes @@ -67,11 +67,7 @@ def main_person_attributes end def common_person_attrs - { - self_registration_reason_id:, - privacy_policy_accepted_at:, - household_key: household_key - }.compact_blank + {self_registration_reason_id:, privacy_policy_accepted_at:, household_key:}.compact_blank end def register_on = various_fields.register_on_date || Time.zone.today diff --git a/spec/models/wizards/signup/sektion_wizard_spec.rb b/spec/models/wizards/signup/sektion_wizard_spec.rb index 058c913be..f2592103a 100644 --- a/spec/models/wizards/signup/sektion_wizard_spec.rb +++ b/spec/models/wizards/signup/sektion_wizard_spec.rb @@ -152,7 +152,7 @@ def build(params = required_attrs) expect(max.roles.last.beitragskategorie).to eq "youth" end - it "creates multiple people and sets household key" do + it "creates multiple people and sets household key and address" do required_attrs[:family_fields] = { members_attributes: [ [1, {first_name: "Maxi", last_name: "Muster", birthday: "1.1.2012"}], @@ -168,6 +168,8 @@ def build(params = required_attrs) expect(maxine.household_key).to eq(max.household_key) expect(maxi.roles.last.beitragskategorie).to eq "family" expect(maxine.roles.last.beitragskategorie).to eq "family" + expect(maxi.address).to eq(max.address) + expect(maxine.address).to eq(max.address) end context "various fields" do