enable the addition of the signature in the report in the UI, update docs

This commit is contained in:
2025-01-29 11:09:34 +01:00
parent 21e09d1dc0
commit b5015b11d9
7 changed files with 131 additions and 96 deletions

View File

@@ -4,6 +4,7 @@ from src.utils import Icon
from src.utils.reportThread import ReportThread
from src.logic import Database
import os
from src import config, log
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_csv.clicked.connect(lambda: self.rthread.setFormat("tsv"))
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
self.dayslider.valueChanged.connect(self.set_days)
self.dayslider.valueChanged.connect(self.set_days_slider)
self.show()
# labels
self.label_4.hide()
def setSignature(self):
show_signature = self.signature.isChecked()
config.report.show_signature = show_signature
def set_days_by_radio(self):
if self.radio_year.isChecked():
self.set_days(365)
@@ -50,15 +56,26 @@ class ReportUi(QtWidgets.QDialog, Ui_Dialog):
self.set_days(7)
self.dayslider.setValue(7)
def set_days(self, value):
# if value is not 7,30,365, deactivate radio buttons
if value != 7 and value != 30 and value != 365:
self.radioButton.setChecked(True)
def set_days(self, days=None):
self.days = days
self.days = value
self.dayValue.setText(str(value))
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)
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.report_signal.connect(self.report_generated)
self.rthread.report_nums_signal.connect(self.show_progress)
@@ -68,7 +85,6 @@ class ReportUi(QtWidgets.QDialog, Ui_Dialog):
self.rthread.start()
def reset(self):
self.days = 0
self.reportprogress.hide()
self.reportprogress.setValue(0)
self.label_4.setText("Fortschritt:")

View File

@@ -12,7 +12,7 @@ from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.setWindowModality(QtCore.Qt.WindowModality.ApplicationModal)
Dialog.setWindowModality(QtCore.Qt.WindowModality.NonModal)
Dialog.resize(375, 245)
Dialog.setMinimumSize(QtCore.QSize(40, 0))
self.verticalLayout = QtWidgets.QVBoxLayout(Dialog)
@@ -22,9 +22,11 @@ class Ui_Dialog(object):
self.verticalLayout.addWidget(self.label)
self.gridLayout = QtWidgets.QGridLayout()
self.gridLayout.setObjectName("gridLayout")
self.label_2 = QtWidgets.QLabel(parent=Dialog)
self.label_2.setObjectName("label_2")
self.gridLayout.addWidget(self.label_2, 0, 0, 1, 1)
self.radioButton = QtWidgets.QRadioButton(parent=Dialog)
self.radioButton.setText("")
self.radioButton.setCheckable(True)
self.radioButton.setObjectName("radioButton")
self.gridLayout.addWidget(self.radioButton, 4, 2, 1, 1)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.radio_week = QtWidgets.QRadioButton(parent=Dialog)
@@ -37,10 +39,11 @@ class Ui_Dialog(object):
self.radio_year.setObjectName("radio_year")
self.horizontalLayout.addWidget(self.radio_year)
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)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed
)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.dayValue.sizePolicy().hasHeightForWidth())
@@ -51,15 +54,24 @@ class Ui_Dialog(object):
self.dayValue.setReadOnly(True)
self.dayValue.setObjectName("dayValue")
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.setText("")
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.setFocusPolicy(QtCore.Qt.FocusPolicy.ClickFocus)
self.dayslider.setMinimum(1)
@@ -70,23 +82,12 @@ class Ui_Dialog(object):
self.dayslider.setTickInterval(10)
self.dayslider.setObjectName("dayslider")
self.gridLayout.addWidget(self.dayslider, 0, 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_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.label_2 = QtWidgets.QLabel(parent=Dialog)
self.label_2.setObjectName("label_2")
self.gridLayout.addWidget(self.label_2, 0, 0, 1, 1)
self.signature = QtWidgets.QCheckBox(parent=Dialog)
self.signature.setObjectName("signature")
self.gridLayout.addWidget(self.signature, 3, 1, 1, 1)
self.verticalLayout.addLayout(self.gridLayout)
self.label_4 = QtWidgets.QLabel(parent=Dialog)
self.label_4.setObjectName("label_4")
@@ -110,15 +111,14 @@ class Ui_Dialog(object):
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.label.setText(
_translate("Dialog", "Wieviele Tage sollen im Bericht erfasst werden?")
)
self.label_2.setText(_translate("Dialog", "Tage"))
self.label.setText(_translate("Dialog", "Wieviele Tage sollen im Bericht erfasst werden?"))
self.radio_week.setText(_translate("Dialog", "Woche"))
self.radio_month.setText(_translate("Dialog", "Monat"))
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.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.generateReport.setText(_translate("Dialog", " Bericht erstellen"))

View File

@@ -32,10 +32,13 @@
</item>
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<item row="4" column="2">
<widget class="QRadioButton" name="radioButton">
<property name="text">
<string>Tage</string>
<string/>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
@@ -64,6 +67,13 @@
</item>
</layout>
</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">
<widget class="QLineEdit" name="dayValue">
<property name="sizePolicy">
@@ -92,23 +102,42 @@
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QRadioButton" name="radioButton">
<property name="text">
<string/>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="1">
<item row="4" column="1">
<widget class="QLabel" name="reportlink">
<property name="text">
<string/>
</property>
</widget>
</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">
<widget class="QSlider" name="dayslider">
<property name="focusPolicy">
@@ -134,39 +163,17 @@
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QFrame" name="frame">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Tage</string>
</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">
<widget class="QRadioButton" name="format_txt">
<property name="text">
<string>Text</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QRadioButton" name="format_csv">
<property name="text">
<string>Excel</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<item row="3" column="1">
<widget class="QCheckBox" name="signature">
<property name="text">
<string>Dateiformat</string>
<string>Signatur anzeigen</string>
</property>
</widget>
</item>