working on member menu manage
This commit is contained in:
parent
d6467b2a8f
commit
688867250b
21
main.py
21
main.py
@ -1,27 +1,10 @@
|
|||||||
from models.utils import DatabaseUtils
|
from models.utils import DatabaseUtils
|
||||||
from ui.selection_menu import SelectionMenu
|
|
||||||
from ui.input_menu import InputMenu
|
|
||||||
from services.encryption import Encryption
|
|
||||||
from models.database import Database
|
from models.database import Database
|
||||||
|
from views.login_menu import LoginMenu
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
# main_menu = SelectionMenu("Main Menu").add_option("Login", damn).add_option("Exit", damn).display()
|
|
||||||
# action = main_menu.input_option()
|
|
||||||
# action()
|
|
||||||
|
|
||||||
# main_form = InputMenu("User Information")
|
|
||||||
# main_form.add_option("USERNAME", "STR", "Username", 1, 254)
|
|
||||||
# main_form.add_option("PASSWORD", "STR", "Password", 1, 254)
|
|
||||||
# main_form.add_option("AGE", "INT", "Age", 5, 100)
|
|
||||||
|
|
||||||
# main_form.do_input()
|
|
||||||
|
|
||||||
# print(main_form.get_value("USERNAME"))
|
|
||||||
Database.init()
|
Database.init()
|
||||||
DatabaseUtils.init_city_data()
|
DatabaseUtils.init_city_data()
|
||||||
|
LoginMenu.display()
|
||||||
|
|
||||||
def damn():
|
|
||||||
print("dsdd")
|
|
||||||
|
|
||||||
main()
|
main()
|
@ -38,6 +38,7 @@ class Database:
|
|||||||
cursor.execute("""
|
cursor.execute("""
|
||||||
CREATE TABLE IF NOT EXISTS users (
|
CREATE TABLE IF NOT EXISTS users (
|
||||||
id INTEGER PRIMARY KEY,
|
id INTEGER PRIMARY KEY,
|
||||||
|
username TEXT,
|
||||||
firstname TEXT,
|
firstname TEXT,
|
||||||
lastname TEXT,
|
lastname TEXT,
|
||||||
address TEXT,
|
address TEXT,
|
||||||
|
@ -2,9 +2,10 @@ import sqlite3
|
|||||||
from models.database import Database
|
from models.database import Database
|
||||||
|
|
||||||
class User:
|
class User:
|
||||||
def __init__(self, connection : sqlite3.Connection, id = None, firstname = None, lastname = None, address = None, zipcode = None, city_id = None, email = None, phone = None, password = None, role = None):
|
def __init__(self, connection : sqlite3.Connection, id = None, username = None, firstname = None, lastname = None, address = None, zipcode = None, city_id = None, email = None, phone = None, password = None, role = None):
|
||||||
self.connection = connection
|
self.connection = connection
|
||||||
self.id = id
|
self.id = id
|
||||||
|
self.username = username
|
||||||
self.firstname = firstname
|
self.firstname = firstname
|
||||||
self.lastname = lastname
|
self.lastname = lastname
|
||||||
self.address = address
|
self.address = address
|
||||||
@ -27,12 +28,24 @@ class User:
|
|||||||
cur.close()
|
cur.close()
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def load_by_username(self):
|
||||||
|
cur = Database.connection.cursor()
|
||||||
|
row = cur.execute("SELECT * FROM users WHERE username = ?", (self.username,)).fetchone()
|
||||||
|
|
||||||
|
if row == None:
|
||||||
|
return False
|
||||||
|
|
||||||
|
self._set_row_values(row)
|
||||||
|
|
||||||
|
cur.close()
|
||||||
|
return True
|
||||||
|
|
||||||
def save(self):
|
def save(self):
|
||||||
cur = Database.connection.cursor()
|
cur = Database.connection.cursor()
|
||||||
cur.execute("""
|
cur.execute("""
|
||||||
INSERT INTO users
|
INSERT INTO users
|
||||||
(id, fistname, lastname, address, zipcode, city_id, email, phone, password, role) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
(id, username, fistname, lastname, address, zipcode, city_id, email, phone, password, role) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||||
""", (self.id, self.firstname, self.lastname, self.zipcode, self.city_id, self.email, self.phone, self.password, self.role))
|
""", (self.id, self.username, self.firstname, self.lastname, self.zipcode, self.city_id, self.email, self.phone, self.password, self.role))
|
||||||
|
|
||||||
Database.connection.commit()
|
Database.connection.commit()
|
||||||
cur.close()
|
cur.close()
|
||||||
@ -42,6 +55,7 @@ class User:
|
|||||||
cur = Database.connection.cursor()
|
cur = Database.connection.cursor()
|
||||||
cur.execute("""
|
cur.execute("""
|
||||||
UPDATE users SET
|
UPDATE users SET
|
||||||
|
username = ?,
|
||||||
fistname = ?,
|
fistname = ?,
|
||||||
lastname = ?,
|
lastname = ?,
|
||||||
address = ?,
|
address = ?,
|
||||||
@ -52,7 +66,7 @@ class User:
|
|||||||
password = ?,
|
password = ?,
|
||||||
role = ?,
|
role = ?,
|
||||||
WHERE id = ?
|
WHERE id = ?
|
||||||
""", (self.firstname, self.lastname, self.zipcode, self.city_id, self.email, self.phone, self.password, self.role, self.id))
|
""", (self.username, self.firstname, self.lastname, self.zipcode, self.city_id, self.email, self.phone, self.password, self.role, self.id))
|
||||||
|
|
||||||
Database.connection.commit()
|
Database.connection.commit()
|
||||||
cur.close()
|
cur.close()
|
||||||
@ -60,13 +74,14 @@ class User:
|
|||||||
|
|
||||||
def _set_row_values(self, row):
|
def _set_row_values(self, row):
|
||||||
self.id = row[0]
|
self.id = row[0]
|
||||||
self.firstname = row[1]
|
self.username = row[1]
|
||||||
self.lastname = row[2]
|
self.firstname = row[2]
|
||||||
self.address = row[3]
|
self.lastname = row[3]
|
||||||
self.zipcode = row[4]
|
self.address = row[4]
|
||||||
self.city_id = row[5]
|
self.zipcode = row[5]
|
||||||
self.email = row[6]
|
self.city_id = row[6]
|
||||||
self.phone = row[7]
|
self.email = row[7]
|
||||||
self.password = row[8]
|
self.phone = row[8]
|
||||||
self.role = row[9]
|
self.password = row[9]
|
||||||
|
self.role = row[10]
|
||||||
|
|
9
services/auth.py
Normal file
9
services/auth.py
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
from models.database import Database
|
||||||
|
from models.user import User
|
||||||
|
|
||||||
|
class Auth:
|
||||||
|
def check_auth(username, password):
|
||||||
|
user = User(Database.connection, None, username)
|
||||||
|
if user.load_by_username() and user.password == password:
|
||||||
|
return user
|
||||||
|
return None
|
5
services/state.py
Normal file
5
services/state.py
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
from ast import Import
|
||||||
|
from models.user import User
|
||||||
|
|
||||||
|
class State:
|
||||||
|
CURRENT_USER: User = None
|
@ -11,7 +11,7 @@ class InputMenu:
|
|||||||
|
|
||||||
def do_input(self):
|
def do_input(self):
|
||||||
print("")
|
print("")
|
||||||
print(f"/--[ {self._title} ]----------------------------")
|
print(f"/--[ {self._title} ]-------------")
|
||||||
|
|
||||||
for i in range(len(self._fields)):
|
for i in range(len(self._fields)):
|
||||||
data = None
|
data = None
|
||||||
|
24
views/login_menu.py
Normal file
24
views/login_menu.py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
from time import sleep
|
||||||
|
from services.auth import Auth
|
||||||
|
from ui.input_menu import InputMenu
|
||||||
|
from services.state import State
|
||||||
|
from views.main_menu import MainMenu
|
||||||
|
import os
|
||||||
|
|
||||||
|
class LoginMenu:
|
||||||
|
@staticmethod
|
||||||
|
def display():
|
||||||
|
while True:
|
||||||
|
os.system("clear")
|
||||||
|
login_form = InputMenu("Login Into Furnicur Family System")
|
||||||
|
login_form.add_option("USERNAME", "STR", "Username", 1, 250).add_option("PASSWORD", "STR", "Password", 1, 250).do_input()
|
||||||
|
|
||||||
|
user = Auth.check_auth(login_form.get_value("USERNAME"), login_form.get_value("PASSWORD"))
|
||||||
|
if user:
|
||||||
|
State.CURRENT_USER = user
|
||||||
|
break
|
||||||
|
|
||||||
|
print("Invalid Credentials! Please try again.")
|
||||||
|
sleep(1)
|
||||||
|
|
||||||
|
MainMenu.display()
|
44
views/main_menu.py
Normal file
44
views/main_menu.py
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
import os
|
||||||
|
from services.state import State
|
||||||
|
from ui.selection_menu import SelectionMenu
|
||||||
|
from views.member_menu import MemberMenu
|
||||||
|
|
||||||
|
class MainMenu:
|
||||||
|
@staticmethod
|
||||||
|
def display():
|
||||||
|
while True:
|
||||||
|
os.system("clear")
|
||||||
|
main_menu = SelectionMenu(f"Welcome {State.CURRENT_USER.username}!")
|
||||||
|
|
||||||
|
if State.CURRENT_USER.role == "ADVISOR" or State.CURRENT_USER.role == "SYSTEM_ADMIN":
|
||||||
|
main_menu.add_option("Update My Password", None)
|
||||||
|
main_menu.add_option("Manage Members", MainMenu.manage_members)
|
||||||
|
|
||||||
|
if State.CURRENT_USER.role == "SYSTEM_ADMIN" and State.CURRENT_USER.role == "SUPER_ADMIN":
|
||||||
|
main_menu.add_option("Manage Advisors", None)
|
||||||
|
|
||||||
|
main_menu.add_option("Exit...", None)
|
||||||
|
|
||||||
|
selected_option = main_menu.display().input_option()
|
||||||
|
if selected_option == None:
|
||||||
|
exit(0)
|
||||||
|
|
||||||
|
selected_option()
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def manage_members():
|
||||||
|
os.system("clear")
|
||||||
|
|
||||||
|
menu = SelectionMenu(f"Manage Members")
|
||||||
|
menu.add_option("Add Member", MemberMenu.add_member)
|
||||||
|
menu.add_option("Edit Member", MemberMenu.edit_member)
|
||||||
|
menu.add_option("Remove Member", MemberMenu.remove_member)
|
||||||
|
menu.add_option("Back to main menu", None)
|
||||||
|
|
||||||
|
selected_option = menu.display().input_option()
|
||||||
|
if selected_option == None:
|
||||||
|
return
|
||||||
|
|
||||||
|
selected_option()
|
||||||
|
|
||||||
|
|
27
views/member_menu.py
Normal file
27
views/member_menu.py
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
|
||||||
|
from ui.input_menu import InputMenu
|
||||||
|
|
||||||
|
|
||||||
|
class MemberMenu:
|
||||||
|
@staticmethod
|
||||||
|
def add_member():
|
||||||
|
menu = InputMenu()
|
||||||
|
menu.add_option("USERNAME", "STR", "Username", 1, 250)
|
||||||
|
menu.add_option("FIRSTNAME", "STR", "Firstname", 1, 250)
|
||||||
|
menu.add_option("LASTNAME", "STR", "Lastname", 1, 250)
|
||||||
|
menu.add_option("ADDRESS", "STR", "Address", 1, 250)
|
||||||
|
menu.add_option("ZIPCODE", "STR", "Zipcode", 1, 250)
|
||||||
|
menu.add_option("CITY_ID", "STR", "City", 1, 250)
|
||||||
|
menu.add_option("EMAIL", "STR", "Email", 1, 250)
|
||||||
|
menu.add_option("PHONE", "STR", "Phone", 1, 250)
|
||||||
|
menu.add_option("PASSWORD", "STR", "Password", 1, 250)
|
||||||
|
|
||||||
|
pass
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def edit_member():
|
||||||
|
pass
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def remove_member():
|
||||||
|
pass
|
4
views/system_admin_menu.py
Normal file
4
views/system_admin_menu.py
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
class SystemAdminMenu:
|
||||||
|
@staticmethod
|
||||||
|
def display():
|
||||||
|
pass
|
Loading…
x
Reference in New Issue
Block a user