from PySide6.QtCore import QAbstractTableModel, QModelIndex, Qt, Slot, Signal from .EmployeeDAO import EmployeeDAO from ..PyqcrmFlags import PyqcrmFlags, PyqcrmAppliEmpyFlags from ..ConfigLoader import ConfigLoader class EmployeeModel(QAbstractTableModel): __data = None __employee_dao = None __visible_index = None __visible_columns = None __col_name = "" __employee_dao = None def __init__(self): super().__init__() self.__employee_dao = EmployeeDAO() self.__employee_dao.newEmployeeAdded.connect(self.__refreshView) self.__conf = ConfigLoader().getConfig() self.__key = self.__conf['pyqcrm']['ENCRYPTION_KEY'] self.__getData() @Slot(dict, bool) def addEmployee(self, new_employee, employee = False): print(new_employee) self.__employee_dao.addEmployee(new_employee, self.__key, employee) @Slot(str) def viewCriterion(self, criterion): self.__getData(criterion) @Slot() def __refreshView(self): self.__getData() def __getData(self, criterion = "Alle", processed = False): self.beginResetModel() rows, self.__visible_columns = self.__employee_dao.getEmployees(self.__key, criterion, 0, processed) self.__data = rows self.endResetModel() def rowCount(self, parent= QModelIndex()): return len (self.__data) def columnCount(self, parent= QModelIndex()): return len(self.__visible_columns) - 2 def data(self, index, role= Qt.DisplayRole): if role == Qt.DisplayRole: row = self.__data[index.row()] return row[index.column() + 2] 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 + 2] return self.__col_name return super().headerData(section, orientation, role)