Compare commits

3 Commits

Author SHA256 Message Date
857a8b6fa0 hallo 2024-12-16 08:57:25 +01:00
40d308d965 nochmal 2024-12-16 08:52:57 +01:00
e28c68f643 AddCustomer, AddContact finished 2024-12-15 20:44:44 +01:00
5 changed files with 48 additions and 15 deletions

View File

@@ -34,6 +34,7 @@ class ConfigLoader(QObject):
# print(f"In {__file__} file, __init__()") # print(f"In {__file__} file, __init__()")
self.config_dir = user_config_dir() + '/pyqcrm' self.config_dir = user_config_dir() + '/pyqcrm'
config_dir = Path(self.config_dir) config_dir = Path(self.config_dir)
if config_dir.exists(): if config_dir.exists():
self.__configLoad() self.__configLoad()
if self.__config: if self.__config:
@@ -41,6 +42,7 @@ class ConfigLoader(QObject):
else: else:
config_dir.mkdir(0o750, True, True) config_dir.mkdir(0o750, True, True)
@Slot(dict, result= bool) @Slot(dict, result= bool)
def setConfig(self, app_config): def setConfig(self, app_config):
# print(f"In {__file__} file, setConfig()") # print(f"In {__file__} file, setConfig()")
@@ -212,3 +214,7 @@ class ConfigLoader(QObject):
self.__config['pyqcrm']['ENCRYPTION_KEY'] = enc_key self.__config['pyqcrm']['ENCRYPTION_KEY'] = enc_key
self.__saveConfig() self.__saveConfig()
def getKey(self):
return self.__config['pyqcrm']['ENCRYPTION_KEY']

View File

@@ -16,6 +16,8 @@ class BusinessDAO(QObject):
if self.__con: if self.__con:
self.__cur = self.__con.cursor() self.__cur = self.__con.cursor()
def getBusiness(self, enc_key, criterion = "Alle"): def getBusiness(self, enc_key, criterion = "Alle"):
if self.__cur: if self.__cur:
self.__cur.callproc("getCustomerView", (enc_key, criterion,)) self.__cur.callproc("getCustomerView", (enc_key, criterion,))
@@ -24,10 +26,13 @@ class BusinessDAO(QObject):
else: else:
return None, None return None, None
def addBusiness(self, data, contact_id):
def addBusiness(self, key, data, contact_id):
try: try:
if self.__cur: if self.__cur:
self.__cur.callproc("addBusiness", (json.dumps(data), contact_id)) self.__cur.callproc("addBusiness", (key, json.dumps(data), contact_id))
self.__con.commit() self.__con.commit()
self.newBusinessAdded.emit() self.newBusinessAdded.emit()

View File

@@ -68,15 +68,23 @@ class BusinessModel(QAbstractTableModel):
def __init__(self): def __init__(self):
super().__init__() super().__init__()
self.__business_dao = BusinessDAO() self.__business_dao = BusinessDAO()
self.__business_dao.newBusinessAdded.connect(self.__refreshView) self.__business_dao.newBusinessAdded.connect(self.__refreshView)
self.__conf = ConfigLoader().getConfig() self.__conf = ConfigLoader().getConfig()
self.__key = self.__conf['pyqcrm']['ENCRYPTION_KEY'] self.__key = self.__conf['pyqcrm']['ENCRYPTION_KEY']
self.__getData() self.__getData()
def __getData(self, criterion = "Alle"): def __getData(self, criterion = "Alle"):
self.beginResetModel() self.beginResetModel()
rows, self.__visible_columns = self.__business_dao.getBusiness(self.__key, criterion) rows, self.__visible_columns = self.__business_dao.getBusiness(self.__key, criterion)
self.__data = rows self.__data = rows
self.endResetModel() self.endResetModel()
@@ -84,17 +92,21 @@ class BusinessModel(QAbstractTableModel):
return len (self.__data) return len (self.__data)
def columnCount(self, parent= QModelIndex()): def columnCount(self, parent= QModelIndex()):
return len(self.__visible_columns) - 1 #return len(self.__visible_columns) - 1
return len(self.__visible_columns)
def data(self, index, role= Qt.DisplayRole): def data(self, index, role= Qt.DisplayRole):
if role == Qt.DisplayRole: if role == Qt.DisplayRole:
row = self.__data[index.row()] row = self.__data[index.row()]
return row[index.column() + 1] #return row[index.column() + 1]
return row[index.column()]
return None return None
def headerData(self, section, orientation, role= Qt.DisplayRole): def headerData(self, section, orientation, role= Qt.DisplayRole):
if orientation == Qt.Horizontal and role ==Qt.DisplayRole: if orientation == Qt.Horizontal and role ==Qt.DisplayRole:
self.__col_name = self.__visible_columns[section + 1] #self.__col_name = self.__visible_columns[section + 1]
self.__col_name = self.__visible_columns[section]
return self.__col_name return self.__col_name
return super().headerData(section, orientation, role) return super().headerData(section, orientation, role)
@@ -122,10 +134,13 @@ class BusinessModel(QAbstractTableModel):
@Slot(dict, int) @Slot(dict, int)
def addBusiness(self, business, contact_id): def addBusiness(self, business, contact_id):
self.__business_dao.addBusiness(business, contact_id)
BusinessDAO().addBusiness(self.__key, business, contact_id)
@Slot() @Slot()
def __refreshView(self): def __refreshView(self):
self.__getData() self.__getData()
@Slot(dict) @Slot(dict)

View File

@@ -13,16 +13,14 @@ class ContactDAO:
def getContacts(self): def getContacts(self):
print(f"*** File: {__file__}, getContacts()") print(f"*** File: {__file__}, getContacts()")
def addContact(self, contact, enc_key): def addContact(self, key, contact):
try: try:
if self.__cur: self.__cur.callproc("addContactPerson", (key, json.dumps(contact),))
self.__cur.callproc("addContactPerson", (enc_key, json.dumps(contact),)) self.__con.commit()
self.__con.commit() self.__cur.callproc("getLastInsertId")
self.__cur.callproc("getLastInsertId") contact_id = self.__cur.fetchone()
contact_id = self.__cur.fetchone() return contact_id[0]
return contact_id[0]
else:
return None
except mariadb.Error as e: except mariadb.Error as e:
print("MDB: " + str(e)) print("MDB: " + str(e))
except Exception as e: except Exception as e:

View File

@@ -9,8 +9,14 @@ class ContactModel(QObject):
super().__init__() super().__init__()
# print(f"*** File: {__file__}, __init__()") # print(f"*** File: {__file__}, __init__()")
#self.logger = logging.getLogger() #self.logger = logging.getLogger()
self.__conf = ConfigLoader().getConfig() self.__conf = ConfigLoader().getConfig()
self.__key = self.__conf['pyqcrm']['ENCRYPTION_KEY'] self.__key = self.__conf['pyqcrm']['ENCRYPTION_KEY']
self.__key = ConfigLoader().getKey()
print(f"*** File: {__file__}, __init__()")
self.__data = self.__getData() self.__data = self.__getData()
def getContacts(self): def getContacts(self):
@@ -24,7 +30,10 @@ class ContactModel(QObject):
@Slot(dict) @Slot(dict)
def addContact(self, contact): def addContact(self, contact):
i = ContactDAO().addContact(contact, self.__key) i = ContactDAO().addContact(contact, self.__key)
self.contactIdReady.emit(i) self.contactIdReady.emit(i)