From Import From Import From Import From Import, From Import Import
From Import From Import From Import From Import, From Import Import
import sqlite3
KV = '''
ScreenManager:
LoginScreen:
RegisterScreen:
AdminScreen:
UserScreen:
<LoginScreen>:
name: 'login'
MDTextField:
id: username
hint_text: 'Username'
pos_hint: {'center_x': 0.5, 'center_y': 0.6}
size_hint_x: None
width: 300
MDTextField:
id: password
hint_text: 'Password'
pos_hint: {'center_x': 0.5, 'center_y': 0.5}
size_hint_x: None
width: 300
password: True
MDRaisedButton:
text: 'Login'
pos_hint: {'center_x': 0.5, 'center_y': 0.4}
on_release: app.login(username.text, password.text)
MDFlatButton:
text: 'Register'
pos_hint: {'center_x': 0.5, 'center_y': 0.3}
on_release: root.manager.current = 'register'
<RegisterScreen>:
name: 'register'
MDTextField:
id: reg_username
hint_text: 'Username'
pos_hint: {'center_x': 0.5, 'center_y': 0.6}
size_hint_x: None
width: 300
MDTextField:
id: reg_password
hint_text: 'Password'
pos_hint: {'center_x': 0.5, 'center_y': 0.5}
size_hint_x: None
width: 300
password: True
MDRaisedButton:
text: 'Register'
pos_hint: {'center_x': 0.5, 'center_y': 0.4}
on_release: app.register(reg_username.text, reg_password.text)
MDFlatButton:
text: 'Back to Login'
pos_hint: {'center_x': 0.5, 'center_y': 0.3}
on_release: root.manager.current = 'login'
<AdminScreen>:
name: 'admin'
MDLabel:
text: 'Welcome, Admin!'
halign: 'center'
MDFlatButton:
text: 'Logout'
pos_hint: {'center_x': 0.5, 'center_y': 0.3}
on_release: root.manager.current = 'login'
<UserScreen>:
name: 'user'
MDLabel:
id: user_label
text: ''
halign: 'center'
MDFlatButton:
text: 'Logout'
pos_hint: {'center_x': 0.5, 'center_y': 0.3}
on_release: root.manager.current = 'login'
'''
class LoginScreen(Screen):
pass
class RegisterScreen(Screen):
pass
class AdminScreen(Screen):
pass
class UserScreen(Screen):
pass
class LeaseApp(MDApp):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.init_database()
def build(self):
self.theme_cls.primary_palette = "Blue"
self.theme_cls.primary_hue = "500"
self.theme_cls.theme_style = "Light"
return Builder.load_string(KV)
def init_database(self):
conn = sqlite3.connect('users.db')
cursor = conn.cursor()
try:
cursor.execute("INSERT INTO users (username, password) VALUES
(?, ?)", (username, password))
conn.commit()
self.show_alert_dialog("Registration successful!")
self.root.current = 'login'
except sqlite3.IntegrityError:
self.show_alert_dialog("Username already exists")
finally:
conn.close()
if user:
return True
else:
return False
def create_novated_lease(self):
# Add your code for creating a new novated lease
pass
def check_previous_leases(self):
# Add your code for checking previous leases
pass
def show_help_dialog(self):
help_text = "This is a help message. Add more information here."
dialog = MDDialog(
title="Help",
text=help_text,
size_hint=(0.8, 1),
buttons=[
MDFlatButton(
text="OK", on_release=lambda x: dialog
),
],
)
dialog.open()
if __name__ == '__main__':
LeaseApp().run()