add option to show signature in report and update settings UI
This commit is contained in:
@@ -10,6 +10,7 @@ report:
|
|||||||
generate_report: true
|
generate_report: true
|
||||||
path: ./report
|
path: ./report
|
||||||
report_day: 0
|
report_day: 0
|
||||||
|
show_signature: true
|
||||||
shortcuts:
|
shortcuts:
|
||||||
- name: Rueckgabemodus
|
- name: Rueckgabemodus
|
||||||
default: F5
|
default: F5
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import argparse
|
|||||||
__version__ = "0.2.19"
|
__version__ = "0.2.19"
|
||||||
__author__ = "Alexander Kirchner"
|
__author__ = "Alexander Kirchner"
|
||||||
__email__ = "alexander.kirchner@ph-freiburg.de"
|
__email__ = "alexander.kirchner@ph-freiburg.de"
|
||||||
|
__contacts__ = "alexander.kirchner@ph-freiburg.de,christian.berger@ph-freiburg.de"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
docport = 8000
|
docport = 8000
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import datetime
|
|||||||
import webbrowser
|
import webbrowser
|
||||||
from PyQt6 import QtCore, QtWidgets
|
from PyQt6 import QtCore, QtWidgets
|
||||||
from omegaconf import OmegaConf
|
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.logic import Database, Catalogue, Backup, DocumentationThread
|
||||||
from src.utils import stringToDate, Icon
|
from src.utils import stringToDate, Icon
|
||||||
from src.utils.createReport import generate_report
|
from src.utils.createReport import generate_report
|
||||||
@@ -48,7 +48,7 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
self.actionBeenden.triggered.connect(self.shutdown)
|
self.actionBeenden.triggered.connect(self.shutdown)
|
||||||
|
|
||||||
def __mail():
|
def __mail():
|
||||||
webbrowser.open(f"mailto:{__email__}")
|
webbrowser.open(f"mailto:{__contacts__}")
|
||||||
|
|
||||||
self.actionProblem_melden.triggered.connect(__mail)
|
self.actionProblem_melden.triggered.connect(__mail)
|
||||||
# if close button is pressed call shutdown
|
# 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")
|
self.input_userno.setPlaceholderText("Bitte erst in den Ausleihmodus wechseln")
|
||||||
|
|
||||||
def showUser(self):
|
def showUser(self):
|
||||||
log.info(f"Showing User {self.activeUser}")
|
|
||||||
if self.activeUser is None:
|
if self.activeUser is None:
|
||||||
# create warning dialog
|
# create warning dialog
|
||||||
log.info("Showing no user selected warning")
|
log.info("Showing no user selected warning")
|
||||||
|
|||||||
@@ -164,6 +164,7 @@ class Settings(QtWidgets.QDialog, Ui_Dialog):
|
|||||||
shortcuts = self.getShortcuts()
|
shortcuts = self.getShortcuts()
|
||||||
# shortcuts to omegaconf.DictConfig
|
# shortcuts to omegaconf.DictConfig
|
||||||
shortcuts = OmegaConf.create(shortcuts)
|
shortcuts = OmegaConf.create(shortcuts)
|
||||||
|
signature = self.signature.isChecked()
|
||||||
|
|
||||||
if database_path != self.originalSettings.database.path:
|
if database_path != self.originalSettings.database.path:
|
||||||
os.makedirs(database_path, exist_ok=True)
|
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.report_day = report_day
|
||||||
self.changedSettings.report.path = report_path
|
self.changedSettings.report.path = report_path
|
||||||
self.changedSettings.report.generate_report = report_generate
|
self.changedSettings.report.generate_report = report_generate
|
||||||
|
self.changedSettings.report.show_signature = signature
|
||||||
self.changedSettings.advanced_refresh = refresh_state
|
self.changedSettings.advanced_refresh = refresh_state
|
||||||
self.changedSettings.shortcuts = shortcuts
|
self.changedSettings.shortcuts = shortcuts
|
||||||
|
|
||||||
changed = self.changedSettings
|
changed = self.changedSettings
|
||||||
original = self.originalSettings
|
original = self.originalSettings
|
||||||
|
|
||||||
@@ -228,6 +229,9 @@ class Settings(QtWidgets.QDialog, Ui_Dialog):
|
|||||||
"advanced_refresh", self.changedSettings.advanced_refresh
|
"advanced_refresh", self.changedSettings.advanced_refresh
|
||||||
)
|
)
|
||||||
config.updateValue("shortcuts", self.changedSettings.shortcuts)
|
config.updateValue("shortcuts", self.changedSettings.shortcuts)
|
||||||
|
config.updateValue(
|
||||||
|
"report.show_signature", self.changedSettings.report.show_signature
|
||||||
|
)
|
||||||
self.originalSettings = self.changedSettings
|
self.originalSettings = self.changedSettings
|
||||||
config.save()
|
config.save()
|
||||||
|
|
||||||
@@ -251,6 +255,7 @@ class Settings(QtWidgets.QDialog, Ui_Dialog):
|
|||||||
self.check_generate_report.setChecked(config.report.generate_report)
|
self.check_generate_report.setChecked(config.report.generate_report)
|
||||||
self.report_path.setText(config.report.path)
|
self.report_path.setText(config.report.path)
|
||||||
self.returnMode.setChecked(config.advanced_refresh)
|
self.returnMode.setChecked(config.advanced_refresh)
|
||||||
|
self.signature.setChecked(config.report.show_signature)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -92,25 +92,22 @@ class Ui_Dialog(object):
|
|||||||
self.formLayout.setWidget(6, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_9)
|
self.formLayout.setWidget(6, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_9)
|
||||||
self.gridLayout = QtWidgets.QGridLayout()
|
self.gridLayout = QtWidgets.QGridLayout()
|
||||||
self.gridLayout.setObjectName("gridLayout")
|
self.gridLayout.setObjectName("gridLayout")
|
||||||
self.btn_select_report_path = QtWidgets.QToolButton(parent=Dialog)
|
self.label_8 = QtWidgets.QLabel(parent=Dialog)
|
||||||
self.btn_select_report_path.setObjectName("btn_select_report_path")
|
self.label_8.setObjectName("label_8")
|
||||||
self.gridLayout.addWidget(self.btn_select_report_path, 2, 2, 1, 1)
|
self.gridLayout.addWidget(self.label_8, 3, 0, 1, 1)
|
||||||
self.label_10 = QtWidgets.QLabel(parent=Dialog)
|
self.label_11 = QtWidgets.QLabel(parent=Dialog)
|
||||||
self.label_10.setText("")
|
self.label_11.setObjectName("label_11")
|
||||||
self.label_10.setObjectName("label_10")
|
self.gridLayout.addWidget(self.label_11, 0, 0, 1, 1)
|
||||||
self.gridLayout.addWidget(self.label_10, 1, 0, 1, 1)
|
|
||||||
self.check_generate_report = QtWidgets.QCheckBox(parent=Dialog)
|
self.check_generate_report = QtWidgets.QCheckBox(parent=Dialog)
|
||||||
self.check_generate_report.setObjectName("check_generate_report")
|
self.check_generate_report.setObjectName("check_generate_report")
|
||||||
self.gridLayout.addWidget(self.check_generate_report, 1, 1, 1, 1)
|
self.gridLayout.addWidget(self.check_generate_report, 1, 1, 1, 1)
|
||||||
self.report_path = QtWidgets.QLineEdit(parent=Dialog)
|
self.report_path = QtWidgets.QLineEdit(parent=Dialog)
|
||||||
self.report_path.setObjectName("report_path")
|
self.report_path.setObjectName("report_path")
|
||||||
self.gridLayout.addWidget(self.report_path, 2, 1, 1, 1)
|
self.gridLayout.addWidget(self.report_path, 3, 1, 1, 1)
|
||||||
self.label_8 = QtWidgets.QLabel(parent=Dialog)
|
self.label_10 = QtWidgets.QLabel(parent=Dialog)
|
||||||
self.label_8.setObjectName("label_8")
|
self.label_10.setText("")
|
||||||
self.gridLayout.addWidget(self.label_8, 2, 0, 1, 1)
|
self.label_10.setObjectName("label_10")
|
||||||
self.label_11 = QtWidgets.QLabel(parent=Dialog)
|
self.gridLayout.addWidget(self.label_10, 1, 0, 1, 1)
|
||||||
self.label_11.setObjectName("label_11")
|
|
||||||
self.gridLayout.addWidget(self.label_11, 0, 0, 1, 1)
|
|
||||||
self.report_day = QtWidgets.QComboBox(parent=Dialog)
|
self.report_day = QtWidgets.QComboBox(parent=Dialog)
|
||||||
self.report_day.setObjectName("report_day")
|
self.report_day.setObjectName("report_day")
|
||||||
self.report_day.addItem("")
|
self.report_day.addItem("")
|
||||||
@@ -119,6 +116,12 @@ class Ui_Dialog(object):
|
|||||||
self.report_day.addItem("")
|
self.report_day.addItem("")
|
||||||
self.report_day.addItem("")
|
self.report_day.addItem("")
|
||||||
self.gridLayout.addWidget(self.report_day, 0, 1, 1, 1)
|
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.formLayout.setLayout(6, QtWidgets.QFormLayout.ItemRole.FieldRole, self.gridLayout)
|
||||||
self.buttonBox = QtWidgets.QDialogButtonBox(parent=Dialog)
|
self.buttonBox = QtWidgets.QDialogButtonBox(parent=Dialog)
|
||||||
self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
|
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_name.setText(_translate("Dialog", "..."))
|
||||||
self.btn_select_database_backupLocation.setText(_translate("Dialog", "..."))
|
self.btn_select_database_backupLocation.setText(_translate("Dialog", "..."))
|
||||||
self.label_9.setText(_translate("Dialog", "Bericht"))
|
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_8.setText(_translate("Dialog", "Speicherpfad"))
|
||||||
self.label_11.setText(_translate("Dialog", "Tag"))
|
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(0, _translate("Dialog", "Montag"))
|
||||||
self.report_day.setItemText(1, _translate("Dialog", "Dienstag"))
|
self.report_day.setItemText(1, _translate("Dialog", "Dienstag"))
|
||||||
self.report_day.setItemText(2, _translate("Dialog", "Mittwoch"))
|
self.report_day.setItemText(2, _translate("Dialog", "Mittwoch"))
|
||||||
self.report_day.setItemText(3, _translate("Dialog", "Donnerstag"))
|
self.report_day.setItemText(3, _translate("Dialog", "Donnerstag"))
|
||||||
self.report_day.setItemText(4, _translate("Dialog", "Freitag"))
|
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 = self.shortcutchanger.horizontalHeaderItem(0)
|
||||||
item.setText(_translate("Dialog", "Name"))
|
item.setText(_translate("Dialog", "Name"))
|
||||||
item = self.shortcutchanger.horizontalHeaderItem(1)
|
item = self.shortcutchanger.horizontalHeaderItem(1)
|
||||||
|
|||||||
@@ -174,31 +174,7 @@ Löschen nach</string>
|
|||||||
</item>
|
</item>
|
||||||
<item row="6" column="1">
|
<item row="6" column="1">
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item row="2" column="2">
|
<item row="3" column="0">
|
||||||
<widget class="QToolButton" name="btn_select_report_path">
|
|
||||||
<property name="text">
|
|
||||||
<string>...</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QLabel" name="label_10">
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QCheckBox" name="check_generate_report">
|
|
||||||
<property name="text">
|
|
||||||
<string>Bericht erstellen</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="1">
|
|
||||||
<widget class="QLineEdit" name="report_path"/>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
|
||||||
<widget class="QLabel" name="label_8">
|
<widget class="QLabel" name="label_8">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Speicherpfad</string>
|
<string>Speicherpfad</string>
|
||||||
@@ -212,6 +188,23 @@ Löschen nach</string>
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QCheckBox" name="check_generate_report">
|
||||||
|
<property name="text">
|
||||||
|
<string>Bericht erstellen</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QLineEdit" name="report_path"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_10">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
<widget class="QComboBox" name="report_day">
|
<widget class="QComboBox" name="report_day">
|
||||||
<item>
|
<item>
|
||||||
@@ -241,6 +234,20 @@ Löschen nach</string>
|
|||||||
</item>
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="3" column="2">
|
||||||
|
<widget class="QToolButton" name="btn_select_report_path">
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QCheckBox" name="signature">
|
||||||
|
<property name="text">
|
||||||
|
<string>Signatur anzeigen</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="9" column="1">
|
<item row="9" column="1">
|
||||||
|
|||||||
@@ -27,6 +27,9 @@ def generate_report():
|
|||||||
# print(query)
|
# print(query)
|
||||||
|
|
||||||
colnames = ["UserId", "Title", "Action", "Datum"]
|
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 = PrettyTable(colnames)
|
||||||
table.align[colnames[0]] = "l"
|
table.align[colnames[0]] = "l"
|
||||||
table.align[colnames[1]] = "l"
|
table.align[colnames[1]] = "l"
|
||||||
@@ -42,14 +45,15 @@ def generate_report():
|
|||||||
loan_action_date = stringToDate(
|
loan_action_date = stringToDate(
|
||||||
loan[3] if loan[5] == 0 else loan[6]
|
loan[3] if loan[5] == 0 else loan[6]
|
||||||
).toString("dd.MM.yyyy")
|
).toString("dd.MM.yyyy")
|
||||||
table.add_row(
|
row = [
|
||||||
[
|
|
||||||
loan[1],
|
loan[1],
|
||||||
db.getMedia(loan[2]).title,
|
db.getMedia(loan[2]).title,
|
||||||
loan_action,
|
loan_action,
|
||||||
loan_action_date,
|
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")
|
tsv_table = table.get_csv_string().replace(",", "\t")
|
||||||
# write the file
|
# write the file
|
||||||
with open(report_path, "w", encoding="utf-8") as f:
|
with open(report_path, "w", encoding="utf-8") as f:
|
||||||
|
|||||||
Reference in New Issue
Block a user