def __init__(self, pView, pModel): self.view = pView self.model = pModel # Data gathering self.categories = self.model.query(I.GET_CATEGORIES) # Loads initial data for category in self.categories: self.view.ui.Search_CategoryInput.addItem(category[1]) self.view.ui.Search_CategoryInput.addItem('ANY') self.view.ui.Search_CategoryInput.setCurrentIndex(len(self.categories)) self.view.ui.Search_PriceInput.addItem('50') self.view.ui.Search_PriceInput.addItem('100') self.view.ui.Search_PriceInput.addItem('200') self.view.ui.Search_PriceInput.addItem('300') self.view.ui.Search_PriceInput.addItem('500') self.view.ui.Search_PriceInput.addItem('1000') self.view.ui.Search_PriceInput.addItem('ANY') self.view.ui.Search_PriceInput.setCurrentIndex(6) #self.view.ui.Search_TableProductInputsetEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) self.view.ui.Search_TableProductInput.setColumnCount(4) self.view.ui.Search_TableProductInput.cellDoubleClicked.connect(self.selectProduct) #self.view.ui.Search_TableProductInput.viewport().installEventFilter(self.view) self.view.ui.Search_SearchButton.clicked.connect(self.searchProduct) self.productviewController = ProductviewController(self.view, self.model)
def __init__(self, pView, pModel): self.view = pView self.model = pModel self.view.ui.RecentlySeen_ShowButton.setText("Refresh") self.view.ui.RecentlySeen_ShowButton.clicked.connect(self.refreshSeen) self.view.ui.RecentlySeen_TableDisplay.setColumnCount(4) self.view.ui.RecentlySeen_TableDisplay.setHorizontalHeaderLabels(['ID', 'Product', 'Price', 'Category']) self.view.ui.RecentlySeen_TableDisplay.cellDoubleClicked.connect(self.selectProduct) self.productviewController = ProductviewController(self.view, self.model)
class SeenController: # Connects the login view to the model. def __init__(self, pView, pModel): self.view = pView self.model = pModel self.view.ui.RecentlySeen_ShowButton.setText("Refresh") self.view.ui.RecentlySeen_ShowButton.clicked.connect(self.refreshSeen) self.view.ui.RecentlySeen_TableDisplay.setColumnCount(4) self.view.ui.RecentlySeen_TableDisplay.setHorizontalHeaderLabels(['ID', 'Product', 'Price', 'Category']) self.view.ui.RecentlySeen_TableDisplay.cellDoubleClicked.connect(self.selectProduct) self.productviewController = ProductviewController(self.view, self.model) # GETS SEEN INFORMATION OF USER def refreshSeen(self): self.view.ui.RecentlySeen_TableDisplay.clearContents() try: self.products = self.model.query(I.GET_SEEN, (self.model.connectedUser.id,)) if self.products == []: print('No products seen') else: self.view.ui.RecentlySeen_TableDisplay.setRowCount(len(self.products)) for i in range(len(self.products)): for j in range(4): item = QtWidgets.QTableWidgetItem(str(self.products[i][j])) item.setFlags( Qt.ItemIsSelectable | Qt.ItemIsEnabled ) self.view.ui.RecentlySeen_TableDisplay.setItem(i,j,item) except Exception as err: msg = QtWidgets.QMessageBox() msg.setWindowTitle('ERROR') msg.setText(str(err)) msg.setIcon(QtWidgets.QMessageBox.Critical) msg.exec_() def selectProduct(self, row, column): #print("SELECTED PRODUCT ID " + self.view.ui.Wishlist_WishlistTableInput.item(row, 0).text()) try: self.productviewController.setProduct(int(self.view.ui.RecentlySeen_TableDisplay.item(row, 0).text())) self.view.showProduct() except Exception as err: msg = QtWidgets.QMessageBox() msg.setWindowTitle('ERROR') msg.setText(str(err)) msg.setIcon(QtWidgets.QMessageBox.Critical) msg.exec_()
def __init__(self, pView, pModel): self.view = pView self.model = pModel self.view.ui.Wishlist_ShowButton.setText("Refresh") self.view.ui.Wishlist_ShowButton.clicked.connect(self.refreshWishlist) self.view.ui.Wishlist_WishlistTableInput.setColumnCount(4) self.view.ui.Wishlist_WishlistTableInput.setHorizontalHeaderLabels( ['ID', 'Product', 'Price', 'Category']) self.view.ui.Wishlist_WishlistTableInput.cellDoubleClicked.connect( self.selectProduct) self.productviewController = ProductviewController( self.view, self.model)
def __init__(self, pView, pModel): self.view = pView self.model = pModel self.view.ui.Cart_ShowCartButton.setText("Refresh") self.view.ui.Cart_ShowCartButton.clicked.connect(self.refreshCart) self.view.ui.Cart_RemoveButton.clicked.connect(self.removeProduct) self.view.ui.Cart_CartTableInput.setColumnCount(4) self.view.ui.Cart_CartTableInput.setHorizontalHeaderLabels(['ID', 'Product', 'Price', 'Category']) self.view.ui.Cart_CartTableInput.cellDoubleClicked.connect(self.selectProduct) #self.view.ui.Cart_CartTableInput.cellClicked.connect(partial(self.selectItem, item)) self.productviewController = ProductviewController(self.view, self.model) self.view.ui.Cart_BuyButton.clicked.connect(self.buyProducts)
class SearchController: ''' Connects the login view to the model. ''' def __init__(self, pView, pModel): self.view = pView self.model = pModel # Data gathering self.categories = self.model.query(I.GET_CATEGORIES) # Loads initial data for category in self.categories: self.view.ui.Search_CategoryInput.addItem(category[1]) self.view.ui.Search_CategoryInput.addItem('ANY') self.view.ui.Search_CategoryInput.setCurrentIndex(len(self.categories)) self.view.ui.Search_PriceInput.addItem('50') self.view.ui.Search_PriceInput.addItem('100') self.view.ui.Search_PriceInput.addItem('200') self.view.ui.Search_PriceInput.addItem('300') self.view.ui.Search_PriceInput.addItem('500') self.view.ui.Search_PriceInput.addItem('1000') self.view.ui.Search_PriceInput.addItem('ANY') self.view.ui.Search_PriceInput.setCurrentIndex(6) #self.view.ui.Search_TableProductInputsetEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) self.view.ui.Search_TableProductInput.setColumnCount(4) self.view.ui.Search_TableProductInput.cellDoubleClicked.connect(self.selectProduct) #self.view.ui.Search_TableProductInput.viewport().installEventFilter(self.view) self.view.ui.Search_SearchButton.clicked.connect(self.searchProduct) self.productviewController = ProductviewController(self.view, self.model) def searchProduct(self): self.view.ui.Search_TableProductInput.clear() self.view.ui.Search_TableProductInput.setHorizontalHeaderLabels(['ID', 'Product', 'Price', 'Category']) try: # GET PARAMETERS FROM INPUT category = str(self.view.ui.Search_CategoryInput.currentText()) if category == 'ANY': category = None price = self.view.ui.Search_PriceInput.currentText() if price == 'ANY': price = 1000000 keyword = self.view.ui.Search_ProducNametInput.text().strip() # EXECUTES SEARCH PRODUCT QUERY products = self.model.query(I.PRODUCT_SEARCH, (keyword, category, int(price))) if products == []: print('No products match the search parameters!') else: self.view.ui.Search_TableProductInput.setRowCount(len(products)) #item = QtWidgets.QTableWidgetItem("e") for i in range(len(products)): for j in range(4): item = QtWidgets.QTableWidgetItem(str(products[i][j])) item.setFlags( Qt.ItemIsSelectable | Qt.ItemIsEnabled ) self.view.ui.Search_TableProductInput.setItem(i,j,item) except Exception as err: msg = QtWidgets.QMessageBox() msg.setWindowTitle('ERROR') msg.setText(str(err)) msg.setIcon(QtWidgets.QMessageBox.Critical) msg.exec_() def selectProduct(self, row, column): #print("SELECTED PRODUCT ID " + self.view.ui.Search_TableProductInput.item(row, 0).text()) self.productviewController.setProduct(int(self.view.ui.Search_TableProductInput.item(row, 0).text())) self.view.showProduct()
class CartController: # Connects the login view to the model. def __init__(self, pView, pModel): self.view = pView self.model = pModel self.view.ui.Cart_ShowCartButton.setText("Refresh") self.view.ui.Cart_ShowCartButton.clicked.connect(self.refreshCart) self.view.ui.Cart_RemoveButton.clicked.connect(self.removeProduct) self.view.ui.Cart_CartTableInput.setColumnCount(4) self.view.ui.Cart_CartTableInput.setHorizontalHeaderLabels(['ID', 'Product', 'Price', 'Category']) self.view.ui.Cart_CartTableInput.cellDoubleClicked.connect(self.selectProduct) #self.view.ui.Cart_CartTableInput.cellClicked.connect(partial(self.selectItem, item)) self.productviewController = ProductviewController(self.view, self.model) self.view.ui.Cart_BuyButton.clicked.connect(self.buyProducts) # GETS AND DISPLAYS THE CART INFORMATION def refreshCart(self): self.view.ui.Cart_CartTableInput.clearContents() try: self.products = self.model.query(I.GET_CART, (self.model.connectedUser.id,)) if self.products == []: print('No products on cart') else: self.view.ui.Cart_CartTableInput.setRowCount(len(self.products)) for i in range(len(self.products)): for j in range(4): item = QtWidgets.QTableWidgetItem(str(self.products[i][j])) item.setFlags( Qt.ItemIsSelectable | Qt.ItemIsEnabled ) self.view.ui.Cart_CartTableInput.setItem(i,j,item) except Exception as err: msg = QtWidgets.QMessageBox() msg.setWindowTitle('ERROR') msg.setText(str(err)) msg.setIcon(QtWidgets.QMessageBox.Critical) msg.exec_() def selectProduct(self, row, column): #print("SELECTED PRODUCT ID " + self.view.ui.Wishlist_WishlistTableInput.item(row, 0)) try: self.productviewController.setProduct(int(self.view.ui.Cart_CartTableInput.item(row, 0).text())) self.view.showProduct() except Exception as err: msg = QtWidgets.QMessageBox() msg.setWindowTitle('ERROR') msg.setText(str(err)) msg.setIcon(QtWidgets.QMessageBox.Critical) msg.exec_() #def selectItem(self, item): # print("SELECTED ROW: " + item.row()) def removeProduct(self): #print(self.view.ui.Cart_CartTableInput.selectedItems()[0].text()) row = self.view.ui.Cart_CartTableInput.selectedItems()[0].row() productID = int(self.view.ui.Cart_CartTableInput.item(row, 0).text()) userID = self.model.connectedUser.id try: self.model.query(I.REMOVE_CART, (productID,userID)) self.model.commit() self.refreshCart() except Exception as err: msg = QtWidgets.QMessageBox() msg.setWindowTitle('ERROR') msg.setText(str(err)) msg.setIcon(QtWidgets.QMessageBox.Critical) msg.exec_() def buyProducts(self): for i in range(self.view.ui.Cart_CartTableInput.rowCount()): try: productID = int(self.view.ui.Cart_CartTableInput.item(i, 0).text()) if productID != "": self.model.query(I.PURCHASE_PRODUCTS, (productID, self.model.connectedUser.id)) self.model.query(I.REMOVE_CART, (productID, self.model.connectedUser.id)) self.model.commit() except Exception as err: msg = QtWidgets.QMessageBox() msg.setWindowTitle('ERROR') msg.setText(str(err)) msg.setIcon(QtWidgets.QMessageBox.Critical) msg.exec_() self.refreshCart() msg = QtWidgets.QMessageBox() msg = QtWidgets.QMessageBox() msg.setWindowTitle("Success") msg.setText("Products purchased successfully") msg.exec_()