def layout(self): self.user = '' def on_text_email(instance, value): self.user = str(value) setButtonColor() layout = BoxLayout( orientation= 'vertical', padding= (dp(48),2*dp(48)), spacing= dp(48), ) userField = MDTextField() userField.hint_text = "Enter user ID" userField.bind(text=on_text_email) layout.add_widget(userField) proceedButton = MDRaisedButton(text='Enter Information', size_hint=(None, None),size= (4*dp(48),dp(48))) proceedButton.md_bg_color = [0.9, 0, 0, 0.9] app = App.get_running_app() def setButtonColor(): if self.user != '': proceedButton.text = 'Proceed' proceedButton.md_bg_color = app.theme_cls.primary_color proceedButton.bind(on_press=lambda x: self.processInformation()) proceedAnchor = AnchorLayout(anchor_x='center',anchor_y='center') proceedAnchor.add_widget(proceedButton) layout.add_widget(proceedAnchor) return layout
def layout(self): self.charge = False self.amount = '' self.ready = False def on_text_charge(instance, value): self.amount = value if len(value) >= 1: self.ready = True else: self.ready = False setButtonColor() layout = BoxLayout(orientation='vertical', padding=(2 * dp(48), 2 * dp(48))) #Charge Box chargeField = MDTextField() chargeField.hint_text = "Enter Amount to Charge" chargeField.input_filter = "int" chargeField.bind(text=on_text_charge) layout.add_widget(chargeField) proceedButton = MDRaisedButton(text='Proceed', size_hint=(None, None), size=(4 * dp(48), dp(48))) proceedButton.md_bg_color = [0.9, 0, 0, 0.9] app = App.get_running_app() def setButtonColor(): if self.ready: proceedButton.md_bg_color = app.theme_cls.primary_color proceedButton.bind(on_press=lambda x: self.createCharge()) proceedAnchor = AnchorLayout(anchor_x='center', anchor_y='bottom', padding=[60]) proceedAnchor.add_widget(proceedButton) layout.add_widget(proceedAnchor) content = Builder.load_string(spinner) self.stripepopup = Popup(title='Charging Card', title_align='center', size_hint=(None, None), size=(dp(200), dp(200))) self.stripepopup.add_widget(content) self.stripepopup.title_font = 'data/fonts/Roboto-Bold.ttf' self.stripepopup.title_color = App.get_running_app( ).theme_cls.primary_color self.stripepopup.separator_color = App.get_running_app( ).theme_cls.primary_color self.stripepopup.background = str( Atlas('{}round_shadow.atlas'.format(images_path))) return layout
def layout(self): self.paymentDict = {} self.card = False self.year = False self.month = False self.cvc = False def on_text_card(instance, value): if len(value) == 16: self.card = True self.paymentDict['card'] = str(value) else: self.card = False setButtonColor() def on_text_month(instance, value): if len(value) == 2: self.month = True self.paymentDict['month'] = str(value) else: self.month = False setButtonColor() def on_text_year(instance, value): if len(value) == 4: self.year = True self.paymentDict['year'] = str(value) else: self.year = False setButtonColor() def on_text_cvc(instance, value): if len(value) == 3: self.cvc = True self.paymentDict['cvc'] = str(value) else: self.cvc = False setButtonColor() layout = BoxLayout(orientation='vertical', padding=(2 * dp(48), 2 * dp(48))) # Credit Card Input self.creditCardField = MDTextField() self.creditCardField.hint_text = "Credit Card Number" self.creditCardField.input_filter = 'int' self.creditCardField.max_text_length = 16 self.creditCardField.bind(text=on_text_card) layout.add_widget(self.creditCardField) # Exp date input dateBox = BoxLayout() self.expMonth = MDTextField( ) # This is the color used by the textfield self.expMonth.hint_text = "Exp Month" self.expMonth.input_filter = 'int' self.expMonth.max_text_length = 2 self.expMonth.bind(text=on_text_month) self.expYear = MDTextField() self.expYear.hint_text = "Exp Year" self.expYear.input_filter = 'int' self.expYear.max_text_length = 4 self.expYear.bind(text=on_text_year) dateBox.add_widget(self.expMonth) dateBox.add_widget(self.expYear) layout.add_widget(dateBox) # CVC cvcBox = BoxLayout() self.cvcTextField = MDTextField() self.cvcTextField.hint_text = "CVC" self.cvcTextField.helper_text = "3 digit number on back of card" self.cvcTextField.helper_text_mode = "on_focus" self.cvcTextField.input_filter = "int" self.cvcTextField.bind(text=on_text_cvc) blankWidget8 = MDLabel(text='') cvcBox.add_widget(self.cvcTextField) cvcBox.add_widget(blankWidget8) layout.add_widget(cvcBox) # Combined Boxes into proceedButton = MDRaisedButton(text='Enter Credit Card', size_hint=(None, None), size=(4 * dp(48), dp(48))) proceedButton.md_bg_color = [0.9, 0, 0, 0.9] # proceedButton.bind(on_press=lambda x: self.processInformation(paymentDict)) self.app = App.get_running_app() def setButtonColor(): if all([self.card, self.year, self.month, self.cvc]): proceedButton.md_bg_color = self.app.theme_cls.primary_color proceedButton.text = 'Proceed' proceedButton.bind( on_press=lambda x: self.processInformation()) else: proceedButton.unbind proceedAnchor = AnchorLayout(anchor_x='center', anchor_y='bottom') proceedAnchor.add_widget(proceedButton) # #Combine all together layout.add_widget(proceedAnchor) content = Builder.load_string(spinner) self.authenPopup = Popup(title='Authorizing...', title_align='center', size_hint=(None, None), size=(dp(200), dp(200))) self.authenPopup.add_widget(content) self.authenPopup.title_font = 'data/fonts/Roboto-Bold.ttf' self.authenPopup.title_color = App.get_running_app( ).theme_cls.primary_color self.authenPopup.separator_color = App.get_running_app( ).theme_cls.primary_color self.authenPopup.background = str( Atlas('{}round_shadow.atlas'.format(images_path))) return layout