diff --git a/src/controller.py b/src/controller.py new file mode 100644 index 0000000000000000000000000000000000000000..43b2ade880b8d67319c4ccfeb774b40323769653 --- /dev/null +++ b/src/controller.py @@ -0,0 +1,40 @@ +from PyQt6.QtWidgets import QApplication +import sys +from register import register +from dashboard import dashboard +from listLatihan import listLatihan +from tesBacaDB import tesBacaDB +class controller: + def __init__(self): + self.tesBacaDB = tesBacaDB() + self.registerWin = register() + self.registerWin.switch.connect(self.fromRegister) + self.dashboard = dashboard() + self.dashboard.switch.connect(self.fromDashboard) + self.listLatihan = listLatihan() + self.listLatihan.switch.connect(self.fromListLatihan) + pass + + def start(self): + # nanti disini kasih validasi dulu, user udah ada apa belum + self.registerWin.show() + + def fromRegister(self): + self.registerWin.close() + self.dashboard.show() + + def fromDashboard(self, page): + self.registerWin.close() + if (page == "listLatihan"): + self.listLatihan.show() + + def fromListLatihan(self, page): + self.listLatihan.close() + if (page == "dashboard"): + self.dashboard.show() + +if __name__ == "__main__": + app = QApplication(sys.argv) + controller = controller() + controller.start() + app.exec() diff --git a/src/dashboard.py b/src/dashboard.py index deea84a9742ea696f8a765f28f1df45d75437242..00bf39e700211b7d0692ea0e023d6fb26f5c2907 100644 --- a/src/dashboard.py +++ b/src/dashboard.py @@ -11,7 +11,7 @@ text_color = '#EEEEE2' card_color = '#D2DCC4' class dashboard(QWidget): - + switch = pyqtSignal(str, dict) def __init__(self, user=None): super().__init__() if (user == None): @@ -231,6 +231,11 @@ class dashboard(QWidget): prog.move(667, 317) prog.setFont(historyFont) prog.setAlignment(Qt.AlignmentFlag.AlignLeft) + def showRegister(self): + self.switch.emit(self, "register") + + def listLatihann(self): + self.switch.emit(self, "listLatihan") diff --git a/src/register.py b/src/register.py index d6ebef7d6cfc548ce7973eabe4d31a1608b5dc4d..13982027e676e2cdb9b52076a288a293f658b933 100644 --- a/src/register.py +++ b/src/register.py @@ -1,12 +1,13 @@ import sqlite3 from PyQt6.QtWidgets import QApplication, QLabel, QWidget, QLineEdit, QPushButton, QRadioButton, QCheckBox, QMessageBox from PyQt6.QtGui import QFont, QPixmap, QCursor -from PyQt6.QtCore import Qt +from PyQt6.QtCore import Qt, pyqtSignal import sys class register(QWidget): - + switch = pyqtSignal() def __init__(self): super().__init__() + self.conn = sqlite3.connect('fitu.db') self.setUpWindow() @@ -107,14 +108,21 @@ class register(QWidget): self.registerButton.setText("Register") self.registerButton.setFixedSize(172, 44) self.registerButton.setStyleSheet(''' - border: 1px solid rgba(255, 255, 255, 0.8); - border-radius: 20px; - color: rgba(23, 71, 40, 1); - background-color: #D2DCC4 + QPushButton { + color: rgba(23, 71, 40, 1); + background-color: #D2DCC4; + border: 1px solid rgba(255, 255, 255, 0.8); + border-radius: 20px; + } + QPushButton:hover { + background-color: #5A8D6C; + } ''') self.registerButton.move(873, 545) self.registerButton.setFont(registerText) self.registerButton.setCursor(QCursor(Qt.CursorShape.PointingHandCursor)) + self.registerButton.clicked.connect(self.register) + self.fit = QCheckBox(self) self.fit.move(781, 486) @@ -131,7 +139,7 @@ class register(QWidget): self.thin.setCursor(QCursor(Qt.CursorShape.PointingHandCursor)) def register(self): - if (self.nameInput == '' or self.age == '' or self.height == '' or self.weight == '' or (not self.male and not self.female) or self.fit or self.thin): + if (self.nameInput == '' or self.age == '' or self.height == '' or self.weight == '' or (not self.male and not self.female) or self.fit == '' or self.thin == ''): msgBox = QMessageBox() msgBox.setText("<p>Please fill out the form properly!</p>") msgBox.setWindowTitle("Registration Failed") @@ -139,43 +147,66 @@ class register(QWidget): msgBox.setStyleSheet("background-color: white") msgBox.setStandardButtons(QMessageBox.StandardButton.Ok) msgBox.exec() - c = self.conn.cursor() - if (self.female): - if (self.thin): - c.execute( - f"INSERT INTO user (name, height, weight, goal, gender, age) VALUES ('{self.nameInput.text()}', '{self.height.text()}', '{self.weight.text()}', 'thin', 'female', '{self.age.text()}')" - ) - self.conn.commit() - elif (self.fit): - c.execute( - f"INSERT INTO user (name, height, weight, goal, gender, age) VALUES ('{self.nameInput.text()}', '{self.height.text()}', '{self.weight.text()}', 'fit', 'female', '{self.age.text()}')" - ) - self.conn.commit() - - else: - c.execute( - f"INSERT INTO user (name, height, weight, goal, gender, age) VALUES ('{self.nameInput.text()}', '{self.height.text()}', '{self.weight.text()}', 'fit, thin', 'female', '{self.age.text()}')" - ) - self.conn.commit() - - if (self.male): - if (self.thin): - c.execute( - f"INSERT INTO user (name, height, weight, goal, gender, age) VALUES ('{self.nameInput.text()}', '{self.height.text()}', '{self.weight.text()}', 'thin', 'male', '{self.age.text()}')" - ) - self.conn.commit() - - elif (self.fit): - c.execute( - f"INSERT INTO user (name, height, weight, goal, gender, age) VALUES ('{self.nameInput.text()}', '{self.height.text()}', '{self.weight.text()}', 'fit', 'male', '{self.age.text()}')" - ) - self.conn.commit() - - else: - c.execute( - f"INSERT INTO user (name, height, weight, goal, gender, age) VALUES ('{self.nameInput.text()}', '{self.height.text()}', '{self.weight.text()}', 'fit, thin', 'male', '{self.age.text()}')" - ) - self.conn.commit() + return + else: + c = self.conn.cursor() + if (self.female.isChecked()): + print("female") + if (self.fit.isChecked() == self.thin.isChecked()): + print("both") + c.execute( + f"INSERT INTO user (name, height, weight, goal, gender, age) VALUES ('{self.nameInput.text()}', '{self.height.text()}', '{self.weight.text()}', 'fit, thin', 'female', '{self.age.text()}')" + ) + self.conn.commit() + elif (self.thin.isChecked()): + c.execute( + f"INSERT INTO user (name, height, weight, goal, gender, age) VALUES ('{self.nameInput.text()}', '{self.height.text()}', '{self.weight.text()}', 'thin', 'female', '{self.age.text()}')" + ) + print("thin") + self.conn.commit() + elif (self.fit.isChecked()): + print("fit") + c.execute( + f"INSERT INTO user (name, height, weight, goal, gender, age) VALUES ('{self.nameInput.text()}', '{self.height.text()}', '{self.weight.text()}', 'fit', 'female', '{self.age.text()}')" + ) + self.conn.commit() + # if (self.fit and self.thin): + + + + elif(self.male.isChecked()): + print("male") + if(self.fit.isChecked() and self.thin.isChecked()): + print("both") + c.execute( + f"INSERT INTO user (name, height, weight, goal, gender, age) VALUES ('{self.nameInput.text()}', '{self.height.text()}', '{self.weight.text()}', 'fit, thin', 'male', '{self.age.text()}')" + ) + self.conn.commit() + elif (self.thin.isChecked()): + print("thin") + c.execute( + f"INSERT INTO user (name, height, weight, goal, gender, age) VALUES ('{self.nameInput.text()}', '{self.height.text()}', '{self.weight.text()}', 'thin', 'male', '{self.age.text()}')" + ) + self.conn.commit() + + elif (self.fit.isChecked()): + print("fit") + c.execute( + f"INSERT INTO user (name, height, weight, goal, gender, age) VALUES ('{self.nameInput.text()}', '{self.height.text()}', '{self.weight.text()}', 'fit', 'male', '{self.age.text()}')" + ) + self.conn.commit() + # if (self.fit and self.thin): + + + self.nameInput.clear() + self.age.clear() + self.height.clear() + self.weight.clear() + self.switch.emit() + + # def showDashboard(self): + # self.switch.emit("dashboard", {}) + if __name__ == "__main__":