diff --git a/config/settings.yaml b/config/settings.yaml index 217b84f..6629edb 100644 --- a/config/settings.yaml +++ b/config/settings.yaml @@ -10,6 +10,7 @@ report: generate_report: true path: ./report report_day: 0 + show_signature: true shortcuts: - name: Rueckgabemodus default: F5 diff --git a/src/__init__.py b/src/__init__.py index c4637c0..6ec8960 100644 --- a/src/__init__.py +++ b/src/__init__.py @@ -8,6 +8,7 @@ import argparse __version__ = "0.2.19" __author__ = "Alexander Kirchner" __email__ = "alexander.kirchner@ph-freiburg.de" +__contacts__ = "alexander.kirchner@ph-freiburg.de,christian.berger@ph-freiburg.de" __license__ = "MIT" docport = 8000 diff --git a/src/ui/main_ui.py b/src/ui/main_ui.py index 43848d6..f90432b 100644 --- a/src/ui/main_ui.py +++ b/src/ui/main_ui.py @@ -5,7 +5,7 @@ import datetime import webbrowser from PyQt6 import QtCore, QtWidgets from omegaconf import OmegaConf -from src import config, __email__, docport, log, restore_config +from src import config, __contacts__, docport, log, restore_config from src.logic import Database, Catalogue, Backup, DocumentationThread from src.utils import stringToDate, Icon from src.utils.createReport import generate_report @@ -48,7 +48,7 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow): self.actionBeenden.triggered.connect(self.shutdown) def __mail(): - webbrowser.open(f"mailto:{__email__}") + webbrowser.open(f"mailto:{__contacts__}") self.actionProblem_melden.triggered.connect(__mail) # if close button is pressed call shutdown @@ -265,7 +265,6 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow): self.input_userno.setPlaceholderText("Bitte erst in den Ausleihmodus wechseln") def showUser(self): - log.info(f"Showing User {self.activeUser}") if self.activeUser is None: # create warning dialog log.info("Showing no user selected warning") diff --git a/src/ui/settings.py b/src/ui/settings.py index 0f0ed85..82c43fe 100644 --- a/src/ui/settings.py +++ b/src/ui/settings.py @@ -164,6 +164,7 @@ class Settings(QtWidgets.QDialog, Ui_Dialog): shortcuts = self.getShortcuts() # shortcuts to omegaconf.DictConfig shortcuts = OmegaConf.create(shortcuts) + signature = self.signature.isChecked() if database_path != self.originalSettings.database.path: os.makedirs(database_path, exist_ok=True) @@ -179,9 +180,9 @@ class Settings(QtWidgets.QDialog, Ui_Dialog): self.changedSettings.report.report_day = report_day self.changedSettings.report.path = report_path self.changedSettings.report.generate_report = report_generate + self.changedSettings.report.show_signature = signature self.changedSettings.advanced_refresh = refresh_state self.changedSettings.shortcuts = shortcuts - changed = self.changedSettings original = self.originalSettings @@ -228,6 +229,9 @@ class Settings(QtWidgets.QDialog, Ui_Dialog): "advanced_refresh", self.changedSettings.advanced_refresh ) config.updateValue("shortcuts", self.changedSettings.shortcuts) + config.updateValue( + "report.show_signature", self.changedSettings.report.show_signature + ) self.originalSettings = self.changedSettings config.save() @@ -251,6 +255,7 @@ class Settings(QtWidgets.QDialog, Ui_Dialog): self.check_generate_report.setChecked(config.report.generate_report) self.report_path.setText(config.report.path) self.returnMode.setChecked(config.advanced_refresh) + self.signature.setChecked(config.report.show_signature) pass diff --git a/src/ui/sources/Ui_dialog_settings.py b/src/ui/sources/Ui_dialog_settings.py index 08354bc..7ae97a9 100644 --- a/src/ui/sources/Ui_dialog_settings.py +++ b/src/ui/sources/Ui_dialog_settings.py @@ -92,25 +92,22 @@ class Ui_Dialog(object): self.formLayout.setWidget(6, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_9) self.gridLayout = QtWidgets.QGridLayout() self.gridLayout.setObjectName("gridLayout") - self.btn_select_report_path = QtWidgets.QToolButton(parent=Dialog) - self.btn_select_report_path.setObjectName("btn_select_report_path") - self.gridLayout.addWidget(self.btn_select_report_path, 2, 2, 1, 1) - self.label_10 = QtWidgets.QLabel(parent=Dialog) - self.label_10.setText("") - self.label_10.setObjectName("label_10") - self.gridLayout.addWidget(self.label_10, 1, 0, 1, 1) + self.label_8 = QtWidgets.QLabel(parent=Dialog) + self.label_8.setObjectName("label_8") + self.gridLayout.addWidget(self.label_8, 3, 0, 1, 1) + self.label_11 = QtWidgets.QLabel(parent=Dialog) + self.label_11.setObjectName("label_11") + self.gridLayout.addWidget(self.label_11, 0, 0, 1, 1) self.check_generate_report = QtWidgets.QCheckBox(parent=Dialog) self.check_generate_report.setObjectName("check_generate_report") self.gridLayout.addWidget(self.check_generate_report, 1, 1, 1, 1) self.report_path = QtWidgets.QLineEdit(parent=Dialog) self.report_path.setObjectName("report_path") - self.gridLayout.addWidget(self.report_path, 2, 1, 1, 1) - self.label_8 = QtWidgets.QLabel(parent=Dialog) - self.label_8.setObjectName("label_8") - self.gridLayout.addWidget(self.label_8, 2, 0, 1, 1) - self.label_11 = QtWidgets.QLabel(parent=Dialog) - self.label_11.setObjectName("label_11") - self.gridLayout.addWidget(self.label_11, 0, 0, 1, 1) + self.gridLayout.addWidget(self.report_path, 3, 1, 1, 1) + self.label_10 = QtWidgets.QLabel(parent=Dialog) + self.label_10.setText("") + self.label_10.setObjectName("label_10") + self.gridLayout.addWidget(self.label_10, 1, 0, 1, 1) self.report_day = QtWidgets.QComboBox(parent=Dialog) self.report_day.setObjectName("report_day") self.report_day.addItem("") @@ -119,6 +116,12 @@ class Ui_Dialog(object): self.report_day.addItem("") self.report_day.addItem("") self.gridLayout.addWidget(self.report_day, 0, 1, 1, 1) + self.btn_select_report_path = QtWidgets.QToolButton(parent=Dialog) + self.btn_select_report_path.setObjectName("btn_select_report_path") + self.gridLayout.addWidget(self.btn_select_report_path, 3, 2, 1, 1) + self.signature = QtWidgets.QCheckBox(parent=Dialog) + self.signature.setObjectName("signature") + self.gridLayout.addWidget(self.signature, 2, 1, 1, 1) self.formLayout.setLayout(6, QtWidgets.QFormLayout.ItemRole.FieldRole, self.gridLayout) self.buttonBox = QtWidgets.QDialogButtonBox(parent=Dialog) self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal) @@ -176,15 +179,16 @@ class Ui_Dialog(object): self.btn_select_database_name.setText(_translate("Dialog", "...")) self.btn_select_database_backupLocation.setText(_translate("Dialog", "...")) self.label_9.setText(_translate("Dialog", "Bericht")) - self.btn_select_report_path.setText(_translate("Dialog", "...")) - self.check_generate_report.setText(_translate("Dialog", "Bericht erstellen")) self.label_8.setText(_translate("Dialog", "Speicherpfad")) self.label_11.setText(_translate("Dialog", "Tag")) + self.check_generate_report.setText(_translate("Dialog", "Bericht erstellen")) self.report_day.setItemText(0, _translate("Dialog", "Montag")) self.report_day.setItemText(1, _translate("Dialog", "Dienstag")) self.report_day.setItemText(2, _translate("Dialog", "Mittwoch")) self.report_day.setItemText(3, _translate("Dialog", "Donnerstag")) self.report_day.setItemText(4, _translate("Dialog", "Freitag")) + self.btn_select_report_path.setText(_translate("Dialog", "...")) + self.signature.setText(_translate("Dialog", "Signatur anzeigen")) item = self.shortcutchanger.horizontalHeaderItem(0) item.setText(_translate("Dialog", "Name")) item = self.shortcutchanger.horizontalHeaderItem(1) diff --git a/src/ui/sources/dialog_settings.ui b/src/ui/sources/dialog_settings.ui index 991da2d..4fc081a 100644 --- a/src/ui/sources/dialog_settings.ui +++ b/src/ui/sources/dialog_settings.ui @@ -174,31 +174,7 @@ Löschen nach - - - - ... - - - - - - - - - - - - - - Bericht erstellen - - - - - - - + Speicherpfad @@ -212,6 +188,23 @@ Löschen nach + + + + Bericht erstellen + + + + + + + + + + + + + @@ -241,6 +234,20 @@ Löschen nach + + + + ... + + + + + + + Signatur anzeigen + + + diff --git a/src/utils/createReport.py b/src/utils/createReport.py index b641c4c..aa32fa3 100644 --- a/src/utils/createReport.py +++ b/src/utils/createReport.py @@ -27,6 +27,9 @@ def generate_report(): # print(query) colnames = ["UserId", "Title", "Action", "Datum"] + if config.report.show_signature: + # insert the signature column at the second position + colnames.insert(2, "Signature") table = PrettyTable(colnames) table.align[colnames[0]] = "l" table.align[colnames[1]] = "l" @@ -42,14 +45,15 @@ def generate_report(): loan_action_date = stringToDate( loan[3] if loan[5] == 0 else loan[6] ).toString("dd.MM.yyyy") - table.add_row( - [ - loan[1], - db.getMedia(loan[2]).title, - loan_action, - loan_action_date, - ] - ) + row = [ + loan[1], + db.getMedia(loan[2]).title, + loan_action, + loan_action_date, + ] + if config.report.show_signature: + row.insert(2, db.getMedia(loan[2]).signature) + table.add_row(row) tsv_table = table.get_csv_string().replace(",", "\t") # write the file with open(report_path, "w", encoding="utf-8") as f: