Skip to content

Commit 405669f

Browse files
committed
fix: Payment settings form disappearing bug
1 parent 2c91a98 commit 405669f

File tree

1 file changed

+36
-33
lines changed

1 file changed

+36
-33
lines changed

app/auth/view.py

Lines changed: 36 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -32,22 +32,20 @@ class PaymentDataForm(UserControl):
3232
def __init__(
3333
self,
3434
on_form_submit: Callable[[User], None],
35-
user: User,
3635
):
3736
super().__init__()
3837
self.on_form_submit = on_form_submit
39-
self.user = user
40-
self.set_form_data()
38+
self.user: User = None
4139

4240
def set_form_data(self):
4341
"""Sets the form data to the user's current data"""
4442
if not self.user.bank_account:
4543
# Create a new bank account if none exists
4644
self.user.bank_account = BankAccount(name="", BIC="", IBAN="")
47-
self.bank_bic = self.user.bank_account.BIC
48-
self.bank_name = self.user.bank_account.name
49-
self.bank_iban = self.user.bank_account.IBAN
50-
self.vat_number = self.user.VAT_number
45+
self.bank_ibc_field.value = self.bank_bic = self.user.bank_account.BIC
46+
self.bank_name_field.value = self.bank_name = self.user.bank_account.name
47+
self.bank_iban_field.value = self.bank_iban = self.user.bank_account.IBAN
48+
self.vat_number_field.value = self.vat_number = self.user.VAT_number
5149

5250
def update_form_data(self, user: User):
5351
"""Updates the user's data with the form data"""
@@ -77,32 +75,35 @@ def on_bank_name_changed(self, e):
7775

7876
def build(self):
7977
"""Called when form is built"""
78+
self.vat_number_field = views.get_std_txt_field(
79+
on_change=self.on_vat_number_changed,
80+
label="VAT Number",
81+
hint="Value Added Tax number of the user, legally required for invoices.",
82+
)
83+
self.bank_name_field = views.get_std_txt_field(
84+
on_change=self.on_bank_name_changed,
85+
label="Name",
86+
hint="Name of account",
87+
)
88+
self.bank_iban_field = views.get_std_txt_field(
89+
on_change=self.on_bank_iban_changed,
90+
label="IBAN",
91+
hint="International Bank Account Number",
92+
)
93+
self.bank_ibc_field = views.get_std_txt_field(
94+
on_change=self.on_bank_bic_changed,
95+
label="BIC",
96+
hint="Bank Identifier Code",
97+
)
8098
return Column(
8199
spacing=dimens.SPACE_MD,
82100
controls=[
83-
views.get_std_txt_field(
84-
on_change=self.on_vat_number_changed,
85-
label="VAT Number",
86-
hint="Value Added Tax number of the user, legally required for invoices.",
87-
initial_value=self.vat_number,
88-
),
101+
self.vat_number_field,
89102
views.xsSpace,
90103
views.get_sub_heading_txt("Bank Account"),
91-
views.get_std_txt_field(
92-
on_change=self.on_bank_name_changed,
93-
label="Name",
94-
initial_value=self.bank_name,
95-
),
96-
views.get_std_txt_field(
97-
on_change=self.on_bank_iban_changed,
98-
label="IBAN",
99-
initial_value=self.bank_iban,
100-
),
101-
views.get_std_txt_field(
102-
on_change=self.on_bank_bic_changed,
103-
label="BIC",
104-
initial_value=self.bank_bic,
105-
),
104+
self.bank_name_field,
105+
self.bank_iban_field,
106+
self.bank_ibc_field,
106107
views.stdSpace,
107108
views.get_primary_btn(
108109
label="Save",
@@ -578,6 +579,7 @@ def build(self):
578579
)
579580

580581
def did_mount(self):
582+
581583
"""Called when the view is mounted on page"""
582584
self.mounted = True
583585
result: IntentResult = self.intent.get_user_if_exists()
@@ -636,6 +638,7 @@ def build(self):
636638
return profile_destination_content_wrapper(self.user_info_content)
637639

638640
def did_mount(self):
641+
639642
"""Called when the view is mounted on page"""
640643
self.mounted = True
641644
result: IntentResult = self.intent.get_user_if_exists()
@@ -671,11 +674,15 @@ def on_update_payment_info(self, user: User):
671674
self.show_snack(result.error_msg, is_error=True)
672675

673676
def build(self):
677+
self.payment_data_form = PaymentDataForm(
678+
on_form_submit=self.on_update_payment_info,
679+
)
674680
self.payment_info_content = [
675681
views.get_heading(
676682
"Payment Settings",
677683
size=fonts.HEADLINE_4_SIZE,
678684
),
685+
self.payment_data_form,
679686
]
680687
return profile_destination_content_wrapper(self.payment_info_content)
681688

@@ -689,11 +696,7 @@ def did_mount(self):
689696
else:
690697
self.user_profile: User = result.data
691698
# setup payment info form
692-
self.payment_data_form = PaymentDataForm(
693-
on_form_submit=self.on_update_payment_info,
694-
user=self.user_profile,
695-
)
696-
self.payment_info_content.append(self.payment_data_form)
699+
self.payment_data_form.update_form_data(user=self.user_profile)
697700
self.update_self()
698701

699702
def will_unmount(self):

0 commit comments

Comments
 (0)