def removeRows(self, position): row_count = self.rowCount() row_count -= 1 self.beginRemoveRows(QtCore.QModelIndex(), row_count, row_count) if isinstance(position, int): document_id = self.user_data[position][0] databaseOperations.remove_data(document_id, self.table_name) elif isinstance(position, QtCore.QModelIndex): row_id = position.row() document_id = self.user_data[row_id][0] databaseOperations.remove_data(document_id, self.table_name) elif isinstance(position, list): for data in self.user_data: k = 0 for i in range(len(position)): if data[i + 1] == position[i].data(): k += 1 if (k == len(position)): rowid = data[0] databaseOperations.remove_data(rowid, self.table_name) else: return False self.user_data = databaseOperations.get_multiple_data(self.table_name) # print(self.user_data) self.endRemoveRows() return True
def insertRows_vendor_part(self, details): row_count = len(self.user_data) self.beginInsertRows(QtCore.QModelIndex(), row_count, row_count) empty_data = [] if len(details) == 1: #Vendor for key in self.columns: if not key == 'id_': if key == "Vendor Name": empty_data.append(str(details[0])) else: empty_data.append("") print(empty_data) document_id = databaseOperations.insert_data( empty_data, self.column_names, self.table_name) else: for key in self.columns: if not key == 'id_': if key == "Part Name": empty_data.append(str(details[0])) elif key == "Vehicle Type": empty_data.append(str(details[1])) else: empty_data.append("") document_id = databaseOperations.insert_data( empty_data, self.column_names, self.table_name) row_count += 1 new_data = databaseOperations.get_single_data(row_count, self.table_name) self.user_data = databaseOperations.get_multiple_data(self.table_name) self.endInsertRows() return True
def __init__(self, table): QtCore.QAbstractTableModel.__init__(self) self.table_name = table.name self.user_data = databaseOperations.get_multiple_data(self.table_name) self.columns = table.headers self.column_names = table.column_names
def removeRows(self, position): row_count = self.rowCount() row_count -= 1 self.beginRemoveRows(QtCore.QModelIndex(), row_count, row_count) if isinstance(position, int): document_id = self.user_data[position][0] else: row_id = position.row() document_id = self.user_data[row_id][0] # print("To be deleted: {}".format(document_id)) print(document_id) databaseOperations.remove_data(document_id, self.table_name) self.user_data = databaseOperations.get_multiple_data(self.table_name) # print(self.user_data) self.endRemoveRows() return True
def insertRows(self): row_count = len(self.user_data) self.beginInsertRows(QtCore.QModelIndex(), row_count, row_count) empty_data = [] for key in self.columns: if not key == 'id_': empty_data.append("") document_id = databaseOperations.insert_data(empty_data, self.column_names, self.table_name) row_count += 1 new_data = databaseOperations.get_single_data(row_count, self.table_name) self.user_data = databaseOperations.get_multiple_data(self.table_name) self.endInsertRows() return True
def removeRows_vendor_part(self, details): row_count = self.rowCount() row_count -= 1 self.beginRemoveRows(QtCore.QModelIndex(), row_count, row_count) if len(details) == 1: #Vendor databaseOperations.remove_data_vendor_part(details, self.table_name) else: databaseOperations.remove_data_vendor_part(details, self.table_name) self.user_data = databaseOperations.get_multiple_data(self.table_name) # print(self.user_data) self.endRemoveRows() return True
def __init__(self): QMainWindow.__init__(self) self.ui = Ui_MainWindow() self.ui.setupUi(self) ## TOGGLE MENU ######################################################################## self.ui.Btn_Toggle.clicked.connect( lambda: UIFunctions.toggleMenu(self, 200, True)) ## Current Page self.ui.Pages_Widget.setCurrentWidget(self.ui.home_page) self.ui.Btn_Customer.clicked.connect( lambda: Customer.show_customer(self)) self.ui.Btn_add_customer.clicked.connect( lambda: Customer.add_customer(self)) self.ui.Btn_Home.clicked.connect(self.show_home) # self.customer_data = CustomerModel.objects() # for i in self.customer_data[:]: # data = [i.first_name, i.last_name, i.phone_no, i.office_no, i.email, i.address] # self.model = CustomerTableModel(data) # self.ui.tableView.setModel(self.model) # for i in customer: # result = [i.first_name, i.last_name, i.phone_no, i.office_no, i.email, i.address] # print(result) # for key in customer[0]: # print(key)key self.customer_data = databaseOperations.get_multiple_data() self.model = CustomerTableModel(self.customer_data) self.ui.tableView.setModel(self.model) self.ui.tableView.setItemDelegate(InLineEditDelegate()) self.ui.tableView.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.ui.tableView.customContextMenuRequested.connect(self.context_menu) self.ui.tableView.verticalHeader().setDefaultSectionSize(50) self.ui.tableView.setColumnWidth(0, 100) self.ui.tableView.hideColumn(0) ## SHOW ==> MAIN WINDOW ######################################################################## self.show()
def setData(self, index, value, role=QtCore.Qt.EditRole): """ Edit data in table cells :param index: :param value: :param role: :return: """ if index.isValid(): selected_row = self.user_data[index.row()] selected_column = self.columns[index.column()] new_data = list(selected_row) new_data[index.column()] = value self.dataChanged.emit(index, index, (QtCore.Qt.DisplayRole, )) ok = databaseOperations.update_existing(new_data[0], new_data[1:], self.column_names, self.table_name) self.user_data = databaseOperations.get_multiple_data( self.table_name) if ok: return True return False
import abc import databaseOperations ## GLOBALS # VENDORS VENDORS_TABLE_NAME = "Vendors" VENDORS_DATA = databaseOperations.get_multiple_data(VENDORS_TABLE_NAME) VENDORS_HEADERS = ["id_", "Name", "Address", "Contact"] VENDORS_COLUMN_NAMES = ["name", "address", "contact"] # PARTS PARTS_TABLE_NAME = "Parts" PARTS_DATA = databaseOperations.get_multiple_data(PARTS_TABLE_NAME) PARTS_HEADERS = ["id_", "Name", "Vehicle Type", "Rack Number", "Threshold"] PARTS_COLUMN_NAMES = ["part_name", "vehicle_type", "rack_number", "Threshold"] # STATS STATS_TABLE_NAME = "Stats" STATS_DATA = databaseOperations.get_multiple_data(STATS_TABLE_NAME) STATS_HEADERS = [ "id_", "Vendor Name", "Part Name", "Vehicle Type", "Stock", "Cost Price" ] STATS_COLUMN_NAMES = [ "vendor_name", "part_name", "vehicle_type", "stock", "cp" ] # INVOICE INVOICE_TABLE_NAME = "Invoice" INVOICE_DATA = databaseOperations.get_multiple_data(INVOICE_TABLE_NAME) INVOICE_HEADERS = [ "id_", "Invoice Number", "Part Name", "Vehicle Type", "Price", "Volume", "Amount", "Vendor Name", "Cost Price"