fix broken files after faulty update
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
from src import logger
|
||||
from PyQt6 import QtWidgets, QtCore
|
||||
from PyQt6.QtCore import QDate
|
||||
from PyQt6.QtGui import QColor, QPen
|
||||
from src.backend import Database
|
||||
import darkdetect
|
||||
from icecream import ic
|
||||
|
||||
color = "#ddfb00" if darkdetect.isDark() else "#2204ff"
|
||||
pen = QPen(QColor(color))
|
||||
@@ -22,7 +22,7 @@ class MessageCalendar(QtWidgets.QCalendarWidget):
|
||||
def getMessages(self):
|
||||
# Get the messages from the database
|
||||
messages = Database().getAllMessages()
|
||||
ic(messages)
|
||||
logger.debug(messages)
|
||||
self.setMessages(messages)
|
||||
|
||||
def deleteMessage(self, id):
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
__all__ = ["filepicker"]
|
||||
from .collapse import StatusWidget
|
||||
from .filepicker import FilePicker
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
from PyQt6 import QtWidgets, QtCore, QtGui
|
||||
from PyQt6.QtCore import pyqtSignal
|
||||
from .widget_sources.Ui_admin_create_user import Ui_Dialog
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
|
||||
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
|
||||
from src import logger
|
||||
from src.logic import Prof
|
||||
from src.backend import Database
|
||||
class EditProf(QtWidgets.QDialog, Ui_Dialog):
|
||||
def __init__(self):
|
||||
super(EditProf, self).__init__()
|
||||
@@ -59,7 +60,7 @@ class EditProf(QtWidgets.QDialog, Ui_Dialog):
|
||||
else:
|
||||
self.faculty_member_old_telnr.setText(data.telnr)
|
||||
self.faculty_member_oldmail.setText(data.mail)
|
||||
ic(data)
|
||||
logger.debug(data)
|
||||
(
|
||||
self.edit_faculty_member_title.setText(data.title)
|
||||
if data.title is not None
|
||||
@@ -83,7 +84,7 @@ class EditProf(QtWidgets.QDialog, Ui_Dialog):
|
||||
olddata = self.db.getProfByName(
|
||||
self.edit_faculty_member_select_member.currentText()
|
||||
)
|
||||
ic(olddata)
|
||||
logger.debug(olddata)
|
||||
data = olddata
|
||||
oldlname = data.lastname
|
||||
oldfname = data.firstname
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
from .widget_sources.Ui_admin_edit_user import Ui_Dialog
|
||||
from PyQt6 import QtWidgets, QtCore
|
||||
from PyQt6.QtCore import pyqtSignal
|
||||
from icecream import ic
|
||||
from src.backend import Database
|
||||
from src.backend import AdminCommands
|
||||
admin = AdminCommands()
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
from .widget_sources.Ui_calendar_entry import Ui_Dialog
|
||||
from PyQt6 import QtWidgets, QtCore
|
||||
from PyQt6.QtCore import pyqtSignal, QDate
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
# import pysignal pyslot
|
||||
from PyQt6.QtCore import pyqtSignal as Signal
|
||||
from PyQt6.QtWidgets import (
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
import os
|
||||
from natsort import natsorted
|
||||
from icecream import ic
|
||||
from .widget_sources.Ui_elsa_maindialog import Ui_Dialog
|
||||
from PyQt6 import QtCore, QtWidgets, QtGui
|
||||
from PyQt6.QtGui import QRegularExpressionValidator
|
||||
from PyQt6.QtCore import QDate
|
||||
from src import Icon
|
||||
from src.backend import recreateElsaFile, generateSemesterByDate, Database
|
||||
from src.logic import elsa_word_to_csv, MyLogger, Prof
|
||||
from src.logic.log import log
|
||||
from src import Icon, logger
|
||||
from src.backend import recreateElsaFile, Semester, Database
|
||||
from src.logic import elsa_word_to_csv, Prof
|
||||
from src.ui import popus_confirm
|
||||
from src.ui.dialogs import ElsaAddEntry
|
||||
from src.ui.widgets import FilePicker
|
||||
@@ -39,6 +37,23 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
self.quote_entry.clicked.connect(self.elsa_table_entry)
|
||||
self.quote_entry.setEnabled(False)
|
||||
self.newProf.hide()
|
||||
self.splitter = QtWidgets.QSplitter(QtCore.Qt.Orientation.Horizontal)
|
||||
self.splitter.addWidget(self.media_table)
|
||||
self.splitter.addWidget(self.statistics)
|
||||
self.results.layout().removeWidget(self.media_table)
|
||||
self.results.layout().removeWidget(self.statistics)
|
||||
self.results.layout().addWidget(self.splitter)
|
||||
self.elsa_statistics_table.setColumnCount(2)
|
||||
# set header to occupy the whole width and auto scale based on table width
|
||||
self.elsa_statistics_table.horizontalHeader().setStretchLastSection(True)
|
||||
self.elsa_statistics_table.horizontalHeader().setSectionResizeMode(
|
||||
QtWidgets.QHeaderView.ResizeMode.Stretch
|
||||
)
|
||||
# if table size gets smaller, set horitzontal headers text to be left aligned
|
||||
self.elsa_statistics_table.horizontalHeader().setDefaultAlignment(
|
||||
QtCore.Qt.AlignmentFlag.AlignLeft
|
||||
)
|
||||
# self.table_elsa_list.
|
||||
Icon("person", self.prof_icon)
|
||||
# validators
|
||||
# prof mail
|
||||
@@ -55,12 +70,12 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
)
|
||||
|
||||
##Variables
|
||||
self.logger = MyLogger("ElsaDialog")
|
||||
self.db = Database()
|
||||
self.graph_data = {"x": [generateSemesterByDate()], "y": [0]}
|
||||
self.graph_data = {"x": [Semester().value], "y": [0]}
|
||||
self.createProf = False
|
||||
self.profs = self.getProfs()
|
||||
|
||||
self.elsa_prof.addItems(self.getProfs())
|
||||
self.elsa_prof.addItems([prof[0] for prof in self.profs])
|
||||
self.elsa_prof.addItem("")
|
||||
self.elsa_prof.setCurrentText("")
|
||||
# implement a check for the prof name. if name is not in list and has schema of lastname, firstname, show newProf frame
|
||||
@@ -70,7 +85,7 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
self.newProf_title.textChanged.connect(self.checkProfData)
|
||||
|
||||
self.loadFrame()
|
||||
log.info("Elsa Dialog loaded")
|
||||
logger.info("Elsa Dialog loaded")
|
||||
# self.show()
|
||||
|
||||
def checkProfData(self):
|
||||
@@ -84,14 +99,20 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
):
|
||||
self.elsa_save.setEnabled(True)
|
||||
self.elsa_save.setToolTip("")
|
||||
self.newProf_mail.setToolTip("")
|
||||
self.newProf_telnr.setToolTip("")
|
||||
else:
|
||||
self.elsa_save.setEnabled(False)
|
||||
self.elsa_save.setToolTip("Bitte erst Daten eingeben")
|
||||
self.newProf_mail.setToolTip("Bitte geben Sie eine gültige E-Mail ein")
|
||||
self.newProf_telnr.setToolTip(
|
||||
"Bitte geben Sie eine gültige Telefonnummer ein"
|
||||
)
|
||||
|
||||
def checkProf(self):
|
||||
if (
|
||||
", " in self.elsa_prof.currentText()
|
||||
and self.elsa_prof.currentText() not in self.getProfs()
|
||||
and self.elsa_prof.currentText() not in [prof[0] for prof in self.profs]
|
||||
):
|
||||
self.newProf.show()
|
||||
self.elsa_save.setEnabled(False)
|
||||
@@ -105,7 +126,9 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
|
||||
def getProfs(self):
|
||||
profs = self.db.getProfs()
|
||||
profs = [f"{prof.lastname}, {prof.firstname}" for prof in profs]
|
||||
profs = [
|
||||
("{}, {}".format(prof.lastname, prof.firstname), prof.id) for prof in profs
|
||||
]
|
||||
|
||||
profs = list(set(profs))
|
||||
profs.sort()
|
||||
@@ -161,7 +184,7 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
self.elsa_date.setText(QDate.currentDate().toString("dd.MM.yyyy"))
|
||||
|
||||
def addSemester(self):
|
||||
self.elsa_semester.setText(generateSemesterByDate())
|
||||
self.elsa_semester.setText(Semester().value)
|
||||
|
||||
def update_elsa(self):
|
||||
prof = self.elsa_prof.currentText()
|
||||
@@ -205,11 +228,14 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
fullname=f"{prof.split(", ")[0]} {prof.split(", ")[1]}",
|
||||
)
|
||||
prof_id = self.db.getProfId(profdata)
|
||||
ic(profdata, prof_id)
|
||||
logger.debug(profdata, prof_id)
|
||||
|
||||
if prof_id is None:
|
||||
self.db.createProf(profdata)
|
||||
prof_id = self.db.getProfId(prof)
|
||||
self.profs.append(
|
||||
"f{}, {}".format(profdata.lastname, profdata.firstname), prof_id
|
||||
)
|
||||
elsa_id = self.db.createElsaApparat(
|
||||
date,
|
||||
prof_id,
|
||||
@@ -228,12 +254,12 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
files,
|
||||
elsa_id,
|
||||
)
|
||||
log.info("Stored {} files in the database", len(files))
|
||||
logger.info("Stored {} files in the database", len(files))
|
||||
self.cancel_elsa_creation()
|
||||
self.refresh_elsa_table()
|
||||
self.elsa_prof.setCurrentText("")
|
||||
self.quote_entry.setEnabled(False)
|
||||
log.info("Saved apparat to database, id {}", elsa_id)
|
||||
logger.info("Saved apparat to database, id {}", elsa_id)
|
||||
|
||||
def refresh_elsa_table(self):
|
||||
self.elsa_table.setRowCount(0)
|
||||
@@ -253,13 +279,13 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
|
||||
def open_elsa(self):
|
||||
prof = self.elsa_table.item(self.elsa_table.currentRow(), 0).text()
|
||||
print(prof)
|
||||
logger.info("prof", prof)
|
||||
date = self.elsa_table.item(self.elsa_table.currentRow(), 1).text()
|
||||
semester = self.elsa_table.item(self.elsa_table.currentRow(), 2).text()
|
||||
self.elsa_update.setEnabled(True)
|
||||
self.elsa_save.setEnabled(False)
|
||||
if self.elsa_prof.currentText() == prof and date == self.elsa_date.text():
|
||||
self.logger.log_info("Same prof, stopping")
|
||||
logger.debug("Same prof, stopping")
|
||||
return
|
||||
self.create_frame_elsa.setEnabled(True)
|
||||
self.dokument_list_elsa.setRowCount(0)
|
||||
@@ -269,24 +295,21 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
elsa_apparats = self.db.getElsaApparats()
|
||||
elsa_id = None
|
||||
for apparat in elsa_apparats:
|
||||
print(apparat)
|
||||
if (
|
||||
apparat[1] == date
|
||||
and apparat[2] == semester
|
||||
and apparat[3] == self.db.getProfId({"profname": prof})
|
||||
):
|
||||
elsa_id = apparat[0]
|
||||
# print(elsa_id)
|
||||
break
|
||||
self.elsa_date.setText(date)
|
||||
self.elsa_semester.setText(semester)
|
||||
self.elsa_prof.setCurrentText(prof)
|
||||
ic(elsa_id)
|
||||
logger.info("Elsa ID is {}", elsa_id)
|
||||
if elsa_id is None:
|
||||
return
|
||||
documents = self.db.getElsaFiles(elsa_id)
|
||||
for document in documents:
|
||||
# print(document)
|
||||
self.dokument_list_elsa.insertRow(0)
|
||||
self.dokument_list_elsa.setItem(
|
||||
0, 0, QtWidgets.QTableWidgetItem(document[0])
|
||||
@@ -340,13 +363,11 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
self.table_elsa_list.setItem(0, 11, QtWidgets.QTableWidgetItem(scan["type"]))
|
||||
|
||||
def addDokumentElsa(self):
|
||||
# print("Add document")
|
||||
picker = FilePicker()
|
||||
files = picker.pick_files()
|
||||
datalist = []
|
||||
for file in files:
|
||||
data = {}
|
||||
# print(file)
|
||||
filename = file.split("/")[-1]
|
||||
filetype = filename.split(".")[-1]
|
||||
self.dokument_list_elsa.insertRow(0)
|
||||
@@ -360,27 +381,6 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
data["path"] = file
|
||||
data["type"] = filetype
|
||||
datalist.append(data)
|
||||
# elsa_id = self.db.getElsaId(
|
||||
# self.elsa_prof.currentText(),
|
||||
# self.elsa_semester.text(),
|
||||
# self.elsa_date.text(),
|
||||
# )
|
||||
# # print(elsa_id)
|
||||
# if elsa_id is None:
|
||||
# # create elsa
|
||||
# self.db.createElsaApparat(
|
||||
# self.elsa_date.text(),
|
||||
# self.elsa_prof.currentText(),
|
||||
# self.elsa_semester.text(),
|
||||
# )
|
||||
# elsa_id = self.db.getElsaId(
|
||||
# self.elsa_prof.currentText(),
|
||||
# self.elsa_semester.text(),
|
||||
# self.elsa_date.text(),
|
||||
# )
|
||||
# self.db.insertElsaFile(datalist, elsa_id)
|
||||
# self.elsa_save.setEnabled(False)
|
||||
# self.refresh_elsa_table()
|
||||
|
||||
def parseDokumentElsa(self):
|
||||
if self.dokument_list_elsa.rowCount() == 0:
|
||||
@@ -389,7 +389,6 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
# get the file path of the selected file based on it's row
|
||||
row = self.dokument_list_elsa.currentRow()
|
||||
file = self.dokument_list_elsa.item(row, 3).text()
|
||||
# print(file)
|
||||
if file == "Database":
|
||||
filename = self.dokument_list_elsa.item(row, 0).text()
|
||||
filetype = self.dokument_list_elsa.item(row, 1).text()
|
||||
@@ -397,14 +396,13 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
file = recreateElsaFile(
|
||||
filename=filename, filetype=filetype, open=False
|
||||
)
|
||||
# print(file)
|
||||
data, _ = elsa_word_to_csv(file)
|
||||
elsa_id = self.db.getElsaId(
|
||||
self.db.getProfId(Prof(fullname=self.elsa_prof.currentText())),
|
||||
self.elsa_semester.text(),
|
||||
self.elsa_date.text(),
|
||||
)
|
||||
ic(
|
||||
logger.debug(
|
||||
elsa_id,
|
||||
self.elsa_prof.currentText(),
|
||||
self.elsa_semester.text(),
|
||||
@@ -441,14 +439,13 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
try:
|
||||
self.elsa_statistics.removeTab(1)
|
||||
except:
|
||||
self.logger.log_debug("No tab to remove")
|
||||
logger.debug("No tab to remove")
|
||||
self.elsa_table.setRowCount(0)
|
||||
elsa_apparats = self.db.getElsaApparats()
|
||||
elsa_apparats = natsorted(elsa_apparats, key=lambda x: x[2], reverse=True)
|
||||
# x = semester, y = number of apparats
|
||||
|
||||
for apparat in elsa_apparats:
|
||||
# print(apparat)
|
||||
data = self.insert_elsa_into_table(apparat)
|
||||
semester = data[0]
|
||||
number = data[1]
|
||||
@@ -466,7 +463,7 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
generateMissing,
|
||||
"Anzahl der Apparate",
|
||||
)
|
||||
ic(self.graph_data)
|
||||
logger.debug(self.graph_data)
|
||||
self.elsa_statistics_table.setRowCount(0)
|
||||
for i in range(len(self.graph_data["x"])):
|
||||
self.elsa_statistics_table.insertRow(0)
|
||||
@@ -479,7 +476,7 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
self.elsa_statistics.addTab(graph, "Graph")
|
||||
|
||||
def launch():
|
||||
log.debug("Launching Elsa Dialog")
|
||||
logger.debug("Launching Elsa Dialog")
|
||||
app = QtWidgets.QApplication([])
|
||||
window = ElsaDialog()
|
||||
window.show()
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
import random
|
||||
from typing import Union
|
||||
|
||||
|
||||
@@ -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(""))
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\widgets\widget_sources\admin_create_user.ui'
|
||||
#
|
||||
# Created by: PyQt6 UI code generator 6.7.1
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\widgets\widget_sources\admin_edit_prof.ui'
|
||||
#
|
||||
# Created by: PyQt6 UI code generator 6.7.1
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\widgets\widget_sources\admin_edit_user.ui'
|
||||
#
|
||||
# Created by: PyQt6 UI code generator 6.7.1
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\widgets\widget_sources\calendar_entry.ui'
|
||||
#
|
||||
# Created by: PyQt6 UI code generator 6.7.1
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\widgets\widget_sources\elsa_maindialog.ui'
|
||||
#
|
||||
# Created by: PyQt6 UI code generator 6.7.1
|
||||
@@ -187,15 +188,36 @@ class Ui_Dialog(object):
|
||||
self.verticalLayout.addWidget(self.create_frame_elsa)
|
||||
self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
|
||||
self.quote_entry = QtWidgets.QPushButton(parent=Dialog)
|
||||
self.quote_entry.setObjectName("quote_entry")
|
||||
self.horizontalLayout_6.addWidget(self.quote_entry)
|
||||
spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
|
||||
self.horizontalLayout_6.addItem(spacerItem5)
|
||||
self.verticalLayout.addLayout(self.horizontalLayout_6)
|
||||
self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
|
||||
self.table_elsa_list = QtWidgets.QTableWidget(parent=Dialog)
|
||||
self.verticalLayout.addLayout(self.horizontalLayout_5)
|
||||
self.results = QtWidgets.QWidget(parent=Dialog)
|
||||
self.results.setObjectName("results")
|
||||
self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.results)
|
||||
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||
self.statistics = QtWidgets.QWidget(parent=self.results)
|
||||
self.statistics.setObjectName("statistics")
|
||||
self.horizontalLayout_7 = QtWidgets.QHBoxLayout(self.statistics)
|
||||
self.horizontalLayout_7.setObjectName("horizontalLayout_7")
|
||||
self.media_table = QtWidgets.QWidget(parent=self.statistics)
|
||||
self.media_table.setObjectName("media_table")
|
||||
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.media_table)
|
||||
self.verticalLayout_4.setObjectName("verticalLayout_4")
|
||||
self.horizontalLayout_9 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_9.setObjectName("horizontalLayout_9")
|
||||
self.quote_entry = QtWidgets.QPushButton(parent=self.media_table)
|
||||
self.quote_entry.setObjectName("quote_entry")
|
||||
self.horizontalLayout_9.addWidget(self.quote_entry)
|
||||
spacerItem5 = QtWidgets.QSpacerItem(
|
||||
40,
|
||||
20,
|
||||
QtWidgets.QSizePolicy.Policy.Expanding,
|
||||
QtWidgets.QSizePolicy.Policy.Minimum,
|
||||
)
|
||||
self.horizontalLayout_9.addItem(spacerItem5)
|
||||
self.verticalLayout_4.addLayout(self.horizontalLayout_9)
|
||||
self.table_elsa_list = QtWidgets.QTableWidget(parent=self.media_table)
|
||||
self.table_elsa_list.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
|
||||
self.table_elsa_list.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers)
|
||||
self.table_elsa_list.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectionBehavior.SelectItems)
|
||||
@@ -230,13 +252,14 @@ class Ui_Dialog(object):
|
||||
self.table_elsa_list.setHorizontalHeaderItem(11, item)
|
||||
self.table_elsa_list.horizontalHeader().setDefaultSectionSize(85)
|
||||
self.table_elsa_list.horizontalHeader().setMinimumSectionSize(31)
|
||||
self.horizontalLayout_5.addWidget(self.table_elsa_list)
|
||||
self.elsa_statistics = QtWidgets.QTabWidget(parent=Dialog)
|
||||
self.verticalLayout_4.addWidget(self.table_elsa_list)
|
||||
self.horizontalLayout_7.addWidget(self.media_table)
|
||||
self.elsa_statistics = QtWidgets.QTabWidget(parent=self.statistics)
|
||||
self.elsa_statistics.setObjectName("elsa_statistics")
|
||||
self.tab = QtWidgets.QWidget()
|
||||
self.tab.setObjectName("tab")
|
||||
self.horizontalLayout_7 = QtWidgets.QHBoxLayout(self.tab)
|
||||
self.horizontalLayout_7.setObjectName("horizontalLayout_7")
|
||||
self.horizontalLayout_8 = QtWidgets.QHBoxLayout(self.tab)
|
||||
self.horizontalLayout_8.setObjectName("horizontalLayout_8")
|
||||
self.elsa_statistics_table = QtWidgets.QTableWidget(parent=self.tab)
|
||||
self.elsa_statistics_table.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
|
||||
self.elsa_statistics_table.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
|
||||
@@ -250,14 +273,16 @@ class Ui_Dialog(object):
|
||||
item = QtWidgets.QTableWidgetItem()
|
||||
self.elsa_statistics_table.setHorizontalHeaderItem(1, item)
|
||||
self.elsa_statistics_table.horizontalHeader().setDefaultSectionSize(169)
|
||||
self.horizontalLayout_7.addWidget(self.elsa_statistics_table)
|
||||
self.horizontalLayout_8.addWidget(self.elsa_statistics_table)
|
||||
self.elsa_statistics.addTab(self.tab, "")
|
||||
self.horizontalLayout_5.addWidget(self.elsa_statistics)
|
||||
self.horizontalLayout_5.setStretch(0, 7)
|
||||
self.horizontalLayout_5.setStretch(1, 3)
|
||||
self.verticalLayout.addLayout(self.horizontalLayout_5)
|
||||
self.horizontalLayout_7.addWidget(self.elsa_statistics)
|
||||
self.horizontalLayout_3.addWidget(self.statistics)
|
||||
self.results_table = QtWidgets.QWidget(parent=self.results)
|
||||
self.results_table.setObjectName("results_table")
|
||||
self.horizontalLayout_3.addWidget(self.results_table)
|
||||
self.verticalLayout.addWidget(self.results)
|
||||
self.verticalLayout.setStretch(0, 1)
|
||||
self.verticalLayout.setStretch(3, 2)
|
||||
self.verticalLayout.setStretch(4, 2)
|
||||
|
||||
self.retranslateUi(Dialog)
|
||||
self.elsa_statistics.setCurrentIndex(0)
|
||||
@@ -277,12 +302,8 @@ class Ui_Dialog(object):
|
||||
Dialog.setTabOrder(self.seperateEntries, self.check_file_elsa)
|
||||
Dialog.setTabOrder(self.check_file_elsa, self.elsa_save)
|
||||
Dialog.setTabOrder(self.elsa_save, self.elsa_update)
|
||||
Dialog.setTabOrder(self.elsa_update, self.quote_entry)
|
||||
Dialog.setTabOrder(self.quote_entry, self.elsa_statistics)
|
||||
Dialog.setTabOrder(self.elsa_statistics, self.table_elsa_list)
|
||||
Dialog.setTabOrder(self.table_elsa_list, self.elsa_table)
|
||||
Dialog.setTabOrder(self.elsa_table, self.elsa_statistics_table)
|
||||
Dialog.setTabOrder(self.elsa_statistics_table, self.dokument_list_elsa)
|
||||
Dialog.setTabOrder(self.elsa_update, self.elsa_table)
|
||||
Dialog.setTabOrder(self.elsa_table, self.dokument_list_elsa)
|
||||
|
||||
def retranslateUi(self, Dialog):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\widgets\widget_sources\search_statistic_page.ui'
|
||||
#
|
||||
# Created by: PyQt6 UI code generator 6.7.1
|
||||
@@ -12,7 +13,7 @@ from PyQt6 import QtCore, QtGui, QtWidgets
|
||||
class Ui_Dialog(object):
|
||||
def setupUi(self, Dialog):
|
||||
Dialog.setObjectName("Dialog")
|
||||
Dialog.resize(1244, 767)
|
||||
Dialog.resize(1250, 767)
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout(Dialog)
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.tabWidget_2 = QtWidgets.QTabWidget(parent=Dialog)
|
||||
@@ -150,24 +151,26 @@ class Ui_Dialog(object):
|
||||
self.apparatResult.setObjectName("apparatResult")
|
||||
self.horizontalLayout = QtWidgets.QHBoxLayout(self.apparatResult)
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
self.verticalLayout_4 = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_4.setObjectName("verticalLayout_4")
|
||||
self.app_results = QtWidgets.QWidget(parent=self.apparatResult)
|
||||
self.app_results.setObjectName("app_results")
|
||||
self.verticalLayout_7 = QtWidgets.QVBoxLayout(self.app_results)
|
||||
self.verticalLayout_7.setObjectName("verticalLayout_7")
|
||||
self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_7.setObjectName("horizontalLayout_7")
|
||||
self.verticalLayout_5 = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_5.setObjectName("verticalLayout_5")
|
||||
self.horizontalLayout_7.addLayout(self.verticalLayout_5)
|
||||
self.btn_del_select_apparats = QtWidgets.QPushButton(parent=self.apparatResult)
|
||||
self.btn_del_select_apparats = QtWidgets.QPushButton(parent=self.app_results)
|
||||
self.btn_del_select_apparats.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus)
|
||||
self.btn_del_select_apparats.setObjectName("btn_del_select_apparats")
|
||||
self.horizontalLayout_7.addWidget(self.btn_del_select_apparats)
|
||||
self.btn_notify_for_deletion = QtWidgets.QPushButton(parent=self.apparatResult)
|
||||
self.btn_notify_for_deletion = QtWidgets.QPushButton(parent=self.app_results)
|
||||
self.btn_notify_for_deletion.setObjectName("btn_notify_for_deletion")
|
||||
self.horizontalLayout_7.addWidget(self.btn_notify_for_deletion)
|
||||
spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
|
||||
self.horizontalLayout_7.addItem(spacerItem4)
|
||||
self.verticalLayout_4.addLayout(self.horizontalLayout_7)
|
||||
self.tableWidget = QtWidgets.QTableWidget(parent=self.apparatResult)
|
||||
self.verticalLayout_7.addLayout(self.horizontalLayout_7)
|
||||
self.tableWidget = QtWidgets.QTableWidget(parent=self.app_results)
|
||||
self.tableWidget.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
|
||||
self.tableWidget.setContextMenuPolicy(QtCore.Qt.ContextMenuPolicy.CustomContextMenu)
|
||||
self.tableWidget.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers)
|
||||
@@ -185,14 +188,18 @@ class Ui_Dialog(object):
|
||||
item = QtWidgets.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(4, item)
|
||||
self.tableWidget.horizontalHeader().setStretchLastSection(True)
|
||||
self.verticalLayout_4.addWidget(self.tableWidget)
|
||||
self.horizontalLayout.addLayout(self.verticalLayout_4)
|
||||
self.tabWidget_3 = QtWidgets.QTabWidget(parent=self.apparatResult)
|
||||
self.verticalLayout_7.addWidget(self.tableWidget)
|
||||
self.horizontalLayout.addWidget(self.app_results)
|
||||
self.stats = QtWidgets.QWidget(parent=self.apparatResult)
|
||||
self.stats.setObjectName("stats")
|
||||
self.horizontalLayout_5 = QtWidgets.QHBoxLayout(self.stats)
|
||||
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
|
||||
self.tabWidget_3 = QtWidgets.QTabWidget(parent=self.stats)
|
||||
self.tabWidget_3.setObjectName("tabWidget_3")
|
||||
self.statistic_table = QtWidgets.QWidget()
|
||||
self.statistic_table.setObjectName("statistic_table")
|
||||
self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.statistic_table)
|
||||
self.verticalLayout_6.setObjectName("verticalLayout_6")
|
||||
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.statistic_table)
|
||||
self.verticalLayout_4.setObjectName("verticalLayout_4")
|
||||
self.statistics_table = QtWidgets.QTableWidget(parent=self.statistic_table)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
@@ -219,17 +226,16 @@ class Ui_Dialog(object):
|
||||
self.statistics_table.horizontalHeader().setSortIndicatorShown(True)
|
||||
self.statistics_table.horizontalHeader().setStretchLastSection(False)
|
||||
self.statistics_table.verticalHeader().setStretchLastSection(True)
|
||||
self.verticalLayout_6.addWidget(self.statistics_table)
|
||||
self.verticalLayout_4.addWidget(self.statistics_table)
|
||||
self.dataLayout = QtWidgets.QHBoxLayout()
|
||||
self.dataLayout.setObjectName("dataLayout")
|
||||
self.verticalLayout_6.addLayout(self.dataLayout)
|
||||
self.verticalLayout_4.addLayout(self.dataLayout)
|
||||
self.tabWidget_3.addTab(self.statistic_table, "")
|
||||
self.graph_table = QtWidgets.QWidget()
|
||||
self.graph_table.setObjectName("graph_table")
|
||||
self.tabWidget_3.addTab(self.graph_table, "")
|
||||
self.horizontalLayout.addWidget(self.tabWidget_3)
|
||||
self.horizontalLayout.setStretch(0, 55)
|
||||
self.horizontalLayout.setStretch(1, 45)
|
||||
self.horizontalLayout_5.addWidget(self.tabWidget_3)
|
||||
self.horizontalLayout.addWidget(self.stats)
|
||||
self.stackedWidget_4.addWidget(self.apparatResult)
|
||||
self.bookresult = QtWidgets.QWidget()
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding)
|
||||
@@ -285,8 +291,7 @@ class Ui_Dialog(object):
|
||||
Dialog.setTabOrder(self.box_dauerapp, self.btn_search)
|
||||
Dialog.setTabOrder(self.btn_search, self.btn_del_select_apparats)
|
||||
Dialog.setTabOrder(self.btn_del_select_apparats, self.btn_notify_for_deletion)
|
||||
Dialog.setTabOrder(self.btn_notify_for_deletion, self.tabWidget_3)
|
||||
Dialog.setTabOrder(self.tabWidget_3, self.book_search_result)
|
||||
Dialog.setTabOrder(self.btn_notify_for_deletion, self.book_search_result)
|
||||
Dialog.setTabOrder(self.book_search_result, self.seach_by_signature)
|
||||
Dialog.setTabOrder(self.seach_by_signature, self.search_by_title)
|
||||
Dialog.setTabOrder(self.search_by_title, self.book_search)
|
||||
|
||||
Reference in New Issue
Block a user