various updates and changes, move admin widgets into different seperate dialogs

This commit is contained in:
WorldTeacher
2024-08-08 14:40:38 +02:00
parent ee8862a220
commit fba35cdf25
32 changed files with 2175 additions and 2594 deletions

View File

@@ -0,0 +1,118 @@
from .widget_sources.Ui_admin_edit_prof import Ui_Dialog#
from PyQt6 import QtWidgets, QtCore
from PyQt6.QtCore import pyqtSignal
from icecream import ic
from src.backend import Database
class EditProf(QtWidgets.QDialog, Ui_Dialog):
def __init__(self):
super(EditProf, self).__init__()
self.setupUi(self)
#Variables
self.db = Database()
self.edit_faculty_member_select_member.currentTextChanged.connect(
self.edit_faculty_member_set_data
)
self.update_faculty_member.clicked.connect(self.edit_faculty_member_action)
self.gather_data()
def gather_data(self):
self.add_faculty_member_data()
def add_faculty_member_data(self):
faculty_members = self.db.getFacultyMembers()
names = [f"{member[5]}" for member in faculty_members]
self.edit_faculty_member_select_member.clear()
self.edit_faculty_member_select_member.addItems(names)
self.edit_faculty_member_select_member.addItem("")
self.edit_faculty_member_select_member.setCurrentText("")
def edit_faculty_member_set_data(self):
# get the selected member
name = self.edit_faculty_member_select_member.currentText()
fullname = name.replace(",", "")
# print(fullname, name)
# get the data for the selected member
data = self.db.getProfByName(fullname)
# set the data
# print(data)
if data is None:
self.edit_faculty_member_title.setText("")
self.faculty_member_old_telnr.setText("")
self.faculty_member_oldmail.setText("")
self.edit_faculty_member_title.setText("")
else:
# title = data[1]
# if title is None:
# title = ""
# self.edit_faculty_member_title.setText(title)
self.faculty_member_old_telnr.setText(data[6])
self.faculty_member_oldmail.setText(data[5])
(
self.edit_faculty_member_title.setText(data[1])
if data[1] is not None
else self.edit_faculty_member_title.setText("")
)
def edit_faculty_member_action(self):
def __gen_fullname(fname, lname, data):
if fname == "" and lname == "":
return data[3]
if fname == "" and lname != "":
return f"{lname} {data[1]}"
if fname != "" and lname == "":
return f"{data[2]} {fname}"
if fname != "" and lname != "":
return f"{lname} {fname}"
# get the data and use new value if it is not none and does not mach the old value
if self.edit_faculty_member_select_member.currentText() == "":
return
olddata = self.db.getFacultyMember(
self.edit_faculty_member_select_member.currentText()
)
ic(olddata)
data = olddata
oldlname = data[2]
oldfname = data[1]
# take data except first and last entry
titel = (
self.edit_faculty_member_new_title.text()()
if self.edit_faculty_member_new_title.text() != ""
else None
)
fname = (
self.edit_faculty_member_new_surname.text()
if self.edit_faculty_member_new_surname.text() != ""
else self.edit_faculty_member_select_member.currentText()
.split(" ")[1]
.strip()
)
lname = (
self.user_faculty_member_new_name.text()
if self.user_faculty_member_new_name.text() != ""
else self.edit_faculty_member_select_member.currentText()
.split(" ")[0]
.strip()
)
fullname = __gen_fullname(fname, lname, data)
telnr = self.user_faculty_member_new_telnr.text()
mail = self.user_faculty_member_new_mail.text()
new_data = {
"titel": titel,
"fname": fname,
"lname": lname,
"fullname": fullname,
"mail": mail,
"telnr": telnr,
}
new_data = {key: value for key, value in new_data.items() if value != ""}
self.db.updateFacultyMember(data=new_data, oldlname=oldlname, oldfname=oldfname)
self.add_faculty_member_data()
self.edit_faculty_member_new_title.setText("")
self.edit_faculty_member_new_surname.clear()
self.user_faculty_member_new_name.clear()
self.user_faculty_member_new_telnr.clear()
self.user_faculty_member_new_mail.clear()