# This Python file uses the following encoding: utf-8 from PySide6.QtCore import QAbstractTableModel, QModelIndex, Qt, Slot, Signal from .BusinessDAO import BusinessDAO from ..PyqcrmFlags import PyqcrmFlags # USERS TABLE # CUSTOMER_COLUMN_NAMES = \ # { # "userid": "Identification", # "username": "Benutzername", # "password": "Passwort", # "enabled": "Aktiv", # "roleid": "Rolle", # "gecos": "Information" # } # # CUSTOMER_COLUMN_INDEX = \ # { # "userid": 0, # "username": 1, # "password": 2, # "enabled": 3, # "roleid": 4, # "gecos": 5 # } ####################################### # COLS = \ # { # "businessid": "Kundennummer", # "company": "Firma", # "street": "Straße", # "postcodeid": "PLZ", # "phone": "Telefon", # "mobilephone": "Mobil", # "email": "E-Mail", # "homepage": "Homepage", # "director": "Geschäftsführer", # "contactpersonid": "Ansprechpartner", # "info": "Info", # "btid": "Typ", # } # COLS_INDEX = \ # { # "businessid": 0, # "company": 1, # "street": 2, # "postcodeid": 3, # "phone": 4, # "mobilephone": 5, # "email": 6, # "homepage": 7, # "director": 8, # "contactpersonid": 9, # "info": 10, # "btid": 11, # } class BusinessModel(QAbstractTableModel): __visible_index = {} __col_name = "" def __init__(self): super().__init__() self.__data = self.__getData() def __getData(self, criterion = "Alle"): rows, self.__visible_columns = BusinessDAO().getBusiness(criterion) return rows def rowCount(self, parent= QModelIndex()): return len (self.__data) def columnCount(self, parent= QModelIndex()): return len(self.__visible_columns) - 1 def data(self, index, role= Qt.DisplayRole): if role == Qt.DisplayRole: row = self.__data[index.row()] return row[index.column() + 1] return None def headerData(self, section, orientation, role= Qt.DisplayRole): if orientation == Qt.Horizontal and role ==Qt.DisplayRole: self.__col_name = self.__visible_columns[section + 1] return self.__col_name return super().headerData(section, orientation, role) ########################NOT READY################################# # @Slot(dict) # def setVisibleColumns(self, cols): # self.__visible_columns.clear() # self.__visible_index.clear() # for col, val in cols.items(): # self.__visible_index[val] = COLS_INDEX[cols[col]] # self.__visible_columns.append(cols[col]) # # self.headerDataChanged.emit() # # self.dataChanged.emit() # self.layoutChanged.emit() ################################################################# @Slot(int) def onRowClicked(self, row): print(row) @Slot(str) def viewCriterion(self, criterion): self.beginResetModel() self.__data = self.__getData(criterion) self.endResetModel() @Slot(dict, int) def addBusiness(self, business, contact_id): BusinessDAO().addBusiness(business, contact_id) self.__data = self.__getData() @Slot(dict) def setContact(self, contact): pass def updateTable(self): pass