fix broken files after faulty update
This commit is contained in:
@@ -1,31 +1,28 @@
|
||||
from .widget_sources.Ui_search_statistic_page import Ui_Dialog
|
||||
from PyQt6 import QtWidgets, QtGui, QtCore
|
||||
from PyQt6.QtCore import pyqtSignal
|
||||
from src.backend import Database, generateSemesterByDate
|
||||
from src.logic import custom_sort, Prof
|
||||
from src import MyLogger
|
||||
from src.backend import Database, Semester
|
||||
from src import logger
|
||||
from src.logic import custom_sort, Prof, sort_semesters_list
|
||||
from src.ui import ApparatExtendDialog
|
||||
from src.ui.dialogs import Mail_Dialog
|
||||
from src.ui.widgets import DataGraph, StatusWidget
|
||||
|
||||
from natsort import natsorted
|
||||
from icecream import ic
|
||||
|
||||
|
||||
class MyComboBox(QtWidgets.QComboBox):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
|
||||
|
||||
|
||||
class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
|
||||
apparat_open = pyqtSignal(str)
|
||||
reloadSignal = pyqtSignal()
|
||||
refreshSignal = pyqtSignal()
|
||||
|
||||
def __init__(self):
|
||||
self.logger = MyLogger("SearchStatisticPage")
|
||||
self.logger.log_info("SearchStatisticPage started")
|
||||
logger.info("SearchStatisticPage started")
|
||||
super().__init__()
|
||||
self.setupUi(self)
|
||||
self.book_search_result.horizontalHeader().setSectionResizeMode(
|
||||
@@ -51,7 +48,14 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
|
||||
self.tableWidget.resizeRowsToContents()
|
||||
self.db = Database()
|
||||
self.box_appnrs.addItems(str(i) for i in self.db.getUnavailableApparatNumbers())
|
||||
|
||||
self.splitter = QtWidgets.QSplitter(QtCore.Qt.Orientation.Horizontal)
|
||||
# insert splitter in apparatResult to allow resizing of the columns
|
||||
self.splitter.addWidget(self.app_results)
|
||||
self.splitter.addWidget(self.stats)
|
||||
self.apparatResult.layout().removeWidget(self.stats)
|
||||
self.apparatResult.layout().removeWidget(self.app_results)
|
||||
self.apparatResult.layout().addWidget(self.splitter)
|
||||
self.semester = Semester().value
|
||||
self.populate_tab()
|
||||
|
||||
def restore_apparat(self):
|
||||
@@ -90,15 +94,15 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
|
||||
extend.exec()
|
||||
if extend.result() == QtWidgets.QDialog.DialogCode.Accepted:
|
||||
data = extend.get_data()
|
||||
ic(data)
|
||||
logger.debug(data)
|
||||
app_name = self.tableWidget.item(self.tableWidget.currentRow(), 1).text()
|
||||
app_id = self.db.getApparatId(app_name)
|
||||
self.db.setNewSemesterDate(app_id, data["semester"], data["dauerapp"])
|
||||
#remove the row
|
||||
# remove the row
|
||||
self.tableWidget.removeRow(self.tableWidget.currentRow())
|
||||
self.refreshSignal.emit()
|
||||
def tabW2_changed(self):
|
||||
|
||||
def tabW2_changed(self):
|
||||
if self.tabWidget_2.currentIndex() == 0:
|
||||
self.stackedWidget_4.setCurrentIndex(0)
|
||||
else:
|
||||
@@ -113,12 +117,11 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
|
||||
"title": title if title != "" else None,
|
||||
}
|
||||
params = {key: value for key, value in params.items() if value is not None}
|
||||
# ic(params)
|
||||
logger.debug(params)
|
||||
retdata = self.db.searchBook(params)
|
||||
if retdata is None:
|
||||
return
|
||||
for book in retdata:
|
||||
|
||||
self.book_search_result.insertRow(0)
|
||||
self.book_search_result.setItem(
|
||||
0, 0, QtWidgets.QTableWidgetItem(book[0].title)
|
||||
@@ -145,10 +148,9 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
|
||||
|
||||
selected_apparats.append(data)
|
||||
# delete all selected apparats
|
||||
ic(selected_apparats)
|
||||
logger.debug(selected_apparats)
|
||||
dialogs = []
|
||||
for i in selected_apparats:
|
||||
|
||||
app_id = i["app_id"]
|
||||
app_name = i["app_name"]
|
||||
prof_name = i["prof_name"]
|
||||
@@ -206,7 +208,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
|
||||
self.box_dauerapp.setEnabled(True)
|
||||
|
||||
def populate_tab(self, table_or_graph=0):
|
||||
self.logger.log_info("populate_tab started")
|
||||
logger.info("populate_tab started")
|
||||
# add default values to the dropdowns
|
||||
self.box_appnrs.clear()
|
||||
self.box_appnrs.addItem("")
|
||||
@@ -232,9 +234,13 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
|
||||
apparats = [str(apparat) for apparat in apparats]
|
||||
self.box_appnrs.addItems(apparats)
|
||||
persons = self.db.getProfs()
|
||||
self.box_person.addItems([f"{person.lastname}, {person.firstname}" for person in persons])
|
||||
persons = sorted(persons, key=lambda x: x.lastname)
|
||||
self.box_person.addItems(
|
||||
[f"{person.lastname}, {person.firstname}" for person in persons]
|
||||
)
|
||||
self.box_fach.addItems(subject[1] for subject in self.db.getSubjects())
|
||||
semester = self.db.getSemersters()
|
||||
semester = self.db.getSemesters()
|
||||
semester = sort_semesters_list(semester)
|
||||
self.box_erstellsemester.addItems(semester)
|
||||
self.box_semester.addItems(semester)
|
||||
self.statistics_table.setRowCount(0)
|
||||
@@ -269,7 +275,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
|
||||
# place the graph into tabWidget_3
|
||||
self.tabWidget_3.addTab(graph, "Graph")
|
||||
self.tabWidget_3.setCurrentIndex(table_or_graph)
|
||||
self.logger.log_info("populate_tab finished")
|
||||
logger.info("populate_tab finished")
|
||||
|
||||
def delete_selected_apparats(self):
|
||||
# get all selected apparats
|
||||
@@ -281,9 +287,9 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
|
||||
selected_apparat_rows.append(i)
|
||||
# delete all selected apparats
|
||||
# # print(selected_apparats)
|
||||
self.logger.log_info(f"Deleting apparats: {selected_apparats}")
|
||||
logger.info(f"Deleting apparats: {selected_apparats}")
|
||||
for apparat in selected_apparats:
|
||||
self.db.deleteApparat(apparat, generateSemesterByDate())
|
||||
self.db.deleteApparat(apparat, self.semester)
|
||||
for row in selected_apparat_rows:
|
||||
# set the background of the row to red
|
||||
for j in range(5):
|
||||
@@ -295,10 +301,10 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
|
||||
def statistics(self):
|
||||
"""Generate the statistics based on the selected filters."""
|
||||
self.tableWidget.setRowCount(0)
|
||||
active_semseter = generateSemesterByDate()
|
||||
active_semseter = self.semester
|
||||
self.db_err_message.setText("")
|
||||
self.btn_del_select_apparats.setEnabled(True)
|
||||
self.btn_notify_for_deletion.setEnabled(True)
|
||||
self.btn_del_select_apparats.setEnabled(False)
|
||||
self.btn_notify_for_deletion.setEnabled(False)
|
||||
params = {
|
||||
"appnr": (
|
||||
self.box_appnrs.currentText()
|
||||
@@ -306,7 +312,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
|
||||
else None
|
||||
),
|
||||
"prof_id": (
|
||||
self.db.getProfId(self.box_person.currentText())
|
||||
self.db.getProfId(Prof(fullname=self.box_person.currentText()))
|
||||
if self.box_person.currentText() != ""
|
||||
else None
|
||||
),
|
||||
@@ -348,29 +354,22 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
|
||||
self.db_err_message.setText("Keine Ergebnisse gefunden")
|
||||
return
|
||||
data = []
|
||||
sem_year = active_semseter.split(" ")[1]
|
||||
sem_time = active_semseter.split(" ")[0]
|
||||
if sem_time == "WiSe":
|
||||
sem_year = int(sem_year.split("/")[0])
|
||||
else:
|
||||
sem_year = int(sem_year)
|
||||
|
||||
for entry in result:
|
||||
if "deletable" in params.keys():
|
||||
entry_sem_time = entry[5].split(" ")[0]
|
||||
entry_sem_year = entry[5].split(" ")[1]
|
||||
if entry_sem_time == "SoSe":
|
||||
entry_sem_year = int(entry_sem_year)
|
||||
if (entry_sem_year < sem_year) or (
|
||||
sem_time == "WiSe" and entry_sem_year == sem_year
|
||||
):
|
||||
data.append(entry)
|
||||
else:
|
||||
entry_sem_year = int(entry_sem_year.split("/")[0])
|
||||
if entry_sem_year < sem_year:
|
||||
data.append(entry)
|
||||
sem = Semester().from_string(
|
||||
entry[8] if entry[8] is not None else entry[5]
|
||||
)
|
||||
logger.info(f"Semester: {sem}")
|
||||
if sem.isPastSemester(Semester()):
|
||||
data.append(entry)
|
||||
else:
|
||||
data.append(entry)
|
||||
self.tableWidget.setRowCount(len(data))
|
||||
if len(data) > 0:
|
||||
self.btn_del_select_apparats.setEnabled(True)
|
||||
self.btn_notify_for_deletion.setEnabled(True)
|
||||
|
||||
for i in range(len(data)):
|
||||
# set the items 0 = clickable checkbox, 1 = appname, 2 = profname, 3 = fach
|
||||
self.tableWidget.setItem(i, 0, QtWidgets.QTableWidgetItem(""))
|
||||
|
||||
Reference in New Issue
Block a user