enable the addition of the signature in the report in the UI, update docs
This commit is contained in:
@@ -14,6 +14,10 @@ Um einen Bericht zu erstellen, müssen folgende Kriterien erfüllt sein:
|
|||||||
- Zeitspanne festgelegt (Entweder über den Slider, oder über die Buttons für Woche / Monat / Jahr)
|
- Zeitspanne festgelegt (Entweder über den Slider, oder über die Buttons für Woche / Monat / Jahr)
|
||||||
- Dateiformat muss festgelegt worden sein.
|
- Dateiformat muss festgelegt worden sein.
|
||||||
|
|
||||||
|
!!! info "Optional: Signatur"
|
||||||
|
|
||||||
|
Optional kann ein Haken bei `Signatur anzeigen` gesetzt werden. Der Bericht wird nun die Signatur der ausgeführten Aktion enthalten.
|
||||||
|
|
||||||
Bei größeren Datensätzen kann es länger dauern. Eine Fortschrittsanzeige gibt an, wie weit der Prozess ist.
|
Bei größeren Datensätzen kann es länger dauern. Eine Fortschrittsanzeige gibt an, wie weit der Prozess ist.
|
||||||
|
|
||||||
Wurde der Bericht erfolgreich erstellt, sieht die Oberfläche wie folgt aus:
|
Wurde der Bericht erfolgreich erstellt, sieht die Oberfläche wie folgt aus:
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.8 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 11 KiB |
@@ -4,6 +4,7 @@ from src.utils import Icon
|
|||||||
from src.utils.reportThread import ReportThread
|
from src.utils.reportThread import ReportThread
|
||||||
from src.logic import Database
|
from src.logic import Database
|
||||||
import os
|
import os
|
||||||
|
from src import config, log
|
||||||
|
|
||||||
|
|
||||||
class ReportUi(QtWidgets.QDialog, Ui_Dialog):
|
class ReportUi(QtWidgets.QDialog, Ui_Dialog):
|
||||||
@@ -31,14 +32,19 @@ class ReportUi(QtWidgets.QDialog, Ui_Dialog):
|
|||||||
self.format_txt.clicked.connect(lambda: self.rthread.setFormat("txt"))
|
self.format_txt.clicked.connect(lambda: self.rthread.setFormat("txt"))
|
||||||
self.format_csv.clicked.connect(lambda: self.rthread.setFormat("tsv"))
|
self.format_csv.clicked.connect(lambda: self.rthread.setFormat("tsv"))
|
||||||
self.format_csv.clicked.connect(lambda: self.generateReport.setEnabled(True))
|
self.format_csv.clicked.connect(lambda: self.generateReport.setEnabled(True))
|
||||||
self.format_txt.clicked.connect(lambda: self.generateReport.setEnabled(True))
|
self.format_txt.clicked.connect(lambda: self.generateReport.setEnabled(True)) #
|
||||||
|
self.signature.clicked.connect(self.setSignature)
|
||||||
# sliders
|
# sliders
|
||||||
self.dayslider.valueChanged.connect(self.set_days)
|
self.dayslider.valueChanged.connect(self.set_days_slider)
|
||||||
self.show()
|
self.show()
|
||||||
|
|
||||||
# labels
|
# labels
|
||||||
self.label_4.hide()
|
self.label_4.hide()
|
||||||
|
|
||||||
|
def setSignature(self):
|
||||||
|
show_signature = self.signature.isChecked()
|
||||||
|
config.report.show_signature = show_signature
|
||||||
|
|
||||||
def set_days_by_radio(self):
|
def set_days_by_radio(self):
|
||||||
if self.radio_year.isChecked():
|
if self.radio_year.isChecked():
|
||||||
self.set_days(365)
|
self.set_days(365)
|
||||||
@@ -50,15 +56,26 @@ class ReportUi(QtWidgets.QDialog, Ui_Dialog):
|
|||||||
self.set_days(7)
|
self.set_days(7)
|
||||||
self.dayslider.setValue(7)
|
self.dayslider.setValue(7)
|
||||||
|
|
||||||
def set_days(self, value):
|
def set_days(self, days=None):
|
||||||
# if value is not 7,30,365, deactivate radio buttons
|
self.days = days
|
||||||
if value != 7 and value != 30 and value != 365:
|
|
||||||
|
self.dayValue.setText(str(self.days))
|
||||||
|
|
||||||
|
def set_days_slider(self):
|
||||||
|
slider_value = self.dayslider.value()
|
||||||
|
self.set_days(slider_value)
|
||||||
|
match slider_value:
|
||||||
|
case 365:
|
||||||
|
self.radio_year.setChecked(True)
|
||||||
|
case 30:
|
||||||
|
self.radio_month.setChecked(True)
|
||||||
|
case 7:
|
||||||
|
self.radio_week.setChecked(True)
|
||||||
|
case _:
|
||||||
self.radioButton.setChecked(True)
|
self.radioButton.setChecked(True)
|
||||||
|
|
||||||
self.days = value
|
|
||||||
self.dayValue.setText(str(value))
|
|
||||||
|
|
||||||
def generate_report(self):
|
def generate_report(self):
|
||||||
|
# self.set_days()
|
||||||
|
log.debug("Generating report for the last " + str(self.days) + " days")
|
||||||
self.rthread.setDays(self.days)
|
self.rthread.setDays(self.days)
|
||||||
self.rthread.report_signal.connect(self.report_generated)
|
self.rthread.report_signal.connect(self.report_generated)
|
||||||
self.rthread.report_nums_signal.connect(self.show_progress)
|
self.rthread.report_nums_signal.connect(self.show_progress)
|
||||||
@@ -68,7 +85,6 @@ class ReportUi(QtWidgets.QDialog, Ui_Dialog):
|
|||||||
self.rthread.start()
|
self.rthread.start()
|
||||||
|
|
||||||
def reset(self):
|
def reset(self):
|
||||||
self.days = 0
|
|
||||||
self.reportprogress.hide()
|
self.reportprogress.hide()
|
||||||
self.reportprogress.setValue(0)
|
self.reportprogress.setValue(0)
|
||||||
self.label_4.setText("Fortschritt:")
|
self.label_4.setText("Fortschritt:")
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ from PyQt6 import QtCore, QtGui, QtWidgets
|
|||||||
class Ui_Dialog(object):
|
class Ui_Dialog(object):
|
||||||
def setupUi(self, Dialog):
|
def setupUi(self, Dialog):
|
||||||
Dialog.setObjectName("Dialog")
|
Dialog.setObjectName("Dialog")
|
||||||
Dialog.setWindowModality(QtCore.Qt.WindowModality.ApplicationModal)
|
Dialog.setWindowModality(QtCore.Qt.WindowModality.NonModal)
|
||||||
Dialog.resize(375, 245)
|
Dialog.resize(375, 245)
|
||||||
Dialog.setMinimumSize(QtCore.QSize(40, 0))
|
Dialog.setMinimumSize(QtCore.QSize(40, 0))
|
||||||
self.verticalLayout = QtWidgets.QVBoxLayout(Dialog)
|
self.verticalLayout = QtWidgets.QVBoxLayout(Dialog)
|
||||||
@@ -22,9 +22,11 @@ class Ui_Dialog(object):
|
|||||||
self.verticalLayout.addWidget(self.label)
|
self.verticalLayout.addWidget(self.label)
|
||||||
self.gridLayout = QtWidgets.QGridLayout()
|
self.gridLayout = QtWidgets.QGridLayout()
|
||||||
self.gridLayout.setObjectName("gridLayout")
|
self.gridLayout.setObjectName("gridLayout")
|
||||||
self.label_2 = QtWidgets.QLabel(parent=Dialog)
|
self.radioButton = QtWidgets.QRadioButton(parent=Dialog)
|
||||||
self.label_2.setObjectName("label_2")
|
self.radioButton.setText("")
|
||||||
self.gridLayout.addWidget(self.label_2, 0, 0, 1, 1)
|
self.radioButton.setCheckable(True)
|
||||||
|
self.radioButton.setObjectName("radioButton")
|
||||||
|
self.gridLayout.addWidget(self.radioButton, 4, 2, 1, 1)
|
||||||
self.horizontalLayout = QtWidgets.QHBoxLayout()
|
self.horizontalLayout = QtWidgets.QHBoxLayout()
|
||||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||||
self.radio_week = QtWidgets.QRadioButton(parent=Dialog)
|
self.radio_week = QtWidgets.QRadioButton(parent=Dialog)
|
||||||
@@ -37,10 +39,11 @@ class Ui_Dialog(object):
|
|||||||
self.radio_year.setObjectName("radio_year")
|
self.radio_year.setObjectName("radio_year")
|
||||||
self.horizontalLayout.addWidget(self.radio_year)
|
self.horizontalLayout.addWidget(self.radio_year)
|
||||||
self.gridLayout.addLayout(self.horizontalLayout, 1, 1, 1, 1)
|
self.gridLayout.addLayout(self.horizontalLayout, 1, 1, 1, 1)
|
||||||
|
self.label_3 = QtWidgets.QLabel(parent=Dialog)
|
||||||
|
self.label_3.setObjectName("label_3")
|
||||||
|
self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1)
|
||||||
self.dayValue = QtWidgets.QLineEdit(parent=Dialog)
|
self.dayValue = QtWidgets.QLineEdit(parent=Dialog)
|
||||||
sizePolicy = QtWidgets.QSizePolicy(
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)
|
||||||
QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed
|
|
||||||
)
|
|
||||||
sizePolicy.setHorizontalStretch(0)
|
sizePolicy.setHorizontalStretch(0)
|
||||||
sizePolicy.setVerticalStretch(0)
|
sizePolicy.setVerticalStretch(0)
|
||||||
sizePolicy.setHeightForWidth(self.dayValue.sizePolicy().hasHeightForWidth())
|
sizePolicy.setHeightForWidth(self.dayValue.sizePolicy().hasHeightForWidth())
|
||||||
@@ -51,15 +54,24 @@ class Ui_Dialog(object):
|
|||||||
self.dayValue.setReadOnly(True)
|
self.dayValue.setReadOnly(True)
|
||||||
self.dayValue.setObjectName("dayValue")
|
self.dayValue.setObjectName("dayValue")
|
||||||
self.gridLayout.addWidget(self.dayValue, 0, 2, 1, 1)
|
self.gridLayout.addWidget(self.dayValue, 0, 2, 1, 1)
|
||||||
self.radioButton = QtWidgets.QRadioButton(parent=Dialog)
|
|
||||||
self.radioButton.setText("")
|
|
||||||
self.radioButton.setCheckable(True)
|
|
||||||
self.radioButton.setObjectName("radioButton")
|
|
||||||
self.gridLayout.addWidget(self.radioButton, 3, 2, 1, 1)
|
|
||||||
self.reportlink = QtWidgets.QLabel(parent=Dialog)
|
self.reportlink = QtWidgets.QLabel(parent=Dialog)
|
||||||
self.reportlink.setText("")
|
self.reportlink.setText("")
|
||||||
self.reportlink.setObjectName("reportlink")
|
self.reportlink.setObjectName("reportlink")
|
||||||
self.gridLayout.addWidget(self.reportlink, 3, 1, 1, 1)
|
self.gridLayout.addWidget(self.reportlink, 4, 1, 1, 1)
|
||||||
|
self.frame = QtWidgets.QFrame(parent=Dialog)
|
||||||
|
self.frame.setFrameShape(QtWidgets.QFrame.Shape.NoFrame)
|
||||||
|
self.frame.setFrameShadow(QtWidgets.QFrame.Shadow.Plain)
|
||||||
|
self.frame.setLineWidth(0)
|
||||||
|
self.frame.setObjectName("frame")
|
||||||
|
self.gridLayout_2 = QtWidgets.QGridLayout(self.frame)
|
||||||
|
self.gridLayout_2.setObjectName("gridLayout_2")
|
||||||
|
self.format_csv = QtWidgets.QRadioButton(parent=self.frame)
|
||||||
|
self.format_csv.setObjectName("format_csv")
|
||||||
|
self.gridLayout_2.addWidget(self.format_csv, 0, 1, 1, 1)
|
||||||
|
self.format_txt = QtWidgets.QRadioButton(parent=self.frame)
|
||||||
|
self.format_txt.setObjectName("format_txt")
|
||||||
|
self.gridLayout_2.addWidget(self.format_txt, 0, 0, 1, 1)
|
||||||
|
self.gridLayout.addWidget(self.frame, 2, 1, 1, 1)
|
||||||
self.dayslider = QtWidgets.QSlider(parent=Dialog)
|
self.dayslider = QtWidgets.QSlider(parent=Dialog)
|
||||||
self.dayslider.setFocusPolicy(QtCore.Qt.FocusPolicy.ClickFocus)
|
self.dayslider.setFocusPolicy(QtCore.Qt.FocusPolicy.ClickFocus)
|
||||||
self.dayslider.setMinimum(1)
|
self.dayslider.setMinimum(1)
|
||||||
@@ -70,23 +82,12 @@ class Ui_Dialog(object):
|
|||||||
self.dayslider.setTickInterval(10)
|
self.dayslider.setTickInterval(10)
|
||||||
self.dayslider.setObjectName("dayslider")
|
self.dayslider.setObjectName("dayslider")
|
||||||
self.gridLayout.addWidget(self.dayslider, 0, 1, 1, 1)
|
self.gridLayout.addWidget(self.dayslider, 0, 1, 1, 1)
|
||||||
self.frame = QtWidgets.QFrame(parent=Dialog)
|
self.label_2 = QtWidgets.QLabel(parent=Dialog)
|
||||||
self.frame.setFrameShape(QtWidgets.QFrame.Shape.NoFrame)
|
self.label_2.setObjectName("label_2")
|
||||||
self.frame.setFrameShadow(QtWidgets.QFrame.Shadow.Plain)
|
self.gridLayout.addWidget(self.label_2, 0, 0, 1, 1)
|
||||||
self.frame.setLineWidth(0)
|
self.signature = QtWidgets.QCheckBox(parent=Dialog)
|
||||||
self.frame.setObjectName("frame")
|
self.signature.setObjectName("signature")
|
||||||
self.gridLayout_2 = QtWidgets.QGridLayout(self.frame)
|
self.gridLayout.addWidget(self.signature, 3, 1, 1, 1)
|
||||||
self.gridLayout_2.setObjectName("gridLayout_2")
|
|
||||||
self.format_txt = QtWidgets.QRadioButton(parent=self.frame)
|
|
||||||
self.format_txt.setObjectName("format_txt")
|
|
||||||
self.gridLayout_2.addWidget(self.format_txt, 0, 0, 1, 1)
|
|
||||||
self.format_csv = QtWidgets.QRadioButton(parent=self.frame)
|
|
||||||
self.format_csv.setObjectName("format_csv")
|
|
||||||
self.gridLayout_2.addWidget(self.format_csv, 0, 1, 1, 1)
|
|
||||||
self.gridLayout.addWidget(self.frame, 2, 1, 1, 1)
|
|
||||||
self.label_3 = QtWidgets.QLabel(parent=Dialog)
|
|
||||||
self.label_3.setObjectName("label_3")
|
|
||||||
self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1)
|
|
||||||
self.verticalLayout.addLayout(self.gridLayout)
|
self.verticalLayout.addLayout(self.gridLayout)
|
||||||
self.label_4 = QtWidgets.QLabel(parent=Dialog)
|
self.label_4 = QtWidgets.QLabel(parent=Dialog)
|
||||||
self.label_4.setObjectName("label_4")
|
self.label_4.setObjectName("label_4")
|
||||||
@@ -110,15 +111,14 @@ class Ui_Dialog(object):
|
|||||||
def retranslateUi(self, Dialog):
|
def retranslateUi(self, Dialog):
|
||||||
_translate = QtCore.QCoreApplication.translate
|
_translate = QtCore.QCoreApplication.translate
|
||||||
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
|
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
|
||||||
self.label.setText(
|
self.label.setText(_translate("Dialog", "Wieviele Tage sollen im Bericht erfasst werden?"))
|
||||||
_translate("Dialog", "Wieviele Tage sollen im Bericht erfasst werden?")
|
|
||||||
)
|
|
||||||
self.label_2.setText(_translate("Dialog", "Tage"))
|
|
||||||
self.radio_week.setText(_translate("Dialog", "Woche"))
|
self.radio_week.setText(_translate("Dialog", "Woche"))
|
||||||
self.radio_month.setText(_translate("Dialog", "Monat"))
|
self.radio_month.setText(_translate("Dialog", "Monat"))
|
||||||
self.radio_year.setText(_translate("Dialog", "Jahr"))
|
self.radio_year.setText(_translate("Dialog", "Jahr"))
|
||||||
self.format_txt.setText(_translate("Dialog", "Text"))
|
|
||||||
self.format_csv.setText(_translate("Dialog", "Excel"))
|
|
||||||
self.label_3.setText(_translate("Dialog", "Dateiformat"))
|
self.label_3.setText(_translate("Dialog", "Dateiformat"))
|
||||||
|
self.format_csv.setText(_translate("Dialog", "Excel"))
|
||||||
|
self.format_txt.setText(_translate("Dialog", "Text"))
|
||||||
|
self.label_2.setText(_translate("Dialog", "Tage"))
|
||||||
|
self.signature.setText(_translate("Dialog", "Signatur anzeigen"))
|
||||||
self.label_4.setText(_translate("Dialog", "Fortschritt:"))
|
self.label_4.setText(_translate("Dialog", "Fortschritt:"))
|
||||||
self.generateReport.setText(_translate("Dialog", " Bericht erstellen"))
|
self.generateReport.setText(_translate("Dialog", " Bericht erstellen"))
|
||||||
|
|||||||
@@ -32,10 +32,13 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item row="0" column="0">
|
<item row="4" column="2">
|
||||||
<widget class="QLabel" name="label_2">
|
<widget class="QRadioButton" name="radioButton">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Tage</string>
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -64,6 +67,13 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="label_3">
|
||||||
|
<property name="text">
|
||||||
|
<string>Dateiformat</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="0" column="2">
|
<item row="0" column="2">
|
||||||
<widget class="QLineEdit" name="dayValue">
|
<widget class="QLineEdit" name="dayValue">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
@@ -92,23 +102,42 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="2">
|
<item row="4" column="1">
|
||||||
<widget class="QRadioButton" name="radioButton">
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
<property name="checkable">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="1">
|
|
||||||
<widget class="QLabel" name="reportlink">
|
<widget class="QLabel" name="reportlink">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QFrame" name="frame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::NoFrame</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Plain</enum>
|
||||||
|
</property>
|
||||||
|
<property name="lineWidth">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QRadioButton" name="format_csv">
|
||||||
|
<property name="text">
|
||||||
|
<string>Excel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QRadioButton" name="format_txt">
|
||||||
|
<property name="text">
|
||||||
|
<string>Text</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
<widget class="QSlider" name="dayslider">
|
<widget class="QSlider" name="dayslider">
|
||||||
<property name="focusPolicy">
|
<property name="focusPolicy">
|
||||||
@@ -134,39 +163,17 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
|
||||||
<widget class="QFrame" name="frame">
|
|
||||||
<property name="frameShape">
|
|
||||||
<enum>QFrame::NoFrame</enum>
|
|
||||||
</property>
|
|
||||||
<property name="frameShadow">
|
|
||||||
<enum>QFrame::Plain</enum>
|
|
||||||
</property>
|
|
||||||
<property name="lineWidth">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<layout class="QGridLayout" name="gridLayout_2">
|
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QRadioButton" name="format_txt">
|
<widget class="QLabel" name="label_2">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Text</string>
|
<string>Tage</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="3" column="1">
|
||||||
<widget class="QRadioButton" name="format_csv">
|
<widget class="QCheckBox" name="signature">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Excel</string>
|
<string>Signatur anzeigen</string>
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
|
||||||
<widget class="QLabel" name="label_3">
|
|
||||||
<property name="text">
|
|
||||||
<string>Dateiformat</string>
|
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ from prettytable import PrettyTable
|
|||||||
from src.logic import Database
|
from src.logic import Database
|
||||||
from src.utils import stringToDate
|
from src.utils import stringToDate
|
||||||
import sqlite3 as sql
|
import sqlite3 as sql
|
||||||
|
from src import config, log
|
||||||
|
|
||||||
class ReportThread(QThread):
|
class ReportThread(QThread):
|
||||||
report_signal = pyqtSignal(str)
|
report_signal = pyqtSignal(str)
|
||||||
@@ -26,7 +27,12 @@ class ReportThread(QThread):
|
|||||||
path = db.db_path
|
path = db.db_path
|
||||||
day = QDate.currentDate().addDays(-self.days).toString("yyyy-MM-dd")
|
day = QDate.currentDate().addDays(-self.days).toString("yyyy-MM-dd")
|
||||||
query = f"""SELECT * FROM loans WHERE loan_date >= '{day}';"""
|
query = f"""SELECT * FROM loans WHERE loan_date >= '{day}';"""
|
||||||
|
log.debug(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")
|
||||||
|
log.debug("adding 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"
|
||||||
@@ -37,6 +43,7 @@ class ReportThread(QThread):
|
|||||||
cursor.execute(query)
|
cursor.execute(query)
|
||||||
loans = cursor.fetchall()
|
loans = cursor.fetchall()
|
||||||
self.report_nums_signal.emit(len(loans))
|
self.report_nums_signal.emit(len(loans))
|
||||||
|
log.debug(f"Found {len(loans)} loans")
|
||||||
counter = 0
|
counter = 0
|
||||||
for loan in loans:
|
for loan in loans:
|
||||||
counter += 1
|
counter += 1
|
||||||
@@ -45,14 +52,15 @@ class ReportThread(QThread):
|
|||||||
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)
|
||||||
if self.format == "tsv":
|
if self.format == "tsv":
|
||||||
table = table.get_csv_string()
|
table = table.get_csv_string()
|
||||||
tsv_table = table.replace(",", "\t")
|
tsv_table = table.replace(",", "\t")
|
||||||
|
|||||||
Reference in New Issue
Block a user