finished add members
This commit is contained in:
parent
688867250b
commit
45ad63fe3c
6
main.py
6
main.py
@ -1,5 +1,6 @@
|
|||||||
from models.utils import DatabaseUtils
|
from models.utils import DatabaseUtils
|
||||||
from models.database import Database
|
from models.database import Database
|
||||||
|
from ui.input_menu import InputMenu, EMAIL_VALIDATOR
|
||||||
from views.login_menu import LoginMenu
|
from views.login_menu import LoginMenu
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
@ -7,4 +8,9 @@ def main():
|
|||||||
DatabaseUtils.init_city_data()
|
DatabaseUtils.init_city_data()
|
||||||
LoginMenu.display()
|
LoginMenu.display()
|
||||||
|
|
||||||
|
# test = InputMenu("test")
|
||||||
|
# test.add_option("EMAIL", "email", "STR", "nick.leeman@hotmail.com", 0, 40, EMAIL_VALIDATOR)
|
||||||
|
# test.do_input()
|
||||||
|
# print(test.get_value("EMAIL"))
|
||||||
|
|
||||||
main()
|
main()
|
@ -44,8 +44,8 @@ class User:
|
|||||||
cur = Database.connection.cursor()
|
cur = Database.connection.cursor()
|
||||||
cur.execute("""
|
cur.execute("""
|
||||||
INSERT INTO users
|
INSERT INTO users
|
||||||
(id, username, fistname, lastname, address, zipcode, city_id, email, phone, password, role) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
(id, username, firstname, lastname, address, zipcode, city_id, email, phone, password, role) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||||
""", (self.id, self.username, 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.address, self.zipcode, self.city_id, self.email, self.phone, self.password, self.role))
|
||||||
|
|
||||||
Database.connection.commit()
|
Database.connection.commit()
|
||||||
cur.close()
|
cur.close()
|
||||||
@ -56,7 +56,7 @@ class User:
|
|||||||
cur.execute("""
|
cur.execute("""
|
||||||
UPDATE users SET
|
UPDATE users SET
|
||||||
username = ?,
|
username = ?,
|
||||||
fistname = ?,
|
firstname = ?,
|
||||||
lastname = ?,
|
lastname = ?,
|
||||||
address = ?,
|
address = ?,
|
||||||
zipcode = ?,
|
zipcode = ?,
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
import re
|
||||||
|
|
||||||
|
EMAIL_VALIDATOR = re.compile(r'([A-Za-z0-9]+[.-_])*[A-Za-z0-9]+@[A-Za-z0-9-]+(\.[A-Z|a-z]{2,})+')
|
||||||
|
|
||||||
class InputMenu:
|
class InputMenu:
|
||||||
|
|
||||||
@ -5,8 +8,8 @@ class InputMenu:
|
|||||||
self._title = title
|
self._title = title
|
||||||
self._fields = []
|
self._fields = []
|
||||||
|
|
||||||
def add_option(self, key, type, title, min, max):
|
def add_option(self, key, title, type, value, min, max, validator):
|
||||||
self._fields.append({"key": key, "title": title, "type": type, "value": None, "min": min, "max": max})
|
self._fields.append({"key": key, "title": title, "type": type, "value": value, "min": min, "max": max, "validator": validator})
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def do_input(self):
|
def do_input(self):
|
||||||
@ -17,18 +20,50 @@ class InputMenu:
|
|||||||
data = None
|
data = None
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
data = input(f"| ({self._fields[i]['title']}) => ")
|
data = ""
|
||||||
|
|
||||||
|
if self._fields[i]['value'] == None:
|
||||||
|
data = input(f"| ({self._fields[i]['title']}) => ")
|
||||||
|
else:
|
||||||
|
data = input(f"| ({self._fields[i]['title']}) [{self._fields[i]['value']}] => ")
|
||||||
|
|
||||||
if self._fields[i]['type'] == "STR":
|
if self._fields[i]['type'] == "STR":
|
||||||
if len(data) > self._fields[i]['min'] and len(data) <= self._fields[i]['max']:
|
|
||||||
|
# Check if value was preset and entered value was not changed
|
||||||
|
if self._fields[i]['value'] != None and data == "":
|
||||||
|
break
|
||||||
|
|
||||||
|
# Check length
|
||||||
|
if len(data) >= self._fields[i]['min'] and len(data) <= self._fields[i]['max']:
|
||||||
|
|
||||||
|
# Check regex validator id used
|
||||||
|
if self._fields[i]['validator'] != None:
|
||||||
|
if re.fullmatch(self._fields[i]['validator'], data):
|
||||||
|
# Set value of current field
|
||||||
|
self._fields[i]['value'] = data
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
print("| Invalid input! Try again. \n|")
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Set value of current field
|
||||||
self._fields[i]['value'] = data
|
self._fields[i]['value'] = data
|
||||||
break
|
break
|
||||||
else:
|
|
||||||
print("| Invalid input! Try again. \n|")
|
|
||||||
|
print("| Invalid input! Try again. \n|")
|
||||||
|
continue
|
||||||
|
|
||||||
elif self._fields[i]['type'] == "INT":
|
elif self._fields[i]['type'] == "INT":
|
||||||
|
|
||||||
|
# Check if value was preset and entered value was not changed
|
||||||
|
if self._fields[i]['value'] != None and data == "":
|
||||||
|
break
|
||||||
|
|
||||||
|
# Try and parse string into int, set value if no errors occur
|
||||||
try:
|
try:
|
||||||
num = int(data)
|
num = int(data)
|
||||||
if num > self._fields[i]['min'] and num <= self._fields[i]['max']:
|
if num >= self._fields[i]['min'] and num <= self._fields[i]['max']:
|
||||||
self._fields[i]['value'] = data
|
self._fields[i]['value'] = data
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
|
@ -11,7 +11,7 @@ class LoginMenu:
|
|||||||
while True:
|
while True:
|
||||||
os.system("clear")
|
os.system("clear")
|
||||||
login_form = InputMenu("Login Into Furnicur Family System")
|
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()
|
login_form.add_option("USERNAME", "Username", "STR", "frozen", 1, 250, None).add_option("PASSWORD", "Password", "STR", "admin", 1, 250, None).do_input()
|
||||||
|
|
||||||
user = Auth.check_auth(login_form.get_value("USERNAME"), login_form.get_value("PASSWORD"))
|
user = Auth.check_auth(login_form.get_value("USERNAME"), login_form.get_value("PASSWORD"))
|
||||||
if user:
|
if user:
|
||||||
|
@ -1,22 +1,43 @@
|
|||||||
|
|
||||||
from ui.input_menu import InputMenu
|
from models.database import Database
|
||||||
|
from models.user import User
|
||||||
|
from ui.input_menu import InputMenu, EMAIL_VALIDATOR
|
||||||
|
|
||||||
|
|
||||||
class MemberMenu:
|
class MemberMenu:
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def add_member():
|
def search_member():
|
||||||
menu = InputMenu()
|
form = InputMenu("Search for member")
|
||||||
menu.add_option("USERNAME", "STR", "Username", 1, 250)
|
form.add_option("QUERY", "Query", "STR", None, 1, 250, None)
|
||||||
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 add_member():
|
||||||
|
form = InputMenu("Add new member")
|
||||||
|
form.add_option("FIRSTNAME", "Firstname", "STR", None, 1, 250, None)
|
||||||
|
form.add_option("LASTNAME", "Lastname", "STR", None, 1, 250, None)
|
||||||
|
form.add_option("ADDRESS", "Address", "STR", None, 1, 250, None)
|
||||||
|
form.add_option("ZIPCODE", "Zipcode", "STR", None, 6, 6, None)
|
||||||
|
form.add_option("CITY_ID", "City", "STR", None, 1, 250, None)
|
||||||
|
form.add_option("EMAIL", "Email", "STR", None, 1, 250, EMAIL_VALIDATOR)
|
||||||
|
form.add_option("PHONE", "Phone (+31-6)", "STR", None, 8, 8, None)
|
||||||
|
form.do_input()
|
||||||
|
|
||||||
|
new_user = User(Database.connection,
|
||||||
|
None,
|
||||||
|
"",
|
||||||
|
form.get_value("FIRSTNAME"),
|
||||||
|
form.get_value("LASTNAME"),
|
||||||
|
form.get_value("ADDRESS"),
|
||||||
|
form.get_value("ZIPCODE"),
|
||||||
|
form.get_value("CITY_ID"),
|
||||||
|
form.get_value("EMAIL"),
|
||||||
|
"+31-6" + form.get_value("PHONE"),
|
||||||
|
"",
|
||||||
|
"MEMBER"
|
||||||
|
)
|
||||||
|
|
||||||
|
new_user.save()
|
||||||
|
input("Added new member! Press any key to return.")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def edit_member():
|
def edit_member():
|
||||||
|
Loading…
x
Reference in New Issue
Block a user