class UserController: def __init__(self): self.model = User() self.view = UserView() self.menu() def menu(self): while True: # Render User Menu and get command value command = self.view.menu() if command == 0: return elif command == 1: self.addUser() elif command == 4: self.deleteUser() elif command == 5: self.listUser() else: pass def listUser(self): res = self.model.select() self.view.listUser(res) def addUser(self): data = self.view.addUser() data['password'] = bcrypt.hashpw(data['password'].encode('utf-8'), bcrypt.gensalt()).decode('utf-8') if self.model.insert(data): print("OK") else: print("Failed") def deleteUser(self): data = self.view.deleteUser() if data == 'cancelled': return else: if self.model.delete(data): print("Deleted") else: print("Failed")
def userSlot(self): from View.UserView import UserView self.userView = UserView() self.userView.show() self.userView.exec_()
class MainMenuView(QWidget): def __init__(self, username, hakakses): super().__init__() self.showMaximized() self.setWindowFlag(QtCore.Qt.WindowCloseButtonHint, False) self.setWindowTitle("MAIN MENU") # ========== SIDEBAR SECTION ============= frameSideBar = QFrameReuse("white") frameSideBar.setContentsMargins(10, 10, 10, 10) sideBarLayout = QGridLayout(frameSideBar) sideBarLayout.setSpacing(5) btnMainMenu = QPushButtonReuse("Main Menu", "assets/img/medication.png") self.btnPasien = QPushButtonReuse("Form.Pasien", "assets/img/pasien.png") self.btnDokter = QPushButtonReuse("Form.Dokter", "assets/img/dokter.png") self.btnApoteker = QPushButtonReuse("Form.Apoteker", "assets/img/apoteker.png") self.btnObat = QPushButtonReuse("Form.Obat", "assets/img/obat.png") self.btnUser = QPushButtonReuse("Form.User", "assets/img/user.png") self.btnLogOut = QPushButtonReuse("Log Out", "assets/img/log_out.png") # =========== EVENT SECTION ============= self.btnLogOut.clicked.connect(lambda: self.logOutSlot()) self.btnPasien.clicked.connect(lambda: self.pasienSlot()) self.btnDokter.clicked.connect(lambda: self.dokterSlot()) self.btnApoteker.clicked.connect(lambda: self.apotekerSlot()) self.btnObat.clicked.connect(lambda: self.obatSlot()) self.btnUser.clicked.connect(lambda: self.userSlot()) # ========== DASHBOARD SECTION TITLE =========== frameTitle = QFrameReuse("white") headerLayout = QGridLayout(frameTitle) self.hakAkses = QLabelReuse(str(hakakses), "black") self.hakAkses.setAlignment(QtCore.Qt.AlignLeft) layoutRightTitle = QHBoxLayout() self.btnnotification = QPushButtonReuse(str(PemeriksaanOrm.countNotif()), "assets/img/notification.png") self.btnnotification.setStyleSheet("background-color : transparent;\n" "color : red") profile = QPushButtonReuse("", "assets/img/profile.png") # =========== TITLE SECTION EVENT ============ self.btnnotification.clicked.connect(lambda: self.pemeriksaanNotif()) # ========== DASHBOARD SECTION BODY =========== frameDashboard = QFrameReuse("rgb(58, 150, 248)") frameLayout = QHBoxLayout(frameDashboard) frameLayout.setContentsMargins(40, 40, 40, 40) frameLayoutLeft = QVBoxLayout() frameLayoutRight = QVBoxLayout() font = QtGui.QFont() font.setFamily("Arial Rounded") font.setPointSize(11) font.setWeight(50) welcome = QLabelReuse("Welcome", "white") welcome.setFont(font) font = QtGui.QFont() font.setFamily("Product Sans") font.setPointSize(12) font.setWeight(75) self.username = QLabelReuse(username, "white") self.username.setFont(font) font = QtGui.QFont() font.setFamily("Arial Rounded") font.setPointSize(11) font.setItalic(True) font.setWeight(50) quote = QLabelReuse("\n\n\n\n\nTo keep the body in good health is a duty.. otherwise \n\n" "we shall not be able to keep our mind strong and clear.\n", "white") quote.setFont(font) lbllogo = QLabelReuse("", "") lbllogo.setPixmap(QtGui.QPixmap("assets/img/medical256.png")) lbllogo.setAlignment(QtCore.Qt.AlignRight) self.framePemeriksaan = QFrameReuse("white") layoutPemeriksaan = QVBoxLayout(self.framePemeriksaan) layoutPemeriksaan.setContentsMargins(45, 45, 45, 45) lblPemeriksaan = QLabelReuse("", "") lblPemeriksaan.setPixmap(QtGui.QPixmap("assets/img/medical-tool.png")) lblPemeriksaan.setAlignment(QtCore.Qt.AlignCenter) lblPemeriksaanjudul = QLabelReuse("\nForm. Pemeriksaan\n", "black") lblPemeriksaanjudul.setAlignment(QtCore.Qt.AlignCenter) self.btnPemeriksaan = QPushButtonReuse("Get Started", "") self.frameTransaksi = QFrameReuse("white") layoutTransaksi = QVBoxLayout(self.frameTransaksi) layoutTransaksi.setContentsMargins(45, 45, 45, 45) lblTransaksi = QLabelReuse("", "") lblTransaksi.setPixmap(QtGui.QPixmap("assets/img/transaksi.png")) lblTransaksi.setAlignment(QtCore.Qt.AlignCenter) lblTransaksijudul = QLabelReuse("\nForm. Transaksi\n", "black") lblTransaksijudul.setAlignment(QtCore.Qt.AlignCenter) self.btnTransaksi = QPushButtonReuse("Get Started", "") # ========== DASHBOARD BODY EVENT ========= self.btnPemeriksaan.clicked.connect(lambda: self.pemeriksaanSlot()) # ========== LAYOUT SECTION ============== sideBarLayout.addWidget(btnMainMenu, 0, 0) sideBarLayout.addWidget(self.btnPasien, 1, 0) sideBarLayout.addWidget(self.btnDokter, 2, 0) sideBarLayout.addWidget(self.btnApoteker, 3, 0) sideBarLayout.addWidget(self.btnObat, 4, 0) sideBarLayout.addWidget(self.btnUser, 5, 0) sideBarLayout.addWidget(self.btnLogOut, 6, 0, QtCore.Qt.AlignBottom) layoutRightTitle.addWidget(self.btnnotification) layoutRightTitle.addWidget(profile) headerLayout.addWidget(self.hakAkses, 0, 0, QtCore.Qt.AlignLeft) headerLayout.addLayout(layoutRightTitle, 0, 2, QtCore.Qt.AlignRight) frameLayout.addLayout(frameLayoutLeft) frameLayout.addLayout(frameLayoutRight) frameLayoutLeft.addWidget(welcome) frameLayoutLeft.addWidget(self.username) frameLayoutLeft.addWidget(quote) frameLayoutRight.addWidget(lbllogo) layoutPemeriksaan.addWidget(lblPemeriksaan) layoutPemeriksaan.addWidget(lblPemeriksaanjudul) layoutPemeriksaan.addWidget(self.btnPemeriksaan) layoutTransaksi.addWidget(lblTransaksi) layoutTransaksi.addWidget(lblTransaksijudul) layoutTransaksi.addWidget(self.btnTransaksi) layoutUtama = QGridLayout() layoutUtama.addWidget(frameSideBar, 0, 0, 6, 1, QtCore.Qt.AlignLeft) layoutUtama.addWidget(frameTitle, 0, 1, 1, 9, QtCore.Qt.AlignTop) layoutUtama.addWidget(frameDashboard, 1, 1, 3, 9, QtCore.Qt.AlignTop) layoutUtama.addWidget(self.framePemeriksaan, 4, 1, 2, 2, QtCore.Qt.AlignHCenter) layoutUtama.addWidget(self.frameTransaksi, 4, 3, 2, 2, QtCore.Qt.AlignHCenter) layoutUtama.setSpacing(10) self.hakAksesVisible() self.setLayout(layoutUtama) @pyqtSlot() def logOutSlot(self): from View.LoginView import LoginView self.login = LoginView() self.login.show() self.close() @pyqtSlot() def pasienSlot(self): from View.PasienView import PasienView self.pasienview = PasienView() self.pasienview.show() self.pasienview.exec_() @pyqtSlot() def dokterSlot(self): from View.DokterView import DokterView self.dokterView = DokterView() self.dokterView.show() self.dokterView.exec_() @pyqtSlot() def apotekerSlot(self): from View.ApotekerView import ApotekerView self.apotekerView = ApotekerView() self.apotekerView.show() self.apotekerView.exec_() @pyqtSlot() def obatSlot(self): from View.ObatView import ObatView self.obatView = ObatView() self.obatView.show() self.obatView.exec_() @pyqtSlot() def userSlot(self): from View.UserView import UserView self.userView = UserView() self.userView.show() self.userView.exec_() @pyqtSlot() def pemeriksaanSlot(self): from View.PemeriksaanView import PemeriksaanView self.periksaView = PemeriksaanView() self.periksaView.show() self.periksaView.exec_() @pyqtSlot() def pemeriksaanNotif(self): from View.notificationView import notificationView self.notifView = notificationView() self.notifView.show() self.notifView.exec_() def hakAksesVisible(self): hakAkses = self.hakAkses.text() if (hakAkses == str(HakAkses.DOKTER)): self.btnUser.setVisible(False) self.btnObat.setVisible(False) self.btnApoteker.setVisible(False) self.btnDokter.setVisible(False) self.btnPasien.setVisible(False) self.framePemeriksaan.setVisible(False) self.frameTransaksi.setVisible(False) elif (hakAkses == str(HakAkses.APOTEKER)): self.btnUser.setVisible(False) self.btnnotification.setVisible(False) self.btnApoteker.setVisible(False) self.btnDokter.setVisible(False) self.btnPasien.setVisible(False) self.framePemeriksaan.setVisible(False) self.frameTransaksi.setVisible(False) else: self.btnnotification.setVisible(False)
class MainMenu(QWidget): def __init__(self, username, authority): super().__init__() self.showMaximized() self.setWindowFlag(QtCore.Qt.WindowCloseButtonHint, False) self.setWindowTitle("MAIN MENU") # >>>> MENU SECTION <<<< MenuBar = QFrameRC("white") MenuBar.setContentsMargins(10, 10, 10, 10) MenuLayout = QGridLayout(MenuBar) MenuLayout.setSpacing(5) self.btnCheckIn = QPushButtonRC2("Book now", "assets/img/bed.png") self.btnRoom = QPushButtonRC2("Occupied Room", "assets/img/no.png") self.btnBRUH2 = QPushButtonRC2("Reserved", "assets/img/back.png") # >>>> MENU EVENT SECTION <<<< self.btnCheckIn.clicked.connect(lambda: self.bookSlot()) #self.btnBRUH2.clicked.connect(lambda: self.logOutSlot()) self.btnRoom.clicked.connect(lambda: self.logOutSlot()) #self.btnRoom.clicked.connect(lambda: self.roomSlot()) # >>>> LOGOUT SECTION <<<< LogoutBar = QFrameRC("transparent") LogoutBar.setContentsMargins(10, 10, 10, 10) LogoutLayout = QGridLayout(LogoutBar) LogoutLayout.setSpacing(5) # >>>> BOTTOMBAR SECTION <<<< frameBottomBar = QFrameRC("white") frameBottomBar.setContentsMargins(10, 10, 10, 10) bottomBarLayout = QGridLayout(frameBottomBar) bottomBarLayout.setSpacing(5) btnMainMenu = QPushButtonRC2("Tambah Data : ", "") self.btnAdministrator = QPushButtonRC2("Administrator", "assets/img/add.png") self.btnEmployee = QPushButtonRC2("Employee", "assets/img/add.png") self.btnReceptionist = QPushButtonRC2("Receptionist", "assets/img/add.png") self.btnMarketing_crew = QPushButtonRC2("Marketing Crew", "assets/img/add.png") self.btnCashier = QPushButtonRC2("Cashier", "assets/img/add.png") self.btnVisitor = QPushButtonRC2("Visitor", "assets/img/add.png") self.btnUser = QPushButtonRC2("User", "assets/img/add.png") self.btnLogOut = QPushButtonRC2("Log Out", "assets/img/logout.png") # >>>> EVENT SECTION <<<< self.btnLogOut.clicked.connect(lambda: self.logOutSlot()) self.btnAdministrator.clicked.connect(lambda: self.adminSlot()) self.btnEmployee.clicked.connect(lambda: self.empSlot()) self.btnReceptionist.clicked.connect(lambda: self.recSlot()) self.btnMarketing_crew.clicked.connect(lambda: self.mcSlot()) self.btnCashier.clicked.connect(lambda: self.casSlot()) self.btnVisitor.clicked.connect(lambda: self.visSlot()) self.btnUser.clicked.connect(lambda: self.userSlot()) # >>>> DASHBOARD SECTION TITLE <<<< frameTitle = QFrameRC("white") headerLayout = QGridLayout(frameTitle) self.authority = QLabelRC(str(authority), "black") self.authority.setAlignment(QtCore.Qt.AlignLeft) profile = QPushButtonRC2("", "assets/img/profile.png") # >>>> DASHBOARD SECTION BODY <<<< frameDashboard = QFrameRC("rgb(125, 15, 15)") frameLayout = QHBoxLayout(frameDashboard) frameLayout.setContentsMargins(40, 40, 40, 40) frameLayoutLeft = QVBoxLayout() frameLayoutRight = QVBoxLayout() font = QtGui.QFont() font.setFamily("Arial Rounded") font.setPointSize(11) font.setWeight(50) welcome = QLabelRC("Selamat datang,", "white") welcome.setFont(font) font = QtGui.QFont() font.setFamily("Product Sans") font.setPointSize(12) font.setWeight(75) self.username = QLabelRC(username, "white") self.username.setFont(font) font = QtGui.QFont() font.setFamily("Arial Rounded") font.setPointSize(11) font.setItalic(True) font.setWeight(50) quote = QLabelRC("\n\n\n\n\nWhen you get into a hotel room, you lock the door, and you know there is a secrecy, there is a luxury, there is fantasy. There is comfort. There is reassurance.", "white") quote.setFont(font) lbllogo = QLabelRC("", "") lbllogo.setPixmap(QtGui.QPixmap("assets/img/medical256.png")) lbllogo.setAlignment(QtCore.Qt.AlignRight) # >>>> LAYOUT SECTION <<<< bottomBarLayout.addWidget(btnMainMenu, 0, 0) bottomBarLayout.addWidget(self.btnAdministrator, 0, 1) bottomBarLayout.addWidget(self.btnEmployee, 0, 2) bottomBarLayout.addWidget(self.btnReceptionist, 0, 3) bottomBarLayout.addWidget(self.btnMarketing_crew, 0, 4) bottomBarLayout.addWidget(self.btnCashier, 0, 5) bottomBarLayout.addWidget(self.btnVisitor, 0, 6) bottomBarLayout.addWidget(self.btnLogOut, 0, 7) #Menu MenuLayout.addWidget(self.btnCheckIn, 0, 0) MenuLayout.addWidget(self.btnRoom, 0, 1) MenuLayout.addWidget(self.btnBRUH2, 0, 2) LogoutLayout.addWidget(self.btnLogOut, 0, 0, QtCore.Qt.AlignRight) #Header headerLayout.addWidget(self.authority, 0, 0, QtCore.Qt.AlignLeft) headerLayout.addWidget(profile, 0, 2, QtCore.Qt.AlignRight) frameLayout.addLayout(frameLayoutLeft) frameLayout.addLayout(frameLayoutRight) frameLayoutLeft.addWidget(welcome) frameLayoutLeft.addWidget(self.username) frameLayoutLeft.addWidget(quote) frameLayoutRight.addWidget(lbllogo) #Main layoutUtama = QGridLayout() layoutUtama.addWidget(frameTitle, 0, 1, 1, 9, QtCore.Qt.AlignTop) layoutUtama.addWidget(frameDashboard, 1, 1, 5, 9, QtCore.Qt.AlignTop) layoutUtama.addWidget(frameBottomBar, 6, 1, 10, 9, QtCore.Qt.AlignTop) layoutUtama.addWidget(MenuBar, 13, 1, 10, 9, QtCore.Qt.AlignTop) layoutUtama.addWidget(LogoutBar, 18, 1, 10, 9, QtCore.Qt.AlignBottom) layoutUtama.setSpacing(10) self.authorityVisible() self.setLayout(layoutUtama) @pyqtSlot() def roomSlot(self): from GUI.RoomGUI import RoomView self.room = RoomView() self.room.show() @pyqtSlot() def bookSlot(self): from GUI.BookGUI import BookView self.book = BookView() self.book.show() @pyqtSlot() def logOutSlot(self): from GUI.AuthenticationGUI import LoginView self.login = LoginView() self.login.show() self.close() @pyqtSlot() def adminSlot(self): from GUI.administratorGUI import AdminView self.AdminView = AdminView() self.AdminView.show() @pyqtSlot() def empSlot(self): from GUI.EmployeeGUI import EmployeeView self.EmployeeView = EmployeeView() self.EmployeeView.show() @pyqtSlot() def recSlot(self): from GUI.ReceptionistGUI import ReceptionistView self.ReceptionistView = ReceptionistView() self.ReceptionistView.show() @pyqtSlot() def mcSlot(self): from GUI.Marketing_crewGUI import Marketing_crewView self.mcView = Marketing_crewView() self.mcView.show() @pyqtSlot() def userSlot(self): from View.UserView import UserView self.userView = UserView() self.userView.show() @pyqtSlot() def casSlot(self): from GUI.CashierGUI import CashierView self.casView = CashierView() self.casView.show() @pyqtSlot() def visSlot(self): from GUI.VisitorGUI import VisitorView self.visView = VisitorView() self.visView.show() def authorityVisible(self): authority = self.authority.text() if (authority == str(Authority.Employee)): self.btnAdministrator.setVisible(False) self.btnReceptionist.setVisible(False) self.btnMarketing_crew.setVisible(False) self.btnCashier.setVisible(False) self.btnVisitor.setVisible(False) self.btnCheckIn.setVisible(False) self.btnRoom.setVisible(False) elif (authority == str(Authority.Receptionist)): self.btnAdministrator.setVisible(False) self.btnEmployee.setVisible(False) self.btnMarketing_crew.setVisible(False) self.btnCashier.setVisible(False) self.btnVisitor.setVisible(False) elif (authority == str(Authority.Marketing_crew)): self.btnAdministrator.setVisible(False) self.btnEmployee.setVisible(False) self.btnReceptionist.setVisible(False) self.btnCashier.setVisible(False) self.btnVisitor.setVisible(False) self.btnCheckIn.setVisible(False) self.btnRoom.setVisible(False) elif (authority == str(Authority.Cashier)): self.btnAdministrator.setVisible(False) self.btnEmployee.setVisible(False) self.btnReceptionist.setVisible(False) self.btnMarketing_crew.setVisible(False) self.btnVisitor.setVisible(False) self.btnCheckIn.setVisible(False) self.btnRoom.setVisible(False) elif (authority == str(Authority.Visitor)): self.btnAdministrator.setVisible(False) self.btnEmployee.setVisible(False) self.btnReceptionist.setVisible(False) self.btnCashier.setVisible(False) self.btnMarketing_crew.setVisible(False) else: self.btnVisitor.setVisible(False)
def __init__(self): self.model = UserModel() self.view = UserView()
class UserController(object): #初始化,有model 和 view作为属性 def __init__(self): self.model = UserModel() self.view = UserView() #登录控制器 #传入的参数为登录提供的表单 例子为 {userName: passWord: } def UserLoginController(self, request): userName = request['userName'] passWord = request['passWord'] userId = self.model.login(userName, passWord) print(userId) res = self.view.UserLoginView(userId) return res #登录控制器 #传入的参数为注册提供的表单 例子为 {userName: passWord: } def UserRigisterController(self, request): userName = request['userName'] passWord = request['passWord'] userId = self.model.rigister(userName, passWord) res = self.view.UserRegisterView(userId) return res #登出控制器 #传入的参数为登出提供的表单 ,userId def UserLogOutController(self, request): userId = int(request['userId']) result = self.model.logout(userId) res = self.view.UserLogOutView(result) return res #删除控制器 #传入的参数为删除提供的表单 ,userId def UserCloseAccountController(self, request): userId = int(request['userId']) result = self.model.CloseAccount(userId) res = self.view.UserCloseView(result) return res #修改用户信息 def UserChangeInfoController(self, request): userId = request.get('userId', default=0) userName = request.get('userName', default=None) passWord = request.get('passWord', default=None) userIcon = request.get('userIcon', default=None) result = self.model.ChangeUserInfo(userId, userName=userName, passWord=passWord, userIcon=userIcon) res = self.view.UserChangeInfoView(result) return res #查询用户信息 def UserQueryInfoController(self, request): userId = request.get('userId', default=0) userName = request.get('userName', default=None) result = self.model.QueryUserInfo(userId=userId, userName=userName) res = self.view.UserQueryView(userDict=result) return res
def __init__(self): self.model = User() self.view = UserView() self.menu()
class MainMenuView(QWidget): def __init__(self, username, hakakses): super().__init__() self.showMaximized() self.setWindowFlag(QtCore.Qt.WindowCloseButtonHint, False) self.setWindowTitle("MENU") frameheadBar = QFrameComponent("white") headBarLayout = QGridLayout(frameheadBar) headBarLayout.setSpacing(5) self.btnPetugas = QPushButtonComponent("Data Petugas") self.btnAnggota = QPushButtonComponent("Data Anggota") self.btnTransaksi = QPushButtonComponent("Transaksi") self.btnBuku = QPushButtonComponent("Data Buku") self.btnUser = QPushButtonComponent("Data User") self.btnLogOut = QPushButtonComponent("Log Out") self.hak_akses = QLabel(str(hakakses)) self.username = QLabel(str(username)) framebodybar = QFrameComponent("maroon") bodyBarLayout = QHBoxLayout(framebodybar) headBarLayout.addWidget(self.btnPetugas, 0, 1) headBarLayout.addWidget(self.btnAnggota, 0, 2) headBarLayout.addWidget(self.btnBuku, 0, 3) headBarLayout.addWidget(self.btnTransaksi, 0, 4) headBarLayout.addWidget(self.btnUser, 0, 5) headBarLayout.addWidget(self.btnLogOut, 0, 6, QtCore.Qt.AlignBottom) bodyBarLayout.addWidget(self.username) bodyBarLayout.addWidget(self.hak_akses) layoutUtama = QGridLayout() layoutUtama.addWidget(frameheadBar, 0, 1, 1, 10, QtCore.Qt.AlignTop) layoutUtama.addWidget(framebodybar, 2, 1, 1, 10) self.btnPetugas.clicked.connect(lambda: self.openpetugas()) self.btnAnggota.clicked.connect(lambda: self.openanggota()) self.btnBuku.clicked.connect(lambda: self.openbuku()) self.btnUser.clicked.connect(lambda: self.openuser()) self.btnTransaksi.clicked.connect(lambda: self.openpeminjaman()) self.btnLogOut.clicked.connect(lambda: self.openlogout()) self.cekhak_akses() self.setLayout(layoutUtama) self.show() def openpetugas(self): from View.PetugasView import PetugasView self.petugasview = PetugasView() self.petugasview.show() def openanggota(self): from View.AnggotaView import AnggotaView self.anggotaview = AnggotaView() self.anggotaview.show() def openbuku(self): from View.BukuView import BukuView self.bukuview = BukuView() self.bukuview.show() def openuser(self): from View.UserView import UserView self.userview = UserView() self.userview.show() def openpeminjaman(self): from View.PeminjamanView import PeminjamanView self.pinjamview = PeminjamanView() self.pinjamview.show() # # def openpengembalian(self): # from View.PengembalianView import PengembalianView # self.kembaliview = PengembalianView() # self.kembaliview.show() # self.kembaliview.exec_() # # def openlogout(self): from View.LoginView import LoginView self.loginview = LoginView() self.loginview.show() self.close() def cekhak_akses(self): hak_akses = self.hak_akses.text() if (hak_akses == str(HakAkses.Petugas)): self.btnPetugas.setVisible(False) self.btnUser.setVisible(False) elif (hak_akses == str(HakAkses.Admin)): self.btnPetugas.setVisible(True) self.btnUser.setVisible(True)
def openuser(self): from View.UserView import UserView self.userview = UserView() self.userview.show()