searchpage updates

This commit is contained in:
WorldTeacher
2024-06-13 09:34:53 +02:00
parent 45b611fe83
commit b0ed5317f5
3 changed files with 60 additions and 8 deletions

View File

@@ -21,7 +21,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
reloadSignal = pyqtSignal() reloadSignal = pyqtSignal()
def __init__(self): def __init__(self):
self.logger = MyLogger("search_statistic_page") self.logger = MyLogger("SearchStatisticPage")
super().__init__() super().__init__()
self.setupUi(self) self.setupUi(self)
self.book_search_result.horizontalHeader().setSectionResizeMode( self.book_search_result.horizontalHeader().setSectionResizeMode(
@@ -42,6 +42,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
# statistic side buttons # statistic side buttons
self.btn_notify_for_deletion.clicked.connect(self.notify_for_deletion) self.btn_notify_for_deletion.clicked.connect(self.notify_for_deletion)
self.btn_notify_for_deletion.setEnabled(False) self.btn_notify_for_deletion.setEnabled(False)
self.btn_del_select_apparats.setEnabled(False)
self.tableWidget.resizeColumnsToContents() self.tableWidget.resizeColumnsToContents()
self.tableWidget.resizeRowsToContents() self.tableWidget.resizeRowsToContents()
self.db = Database() self.db = Database()
@@ -170,7 +171,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
self.box_erstellsemester.setEnabled(True) self.box_erstellsemester.setEnabled(True)
self.box_dauerapp.setEnabled(True) self.box_dauerapp.setEnabled(True)
def populate_tab(self): def populate_tab(self, table_or_graph=0):
# add default values to the dropdowns # add default values to the dropdowns
self.box_appnrs.clear() self.box_appnrs.clear()
self.box_appnrs.addItem("") self.box_appnrs.addItem("")
@@ -231,9 +232,10 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
# place the graph into tabWidget_3 # place the graph into tabWidget_3
self.tabWidget_3.addTab(graph, "Graph") self.tabWidget_3.addTab(graph, "Graph")
self.tabWidget_3.setCurrentIndex(0) self.tabWidget_3.setCurrentIndex(table_or_graph)
def delete_selected_apparats(self): def delete_selected_apparats(self):
table_or_graph = self.tabWidget_3.currentIndex()
# get all selected apparats # get all selected apparats
selected_apparats = [] selected_apparats = []
selected_apparat_rows = [] selected_apparat_rows = []
@@ -250,7 +252,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
for j in range(5): for j in range(5):
self.tableWidget.item(row, j).setBackground(QtGui.QColor(235, 74, 71)) self.tableWidget.item(row, j).setBackground(QtGui.QColor(235, 74, 71))
# refresh the table # refresh the table
self.populate_tab() self.populate_tab(table_or_graph)
self.btn_del_select_apparats.setEnabled(False) self.btn_del_select_apparats.setEnabled(False)
def statistics(self): def statistics(self):
@@ -357,11 +359,59 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
self.dataLayout.addWidget(deleted_status) self.dataLayout.addWidget(deleted_status)
# self.setStatisticTableSize() # self.setStatisticTableSize()
created_status.person_double_clicked.emit(self.apparat_open) created_status.person_double_clicked.connect(self.open_apparat)
created_status.setToolTip("Doppelklick um den Semesterapparat zu öffnen") created_status.setToolTip("Doppelklick um den Semesterapparat zu öffnen")
deleted_status.setToolTip("Nur zur Übersicht") deleted_status.setToolTip("Nur zur Übersicht")
# set deleted_status background to slightly gray # set deleted_status background to slightly gray
def open_apparat(self, *args):
header = "created"
# in *args
parent_depth = args[2]
apparat = args[1]
if header == "deleted" and parent_depth == 2:
# TODO: warn message here
print("warning")
if parent_depth == 1:
# person selected case - open all apparats from this person in the tableWidget
self.tableWidget.setRowCount(0)
prof_id = self.db.getProfId(apparat.split("(")[0].strip())
apparats = self.db.getApparatsByProf(prof_id)
for app in apparats:
# set the items 0 = clickable checkbox, 1 = appname, 2 = profname, 3 = fach
# insert new row
self.tableWidget.insertRow(0)
self.tableWidget.setItem(0, 0, QtWidgets.QTableWidgetItem(""))
self.tableWidget.setItem(0, 1, QtWidgets.QTableWidgetItem(app[1]))
self.tableWidget.setItem(0, 2, QtWidgets.QTableWidgetItem(str(app[4])))
self.tableWidget.setItem(0, 3, QtWidgets.QTableWidgetItem(app[2]))
self.tableWidget.setItem(0, 4, QtWidgets.QTableWidgetItem(app[3]))
# replace the 0 with a checkbox
checkbox = QtWidgets.QCheckBox()
checkbox.setChecked(False)
self.tableWidget.setCellWidget(0, 0, checkbox)
# if i[9] is 1, set the background of the row to red
if int(app[9]) == 1:
for j in range(5):
self.tableWidget.item(0, j).setBackground(
QtGui.QColor(235, 74, 71)
)
# disable the checkbox
self.tableWidget.cellWidget(0, 0).setEnabled(False)
# set the tooltip
self.tableWidget.cellWidget(0, 0).setToolTip(
"Dieser Semesterapparat kann nicht gelöscht werden, da er bereits gelöscht wurde"
)
elif parent_depth == 2:
print("depth", parent_depth)
# apparat selected case - open the apparat in the frame
self.apparat_open.emit(apparat)
return
def emit_signal(self, *args):
print("emit_signal", *args)
self.apparat_open.emit(args[1])
def show_ui(): def show_ui():
app = QtWidgets.QApplication([]) app = QtWidgets.QApplication([])

View File

@@ -205,7 +205,7 @@ class Ui_Dialog(object):
item = QtWidgets.QTableWidgetItem() item = QtWidgets.QTableWidgetItem()
self.statistics_table.setHorizontalHeaderItem(2, item) self.statistics_table.setHorizontalHeaderItem(2, item)
self.statistics_table.horizontalHeader().setCascadingSectionResizes(True) self.statistics_table.horizontalHeader().setCascadingSectionResizes(True)
self.statistics_table.horizontalHeader().setDefaultSectionSize(59) self.statistics_table.horizontalHeader().setDefaultSectionSize(80)
self.statistics_table.horizontalHeader().setMinimumSectionSize(40) self.statistics_table.horizontalHeader().setMinimumSectionSize(40)
self.statistics_table.horizontalHeader().setSortIndicatorShown(True) self.statistics_table.horizontalHeader().setSortIndicatorShown(True)
self.statistics_table.horizontalHeader().setStretchLastSection(True) self.statistics_table.horizontalHeader().setStretchLastSection(True)
@@ -219,6 +219,8 @@ class Ui_Dialog(object):
self.graph_table.setObjectName("graph_table") self.graph_table.setObjectName("graph_table")
self.tabWidget_3.addTab(self.graph_table, "") self.tabWidget_3.addTab(self.graph_table, "")
self.horizontalLayout.addWidget(self.tabWidget_3) self.horizontalLayout.addWidget(self.tabWidget_3)
self.horizontalLayout.setStretch(0, 55)
self.horizontalLayout.setStretch(1, 45)
self.stackedWidget_4.addWidget(self.apparatResult) self.stackedWidget_4.addWidget(self.apparatResult)
self.bookresult = QtWidgets.QWidget() self.bookresult = QtWidgets.QWidget()
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding)

View File

@@ -305,7 +305,7 @@
<number>0</number> <number>0</number>
</property> </property>
<widget class="QWidget" name="apparatResult"> <widget class="QWidget" name="apparatResult">
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout" stretch="55,45">
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_4"> <layout class="QVBoxLayout" name="verticalLayout_4">
<item> <item>
@@ -437,7 +437,7 @@
<number>40</number> <number>40</number>
</attribute> </attribute>
<attribute name="horizontalHeaderDefaultSectionSize"> <attribute name="horizontalHeaderDefaultSectionSize">
<number>59</number> <number>80</number>
</attribute> </attribute>
<attribute name="horizontalHeaderShowSortIndicator" stdset="0"> <attribute name="horizontalHeaderShowSortIndicator" stdset="0">
<bool>true</bool> <bool>true</bool>