@@ -32,22 +32,20 @@ class PaymentDataForm(UserControl):
32
32
def __init__ (
33
33
self ,
34
34
on_form_submit : Callable [[User ], None ],
35
- user : User ,
36
35
):
37
36
super ().__init__ ()
38
37
self .on_form_submit = on_form_submit
39
- self .user = user
40
- self .set_form_data ()
38
+ self .user : User = None
41
39
42
40
def set_form_data (self ):
43
41
"""Sets the form data to the user's current data"""
44
42
if not self .user .bank_account :
45
43
# Create a new bank account if none exists
46
44
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
51
49
52
50
def update_form_data (self , user : User ):
53
51
"""Updates the user's data with the form data"""
@@ -77,32 +75,35 @@ def on_bank_name_changed(self, e):
77
75
78
76
def build (self ):
79
77
"""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
+ )
80
98
return Column (
81
99
spacing = dimens .SPACE_MD ,
82
100
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 ,
89
102
views .xsSpace ,
90
103
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 ,
106
107
views .stdSpace ,
107
108
views .get_primary_btn (
108
109
label = "Save" ,
@@ -578,6 +579,7 @@ def build(self):
578
579
)
579
580
580
581
def did_mount (self ):
582
+
581
583
"""Called when the view is mounted on page"""
582
584
self .mounted = True
583
585
result : IntentResult = self .intent .get_user_if_exists ()
@@ -636,6 +638,7 @@ def build(self):
636
638
return profile_destination_content_wrapper (self .user_info_content )
637
639
638
640
def did_mount (self ):
641
+
639
642
"""Called when the view is mounted on page"""
640
643
self .mounted = True
641
644
result : IntentResult = self .intent .get_user_if_exists ()
@@ -671,11 +674,15 @@ def on_update_payment_info(self, user: User):
671
674
self .show_snack (result .error_msg , is_error = True )
672
675
673
676
def build (self ):
677
+ self .payment_data_form = PaymentDataForm (
678
+ on_form_submit = self .on_update_payment_info ,
679
+ )
674
680
self .payment_info_content = [
675
681
views .get_heading (
676
682
"Payment Settings" ,
677
683
size = fonts .HEADLINE_4_SIZE ,
678
684
),
685
+ self .payment_data_form ,
679
686
]
680
687
return profile_destination_content_wrapper (self .payment_info_content )
681
688
@@ -689,11 +696,7 @@ def did_mount(self):
689
696
else :
690
697
self .user_profile : User = result .data
691
698
# 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 )
697
700
self .update_self ()
698
701
699
702
def will_unmount (self ):
0 commit comments