def load(self, progress=True): start = datetime.now() self.activities = ActivityManager(self.mem) self.weightwishes = WeightWishManager(self.mem) self.companies = CompanyAllManager(self.mem) self.companies.load_all() self.foodtypes = FoodTypeManager_all(self.mem) self.additiverisks = AdditiveRiskManager_all(self.mem) self.additives = AdditiveManager_all(self.mem) self.products = ProductAllManager(self.mem) self.products.load_all() self.elaboratedproducts = ProductElaboratedManager_from_sql( self.mem, "select * from elaboratedproducts order by name") self.users = UserManager_from_db(self.mem, "select * from users", progress) self.mem.user = self.mem.data.users.find_by_id( int(self.mem.settings.value("mem/currentuser", 1))) if self.mem.user == None: self.mem.user = self.mem.data.users.find_by_id( 1) #For empty databases (contribution) self.mem.user.needStatus(1) debug("DBData took {}".format(datetime.now() - start))
def __init__(self, mem, only_system_products=False, parent=None): QWidget.__init__(self, parent) self.setupUi(self) self.mem = mem self.tblProducts.settings(self.mem.settings, "wdgProducts", "tblProducts") self.tblProducts.table.customContextMenuRequested.connect( self.on_tblProducts_customContextMenuRequested) self.tblProducts.table.itemSelectionChanged.connect( self.on_tblProducts_itemSelectionChanged) if only_system_products == True: self.products = ProductManager(self.mem) self.products.load_from_db("select * from products order by name") self.products.qtablewidget(self.products, self.tblProducts) else: self.products = ProductAllManager(self.mem) self.products.qtablewidget(self.tblProducts)
def __init__(self, mem, only_system_products=False, parent=None): QWidget.__init__(self, parent) self.setupUi(self) self.mem = mem self.tblProducts.setSettings(self.mem.settings, "wdgProducts", "tblProducts") self.tblProducts.table.customContextMenuRequested.connect( self.on_tblProducts_customContextMenuRequested) if only_system_products == True: self.products = ProductManager(self.mem) self.products.load_from_db("select * from products order by name") else: self.products = ProductAllManager(self.mem) self.cmb.setCurrentIndex( int(self.mem.settings.value("wdgProducts/cmb", "0"))) self.products.qtablewidget(self.tblProducts)
class wdgProducts(QWidget, Ui_wdgProducts): ## @param only_system_products Boolean. True only system products. False all products def __init__(self, mem, only_system_products=False, parent=None): QWidget.__init__(self, parent) self.setupUi(self) self.mem = mem self.tblProducts.settings(self.mem.settings, "wdgProducts", "tblProducts") self.tblProducts.table.customContextMenuRequested.connect( self.on_tblProducts_customContextMenuRequested) self.tblProducts.table.itemSelectionChanged.connect( self.on_tblProducts_itemSelectionChanged) if only_system_products == True: self.products = ProductManager(self.mem) self.products.load_from_db("select * from products order by name") self.products.qtablewidget(self.products, self.tblProducts) else: self.products = ProductAllManager(self.mem) self.products.qtablewidget(self.tblProducts) @pyqtSlot() def on_actionProductDelete_triggered(self): if self.products.selected.is_deletable() == False: qmessagebox( self. tr("This product can't be removed, because is marked as not remavable" )) return if self.products.selected.elaboratedproducts_id != None: #Elaborated: qmessagebox(self.tr("Not developed yet, for elaborated product")) return reply = QMessageBox.question( None, self.tr('Asking your confirmation'), self. tr("This action can't be undone.\nDo you want to delete this record?" ), QMessageBox.Yes, QMessageBox.No) if reply == QMessageBox.Yes: self.products.selected.delete() self.mem.con.commit() self.mem.data.products.remove(self.products.selected) self.on_cmd_pressed() @pyqtSlot() def on_actionProductNew_triggered(self): from caloriestracker.ui.frmProductsAdd import frmProductsAdd w = frmProductsAdd(self.mem, None, self) w.exec_() self.on_cmd_pressed() @pyqtSlot() def on_actionProductEdit_triggered(self): if self.products.selected.system_product == True: from caloriestracker.ui.frmProductsAdd import frmProductsAdd w = frmProductsAdd(self.mem, self.products.selected, self) if self.mem.isProductsMaintainerMode() == False: w.setReadOnly() w.exec_() elif self.products.selected.system_product == False: if self.products.selected.elaboratedproducts_id == None: from caloriestracker.ui.frmProductsAdd import frmProductsAdd w = frmProductsAdd(self.mem, self.products.selected, self) w.exec_() self.on_cmd_pressed() else: #Elaborated product from caloriestracker.ui.frmProductsElaboratedAdd import frmProductsElaboratedAdd elaborated = self.mem.data.elaboratedproducts.find_by_id( self.products.selected.elaboratedproducts_id) w = frmProductsElaboratedAdd(self.mem, elaborated, self) w.exec_() self.on_cmd_pressed() @pyqtSlot() def on_actionFormats_triggered(self): from caloriestracker.ui.frmFormats import frmFormats w = frmFormats(self.mem, self.products.selected, self) w.exec_() def on_txt_returnPressed(self): self.on_cmd_pressed() @pyqtSlot(str) def on_txt_textChanged(self, text): self.on_cmd_pressed() def on_cmd_pressed(self): del self.products self.products = self.mem.data.products.ObjectManager_with_name_contains_string( self.txt.text(), False, *self.mem.data.products.args) self.products.setSelectionMode(ManagerSelectionMode.Object) self.products.qtablewidget(self.tblProducts) self.lblFound.setText( self.tr("{} products found").format(self.products.length())) def on_tblProducts_customContextMenuRequested(self, pos): menu = QMenu() menu.addAction(self.actionProductNew) menu.addAction(self.actionProductDelete) menu.addAction(self.actionProductEdit) menu.addSeparator() menu.addAction(self.actionFormats) #Enabled disabled if self.products.selected == None: self.actionProductDelete.setEnabled(False) self.actionProductEdit.setEnabled(False) self.actionFormats.setEnabled(False) else: self.actionProductDelete.setEnabled(True) self.actionProductEdit.setEnabled(True) self.actionFormats.setEnabled(True) menu.addMenu(self.tblProducts.qmenu()) menu.exec_(self.tblProducts.table.mapToGlobal(pos)) def on_tblProducts_itemSelectionChanged(self): self.products.cleanSelection() for i in self.tblProducts.table.selectedItems(): if i.column() == 0: #only once per row self.products.selected = self.products.arr[i.row()] debug("Selected product: " + str(self.products.selected))