Danis plugin ;) ;D 0_0

This commit is contained in:
2024-11-27 16:31:37 +01:00
parent 4a5545ce18
commit 77052d8ef7
2 changed files with 42 additions and 9 deletions

View File

@@ -12,18 +12,43 @@ CUSTOMER_COLUMN_NAMES = \
"gecos": "Information"
}
CUSTOMER_COLUMN_INDEX = \
{
"userid": 0,
"username": 1,
"password": 2,
"enabled": 3,
"roleid": 4,
"gecos": 5
}
CUSTOMER_COLUMN = \
{
0: "userid",
1: "username",
2: "password",
3: "enabled",
4: "roleid",
5: "gecos"
}
class BusinessModel(QAbstractTableModel):
__visible_index = {}
__col_name = ""
def __init__(self, con, cols):
super().__init__()
self.__con = con
self.__visible_columns = cols
self.__data = self.__getData()
for col in cols:
self.__visible_index[col] = CUSTOMER_COLUMN_INDEX[col]
def __getData(self):
cursor = self.__con.cursor()
cursor.execute("SELECT * FROM users")
self.__all_cols = [desc[0] for desc in cursor.description]
#print(self.__all_cols)
rows = cursor.fetchall()
return rows
@@ -35,21 +60,28 @@ class BusinessModel(QAbstractTableModel):
def data(self, index, role= Qt.DisplayRole):
if role == Qt.DisplayRole:
# row = index.row()
row = self.__data[index.row()]
col_name = self.__visible_columns[index.column()]
col_index = self.__all_cols.index(col_name)
self.__col_name = self.__visible_columns[index.column()]
col_index = self.__visible_index[self.__col_name]
return row[col_index]
return None
def headerData(self, section, orientation, role= Qt.DisplayRole):
#header= ["ID", "Benutzername", "Passwort", "Information", "Rolle", "Aktiv"]
if orientation == Qt.Horizontal and role ==Qt.DisplayRole:
#return header[section]
col_name = self.__visible_columns[section]
return CUSTOMER_COLUMN_NAMES.get(col_name, col_name)
self.__col_name = self.__visible_columns[section]
return CUSTOMER_COLUMN_NAMES.get(self.__col_name, self.__col_name)
return super().headerData(section, orientation, role)
#return None
@Slot(dict)
def setVisibleColumns(self, cols):
self.__visible_columns.clear()
self.__visible_index.clear()
for col, val in cols.items():
self.__visible_index[val] = CUSTOMER_COLUMN_INDEX[cols[col]]
self.__visible_columns.append(cols[col])
# self.headerDataChanged.emit()
# self.dataChanged.emit()
self.layoutChanged.emit()
@Slot(int)
def onRowClicked(self, row):