From 79f51852e5f08670ba88e16df09e225690801e21 Mon Sep 17 00:00:00 2001 From: WorldTeacher Date: Thu, 3 Apr 2025 19:57:34 +0200 Subject: [PATCH] initial commit --- .gitignore | 22 +- .trunk/.gitignore | 9 - .trunk/trunk.yaml | 10 - .vscode/settings.json | 16 ++ LICENSE | 20 +- backup/library.db | 0 database/library.db | Bin 0 -> 20480 bytes src/ui/sources/dialog_addBook_ui.py | 54 +++++ src/ui/sources/dialog_createUser_ui.py | 61 +++++ .../sources/dialog_extendLoanDuration_ui.py | 43 ++++ src/ui/sources/dialog_generateReport_ui.py | 119 +++++++++ src/ui/sources/dialog_settings_ui.py | 161 ++++++++++++ src/ui/sources/main_Loans_ui.py | 110 +++++++++ src/ui/sources/main_UserInterface_ui.py | 229 ++++++++++++++++++ src/ui/sources/main_userData_ui.py | 197 +++++++++++++++ test.py | 4 + 16 files changed, 1023 insertions(+), 32 deletions(-) delete mode 100644 .trunk/.gitignore delete mode 100644 .trunk/trunk.yaml create mode 100644 .vscode/settings.json create mode 100644 backup/library.db create mode 100644 database/library.db create mode 100644 src/ui/sources/dialog_addBook_ui.py create mode 100644 src/ui/sources/dialog_createUser_ui.py create mode 100644 src/ui/sources/dialog_extendLoanDuration_ui.py create mode 100644 src/ui/sources/dialog_generateReport_ui.py create mode 100644 src/ui/sources/dialog_settings_ui.py create mode 100644 src/ui/sources/main_Loans_ui.py create mode 100644 src/ui/sources/main_UserInterface_ui.py create mode 100644 src/ui/sources/main_userData_ui.py create mode 100644 test.py diff --git a/.gitignore b/.gitignore index 2c3dce1..ed468fc 100644 --- a/.gitignore +++ b/.gitignore @@ -216,15 +216,19 @@ compile_commands.json *_qmlcache.qrc -.history/* + +.history +depend +output/output/LOGtoJSON.exe + +.pytest_cache +output +docs/ +config.yaml **/tempCodeRunnerFile.py -output/** -archive/** -.vscode -backup -database -report/** -# Rust -target/ uv.lock +.history +.venv +venv +*.log diff --git a/.trunk/.gitignore b/.trunk/.gitignore deleted file mode 100644 index 15966d0..0000000 --- a/.trunk/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -*out -*logs -*actions -*notifications -*tools -plugins -user_trunk.yaml -user.yaml -tmp diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml deleted file mode 100644 index 49ea038..0000000 --- a/.trunk/trunk.yaml +++ /dev/null @@ -1,10 +0,0 @@ -# This file controls the behavior of Trunk: https://docs.trunk.io/cli -# To learn more about the format of this file, see https://docs.trunk.io/reference/trunk-yaml -version: 0.1 -cli: - version: 1.22.8 -plugins: - sources: - - id: trunk - ref: v1.6.4 - uri: https://github.com/trunk-io/plugins diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..9192ff9 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,16 @@ +{ + "files.exclude": { + "**/.git": true, + "**/.svn": true, + "**/.hg": true, + "**/CVS": true, + "**/.DS_Store": true, + "**/Thumbs.db": true, + "**/.trunk/*actions/": true, + "**/.trunk/*logs/": true, + "**/.trunk/*notifications/": true, + "**/.trunk/*out/": true, + "**/.trunk/*plugins/": true + }, + "hide-files.files": [] +} \ No newline at end of file diff --git a/LICENSE b/LICENSE index 664d8c4..aec92ac 100644 --- a/LICENSE +++ b/LICENSE @@ -1,9 +1,21 @@ MIT License -Copyright (c) 2024 WorldTeacher +Copyright (c) 2025 WorldTeacher -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/backup/library.db b/backup/library.db new file mode 100644 index 0000000..e69de29 diff --git a/database/library.db b/database/library.db new file mode 100644 index 0000000000000000000000000000000000000000..234b6928988065b6434749620421abfaecfd05ef GIT binary patch literal 20480 zcmeI&!EV|}7zgmNO;cc%czdW&rHwiq+5}+&7+O|6g{Dq~mXMSgu!fRyd`Od5uP0VJ9{&4P}xyK?v zg8&2|009U<00Izz00bcL-w}ARlDL}5WR#aIbUFhz7&<xgGG+j=DCpVkB{JPs}!VrQFrV6E1-n>H;O>2Voz&#q~tS2x;LW346ky!dgK zIoh^Xt+v%#v9@TGG>W6p3kRRf9C-eLoSEBHXEOP`vLpA$j|Spdc$c%IW9E0+)JJV%&r^eo zzH`V7QJFh2l<_^+RnfmH`j%Hu{^@v8IwWq%wQU1{J2GjY0!^3(v^nM*z zR8f^oiBlvgO{C<3l|)Jv z;rJkiJexoFp6IXiNBT_>pg{lv5P$##AOHafKmY;|fB*#kw*s}qRg%A+&0pW-PpM6- zrP4iGspc!Kq0h>9YvrHsm}cqjeTRFzukb3Acy`b7`CorV^w;|D`a2PzK>z{}fB*y_009U<00Izz00bcLuL{g3k|d>Mvq_RT zJ-1&QM`oc^xh;MTNTssbRQ7bV8b_6K9GTU5HNK2?mW-oH`6q3BnIwsG=D9^a0PRM1 AumAu6 literal 0 HcmV?d00001 diff --git a/src/ui/sources/dialog_addBook_ui.py b/src/ui/sources/dialog_addBook_ui.py new file mode 100644 index 0000000..e8fb499 --- /dev/null +++ b/src/ui/sources/dialog_addBook_ui.py @@ -0,0 +1,54 @@ +# Form implementation generated from reading ui file '/home/alexander/GitHub/LibrarySystem/src/ui/sources/dialog_addBook.ui' +# +# Created by: PyQt6 UI code generator 6.7.1 +# +# WARNING: Any manual changes made to this file will be lost when pyuic6 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt6 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(262, 100) + self.gridLayout = QtWidgets.QGridLayout(Dialog) + self.gridLayout.setObjectName("gridLayout") + self.book_signature = QtWidgets.QLineEdit(parent=Dialog) + self.book_signature.setObjectName("book_signature") + self.gridLayout.addWidget(self.book_signature, 1, 1, 1, 1) + self.label_2 = QtWidgets.QLabel(parent=Dialog) + self.label_2.setObjectName("label_2") + self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1) + self.label = QtWidgets.QLabel(parent=Dialog) + self.label.setObjectName("label") + self.gridLayout.addWidget(self.label, 0, 0, 1, 1) + self.book_title = QtWidgets.QLineEdit(parent=Dialog) + self.book_title.setObjectName("book_title") + self.gridLayout.addWidget(self.book_title, 0, 1, 1, 1) + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") + self.btn_save = QtWidgets.QPushButton(parent=Dialog) + self.btn_save.setFocusPolicy(QtCore.Qt.FocusPolicy.ClickFocus) + self.btn_save.setObjectName("btn_save") + self.horizontalLayout.addWidget(self.btn_save) + self.btn_cancel = QtWidgets.QPushButton(parent=Dialog) + self.btn_cancel.setFocusPolicy(QtCore.Qt.FocusPolicy.ClickFocus) + self.btn_cancel.setObjectName("btn_cancel") + self.horizontalLayout.addWidget(self.btn_cancel) + self.gridLayout.addLayout(self.horizontalLayout, 2, 1, 1, 1) + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + Dialog.setTabOrder(self.book_title, self.book_signature) + Dialog.setTabOrder(self.book_signature, self.btn_save) + Dialog.setTabOrder(self.btn_save, self.btn_cancel) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Dialog")) + self.label_2.setText(_translate("Dialog", "Signatur")) + self.label.setText(_translate("Dialog", "Titel")) + self.btn_save.setText(_translate("Dialog", "Speichern")) + self.btn_cancel.setText(_translate("Dialog", "Abbrechen")) diff --git a/src/ui/sources/dialog_createUser_ui.py b/src/ui/sources/dialog_createUser_ui.py new file mode 100644 index 0000000..4618a8d --- /dev/null +++ b/src/ui/sources/dialog_createUser_ui.py @@ -0,0 +1,61 @@ +# Form implementation generated from reading ui file '/home/alexander/GitHub/LibrarySystem/src/ui/sources/dialog_createUser.ui' +# +# Created by: PyQt6 UI code generator 6.7.1 +# +# WARNING: Any manual changes made to this file will be lost when pyuic6 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt6 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.setWindowModality(QtCore.Qt.WindowModality.WindowModal) + Dialog.resize(400, 132) + self.gridLayout = QtWidgets.QGridLayout(Dialog) + self.gridLayout.setObjectName("gridLayout") + self.userno = QtWidgets.QLineEdit(parent=Dialog) + self.userno.setInputMethodHints(QtCore.Qt.InputMethodHint.ImhDigitsOnly) + self.userno.setObjectName("userno") + self.gridLayout.addWidget(self.userno, 1, 1, 1, 1) + self.label_2 = QtWidgets.QLabel(parent=Dialog) + self.label_2.setObjectName("label_2") + self.gridLayout.addWidget(self.label_2, 1, 0, 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.user_mail = QtWidgets.QLineEdit(parent=Dialog) + self.user_mail.setObjectName("user_mail") + self.gridLayout.addWidget(self.user_mail, 2, 1, 1, 1) + self.label = QtWidgets.QLabel(parent=Dialog) + self.label.setObjectName("label") + self.gridLayout.addWidget(self.label, 0, 0, 1, 1) + self.username = QtWidgets.QLineEdit(parent=Dialog) + self.username.setObjectName("username") + self.gridLayout.addWidget(self.username, 0, 1, 1, 1) + self.buttonBox = QtWidgets.QDialogButtonBox(parent=Dialog) + self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal) + self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Save) + self.buttonBox.setObjectName("buttonBox") + self.gridLayout.addWidget(self.buttonBox, 4, 1, 1, 1) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding) + self.gridLayout.addItem(spacerItem, 3, 0, 1, 1) + + self.retranslateUi(Dialog) + self.buttonBox.accepted.connect(Dialog.accept) # type: ignore + self.buttonBox.rejected.connect(Dialog.reject) # type: ignore + QtCore.QMetaObject.connectSlotsByName(Dialog) + Dialog.setTabOrder(self.username, self.userno) + Dialog.setTabOrder(self.userno, self.user_mail) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Nutzer anlegen")) + self.userno.setPlaceholderText(_translate("Dialog", "102888557")) + self.label_2.setText(_translate("Dialog", "Matrikelnummer")) + self.label_3.setText(_translate("Dialog", "Mail")) + self.user_mail.setPlaceholderText(_translate("Dialog", "email@ph-freiburg.de")) + self.label.setText(_translate("Dialog", "Name, Vorname")) + self.username.setPlaceholderText(_translate("Dialog", "Nachname, Vorname")) diff --git a/src/ui/sources/dialog_extendLoanDuration_ui.py b/src/ui/sources/dialog_extendLoanDuration_ui.py new file mode 100644 index 0000000..fc4b437 --- /dev/null +++ b/src/ui/sources/dialog_extendLoanDuration_ui.py @@ -0,0 +1,43 @@ +# Form implementation generated from reading ui file '/home/alexander/GitHub/LibrarySystem/src/ui/sources/dialog_extendLoanDuration.ui' +# +# Created by: PyQt6 UI code generator 6.7.1 +# +# WARNING: Any manual changes made to this file will be lost when pyuic6 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt6 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.setWindowModality(QtCore.Qt.WindowModality.ApplicationModal) + Dialog.resize(400, 300) + self.gridLayout = QtWidgets.QGridLayout(Dialog) + self.gridLayout.setObjectName("gridLayout") + self.extenduntil = QtWidgets.QCalendarWidget(parent=Dialog) + self.extenduntil.setObjectName("extenduntil") + self.gridLayout.addWidget(self.extenduntil, 1, 2, 1, 1) + self.buttonBox = QtWidgets.QDialogButtonBox(parent=Dialog) + self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal) + self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok) + self.buttonBox.setObjectName("buttonBox") + self.gridLayout.addWidget(self.buttonBox, 2, 2, 1, 1) + self.label = QtWidgets.QLabel(parent=Dialog) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(True) + self.label.setFont(font) + self.label.setObjectName("label") + self.gridLayout.addWidget(self.label, 0, 2, 1, 1) + + self.retranslateUi(Dialog) + self.buttonBox.accepted.connect(Dialog.accept) # type: ignore + self.buttonBox.rejected.connect(Dialog.reject) # type: ignore + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Dialog")) + self.label.setText(_translate("Dialog", "Bitte das Verlängerungsdatum auswählen")) diff --git a/src/ui/sources/dialog_generateReport_ui.py b/src/ui/sources/dialog_generateReport_ui.py new file mode 100644 index 0000000..d611bda --- /dev/null +++ b/src/ui/sources/dialog_generateReport_ui.py @@ -0,0 +1,119 @@ +# Form implementation generated from reading ui file '/home/alexander/GitHub/LibrarySystem/src/ui/sources/dialog_generateReport.ui' +# +# Created by: PyQt6 UI code generator 6.7.1 +# +# WARNING: Any manual changes made to this file will be lost when pyuic6 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt6 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(375, 247) + Dialog.setMinimumSize(QtCore.QSize(40, 0)) + self.verticalLayout = QtWidgets.QVBoxLayout(Dialog) + self.verticalLayout.setObjectName("verticalLayout") + self.label = QtWidgets.QLabel(parent=Dialog) + self.label.setObjectName("label") + 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.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") + self.radio_week = QtWidgets.QRadioButton(parent=Dialog) + self.radio_week.setObjectName("radio_week") + self.horizontalLayout.addWidget(self.radio_week) + self.radio_month = QtWidgets.QRadioButton(parent=Dialog) + self.radio_month.setObjectName("radio_month") + self.horizontalLayout.addWidget(self.radio_month) + self.radio_year = QtWidgets.QRadioButton(parent=Dialog) + self.radio_year.setObjectName("radio_year") + self.horizontalLayout.addWidget(self.radio_year) + self.gridLayout.addLayout(self.horizontalLayout, 1, 1, 1, 1) + self.dayValue = QtWidgets.QLineEdit(parent=Dialog) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dayValue.sizePolicy().hasHeightForWidth()) + self.dayValue.setSizePolicy(sizePolicy) + self.dayValue.setMinimumSize(QtCore.QSize(0, 0)) + self.dayValue.setMaximumSize(QtCore.QSize(40, 16777215)) + self.dayValue.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + 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.dayslider = QtWidgets.QSlider(parent=Dialog) + self.dayslider.setFocusPolicy(QtCore.Qt.FocusPolicy.ClickFocus) + self.dayslider.setMinimum(1) + self.dayslider.setMaximum(365) + self.dayslider.setOrientation(QtCore.Qt.Orientation.Horizontal) + self.dayslider.setInvertedControls(True) + self.dayslider.setTickPosition(QtWidgets.QSlider.TickPosition.TicksAbove) + 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.verticalLayout.addLayout(self.gridLayout) + self.label_4 = QtWidgets.QLabel(parent=Dialog) + self.label_4.setObjectName("label_4") + self.verticalLayout.addWidget(self.label_4) + self.reportprogress = QtWidgets.QProgressBar(parent=Dialog) + self.reportprogress.setProperty("value", 24) + self.reportprogress.setTextVisible(True) + self.reportprogress.setInvertedAppearance(False) + self.reportprogress.setObjectName("reportprogress") + self.verticalLayout.addWidget(self.reportprogress) + self.generateReport = QtWidgets.QPushButton(parent=Dialog) + self.generateReport.setObjectName("generateReport") + self.verticalLayout.addWidget(self.generateReport) + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + Dialog.setTabOrder(self.radio_week, self.radio_month) + Dialog.setTabOrder(self.radio_month, self.radio_year) + Dialog.setTabOrder(self.radio_year, self.generateReport) + + 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.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.label_4.setText(_translate("Dialog", "Fortschritt:")) + self.generateReport.setText(_translate("Dialog", " Bericht erstellen")) diff --git a/src/ui/sources/dialog_settings_ui.py b/src/ui/sources/dialog_settings_ui.py new file mode 100644 index 0000000..326270c --- /dev/null +++ b/src/ui/sources/dialog_settings_ui.py @@ -0,0 +1,161 @@ +# Form implementation generated from reading ui file '/home/alexander/GitHub/LibrarySystem/src/ui/sources/dialog_settings.ui' +# +# Created by: PyQt6 UI code generator 6.7.1 +# +# WARNING: Any manual changes made to this file will be lost when pyuic6 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt6 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(492, 306) + self.formLayout = QtWidgets.QFormLayout(Dialog) + self.formLayout.setObjectName("formLayout") + self.label = QtWidgets.QLabel(parent=Dialog) + self.label.setObjectName("label") + self.formLayout.setWidget(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label) + self.institution_name = QtWidgets.QLineEdit(parent=Dialog) + self.institution_name.setObjectName("institution_name") + self.formLayout.setWidget(0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.institution_name) + self.label_3 = QtWidgets.QLabel(parent=Dialog) + self.label_3.setObjectName("label_3") + self.formLayout.setWidget(5, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_3) + self.databasesettings = QtWidgets.QGridLayout() + self.databasesettings.setObjectName("databasesettings") + self.database_name = QtWidgets.QLineEdit(parent=Dialog) + self.database_name.setObjectName("database_name") + self.databasesettings.addWidget(self.database_name, 1, 1, 1, 1) + self.label_4 = QtWidgets.QLabel(parent=Dialog) + self.label_4.setObjectName("label_4") + self.databasesettings.addWidget(self.label_4, 0, 0, 1, 1) + self.label_6 = QtWidgets.QLabel(parent=Dialog) + self.label_6.setObjectName("label_6") + self.databasesettings.addWidget(self.label_6, 2, 0, 1, 1) + self.database_path = QtWidgets.QLineEdit(parent=Dialog) + self.database_path.setObjectName("database_path") + self.databasesettings.addWidget(self.database_path, 0, 1, 1, 1) + self.database_backupLocation = QtWidgets.QLineEdit(parent=Dialog) + self.database_backupLocation.setObjectName("database_backupLocation") + self.databasesettings.addWidget(self.database_backupLocation, 2, 1, 1, 1) + self.label_5 = QtWidgets.QLabel(parent=Dialog) + self.label_5.setObjectName("label_5") + self.databasesettings.addWidget(self.label_5, 1, 0, 1, 1) + self.btn_select_database_path = QtWidgets.QToolButton(parent=Dialog) + self.btn_select_database_path.setObjectName("btn_select_database_path") + self.databasesettings.addWidget(self.btn_select_database_path, 0, 2, 1, 1) + self.btn_select_database_name = QtWidgets.QToolButton(parent=Dialog) + self.btn_select_database_name.setObjectName("btn_select_database_name") + self.databasesettings.addWidget(self.btn_select_database_name, 1, 2, 1, 1) + self.btn_select_database_backupLocation = QtWidgets.QToolButton(parent=Dialog) + self.btn_select_database_backupLocation.setObjectName("btn_select_database_backupLocation") + self.databasesettings.addWidget(self.btn_select_database_backupLocation, 2, 2, 1, 1) + self.formLayout.setLayout(5, QtWidgets.QFormLayout.ItemRole.FieldRole, self.databasesettings) + self.buttonBox = QtWidgets.QDialogButtonBox(parent=Dialog) + self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal) + self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Discard|QtWidgets.QDialogButtonBox.StandardButton.Ok) + self.buttonBox.setObjectName("buttonBox") + self.formLayout.setWidget(7, QtWidgets.QFormLayout.ItemRole.FieldRole, self.buttonBox) + self.label_9 = QtWidgets.QLabel(parent=Dialog) + self.label_9.setObjectName("label_9") + 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.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.report_day = QtWidgets.QComboBox(parent=Dialog) + self.report_day.setObjectName("report_day") + self.report_day.addItem("") + 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.formLayout.setLayout(6, QtWidgets.QFormLayout.ItemRole.FieldRole, self.gridLayout) + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") + self.delete_inactive_user_duration = QtWidgets.QSpinBox(parent=Dialog) + self.delete_inactive_user_duration.setMaximum(9999) + self.delete_inactive_user_duration.setProperty("value", 365) + self.delete_inactive_user_duration.setObjectName("delete_inactive_user_duration") + self.horizontalLayout.addWidget(self.delete_inactive_user_duration) + self.label_12 = QtWidgets.QLabel(parent=Dialog) + self.label_12.setMaximumSize(QtCore.QSize(43, 16777215)) + self.label_12.setObjectName("label_12") + self.horizontalLayout.addWidget(self.label_12) + self.formLayout.setLayout(3, QtWidgets.QFormLayout.ItemRole.FieldRole, self.horizontalLayout) + self.label_7 = QtWidgets.QLabel(parent=Dialog) + self.label_7.setObjectName("label_7") + self.formLayout.setWidget(3, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_7) + self.horizontalLayout_2 = QtWidgets.QHBoxLayout() + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.default_loan_duration = QtWidgets.QSpinBox(parent=Dialog) + self.default_loan_duration.setProperty("value", 7) + self.default_loan_duration.setObjectName("default_loan_duration") + self.horizontalLayout_2.addWidget(self.default_loan_duration) + self.label_13 = QtWidgets.QLabel(parent=Dialog) + self.label_13.setMaximumSize(QtCore.QSize(43, 16777215)) + self.label_13.setObjectName("label_13") + self.horizontalLayout_2.addWidget(self.label_13) + self.formLayout.setLayout(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.horizontalLayout_2) + self.label_2 = QtWidgets.QLabel(parent=Dialog) + self.label_2.setObjectName("label_2") + self.formLayout.setWidget(1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_2) + + self.retranslateUi(Dialog) + self.buttonBox.accepted.connect(Dialog.accept) # type: ignore + self.buttonBox.rejected.connect(Dialog.reject) # type: ignore + QtCore.QMetaObject.connectSlotsByName(Dialog) + Dialog.setTabOrder(self.institution_name, self.database_path) + Dialog.setTabOrder(self.database_path, self.database_name) + Dialog.setTabOrder(self.database_name, self.database_backupLocation) + Dialog.setTabOrder(self.database_backupLocation, self.btn_select_database_path) + Dialog.setTabOrder(self.btn_select_database_path, self.btn_select_database_name) + Dialog.setTabOrder(self.btn_select_database_name, self.btn_select_database_backupLocation) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Dialog")) + self.label.setText(_translate("Dialog", "Name der Einrichtung")) + self.label_3.setText(_translate("Dialog", "Datenbank")) + self.label_4.setText(_translate("Dialog", "Speicherort")) + self.label_6.setText(_translate("Dialog", "Sicherungspfad")) + self.label_5.setText(_translate("Dialog", "Datenbankname")) + self.btn_select_database_path.setText(_translate("Dialog", "...")) + 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.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.label_12.setText(_translate("Dialog", "Tage(n)")) + self.label_7.setText(_translate("Dialog", "Inaktive Nutzer\n" +"Löschen nach")) + self.label_13.setText(_translate("Dialog", "Tage(n)")) + self.label_2.setText(_translate("Dialog", "Leihdauer")) diff --git a/src/ui/sources/main_Loans_ui.py b/src/ui/sources/main_Loans_ui.py new file mode 100644 index 0000000..3826afb --- /dev/null +++ b/src/ui/sources/main_Loans_ui.py @@ -0,0 +1,110 @@ +# Form implementation generated from reading ui file '/home/alexander/GitHub/LibrarySystem/src/ui/sources/main_Loans.ui' +# +# Created by: PyQt6 UI code generator 6.7.1 +# +# WARNING: Any manual changes made to this file will be lost when pyuic6 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt6 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(899, 658) + self.centralwidget = QtWidgets.QWidget(parent=MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget) + self.verticalLayout.setObjectName("verticalLayout") + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") + self.radio_all = QtWidgets.QRadioButton(parent=self.centralwidget) + self.radio_all.setChecked(True) + self.radio_all.setObjectName("radio_all") + self.horizontalLayout.addWidget(self.radio_all) + self.radio_current = QtWidgets.QRadioButton(parent=self.centralwidget) + self.radio_current.setObjectName("radio_current") + self.horizontalLayout.addWidget(self.radio_current) + self.radio_overdue = QtWidgets.QRadioButton(parent=self.centralwidget) + self.radio_overdue.setObjectName("radio_overdue") + self.horizontalLayout.addWidget(self.radio_overdue) + spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum) + self.horizontalLayout.addItem(spacerItem) + self.verticalLayout.addLayout(self.horizontalLayout) + self.horizontalLayout_2 = QtWidgets.QHBoxLayout() + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.searchbar = QtWidgets.QLineEdit(parent=self.centralwidget) + self.searchbar.setObjectName("searchbar") + self.horizontalLayout_2.addWidget(self.searchbar) + self.searchFields = QtWidgets.QComboBox(parent=self.centralwidget) + self.searchFields.setObjectName("searchFields") + self.searchFields.addItem("") + self.searchFields.addItem("") + self.searchFields.addItem("") + self.horizontalLayout_2.addWidget(self.searchFields) + self.verticalLayout.addLayout(self.horizontalLayout_2) + self.loanTable = QtWidgets.QTableWidget(parent=self.centralwidget) + self.loanTable.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers) + self.loanTable.setSelectionMode(QtWidgets.QAbstractItemView.SelectionMode.SingleSelection) + self.loanTable.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectionBehavior.SelectRows) + self.loanTable.setObjectName("loanTable") + self.loanTable.setColumnCount(7) + self.loanTable.setRowCount(0) + item = QtWidgets.QTableWidgetItem() + self.loanTable.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + self.loanTable.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + self.loanTable.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + self.loanTable.setHorizontalHeaderItem(3, item) + item = QtWidgets.QTableWidgetItem() + self.loanTable.setHorizontalHeaderItem(4, item) + item = QtWidgets.QTableWidgetItem() + self.loanTable.setHorizontalHeaderItem(5, item) + item = QtWidgets.QTableWidgetItem() + self.loanTable.setHorizontalHeaderItem(6, item) + self.verticalLayout.addWidget(self.loanTable) + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(parent=MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 899, 22)) + self.menubar.setObjectName("menubar") + self.menuDatei = QtWidgets.QMenu(parent=self.menubar) + self.menuDatei.setObjectName("menuDatei") + MainWindow.setMenuBar(self.menubar) + self.actionBeenden = QtGui.QAction(parent=MainWindow) + self.actionBeenden.setObjectName("actionBeenden") + self.menuDatei.addAction(self.actionBeenden) + self.menubar.addAction(self.menuDatei.menuAction()) + + self.retranslateUi(MainWindow) + self.actionBeenden.triggered.connect(MainWindow.close) # type: ignore + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) + self.radio_all.setText(_translate("MainWindow", "Alle Ausleihen")) + self.radio_current.setText(_translate("MainWindow", "Aktuell Entliehene Medien")) + self.radio_overdue.setText(_translate("MainWindow", "Überzogene Medien")) + self.searchFields.setItemText(0, _translate("MainWindow", "Titel")) + self.searchFields.setItemText(1, _translate("MainWindow", "Signatur")) + self.searchFields.setItemText(2, _translate("MainWindow", "Nutzer")) + item = self.loanTable.horizontalHeaderItem(0) + item.setText(_translate("MainWindow", "ISBN")) + item = self.loanTable.horizontalHeaderItem(1) + item.setText(_translate("MainWindow", "Signatur")) + item = self.loanTable.horizontalHeaderItem(2) + item.setText(_translate("MainWindow", "Titel")) + item = self.loanTable.horizontalHeaderItem(3) + item.setText(_translate("MainWindow", "Nutzerkonto")) + item = self.loanTable.horizontalHeaderItem(4) + item.setText(_translate("MainWindow", "entliehen am")) + item = self.loanTable.horizontalHeaderItem(5) + item.setText(_translate("MainWindow", "entliehen bis")) + item = self.loanTable.horizontalHeaderItem(6) + item.setText(_translate("MainWindow", "Zurückgegeben am")) + self.menuDatei.setTitle(_translate("MainWindow", "Datei")) + self.actionBeenden.setText(_translate("MainWindow", "Beenden")) + self.actionBeenden.setShortcut(_translate("MainWindow", "Q")) diff --git a/src/ui/sources/main_UserInterface_ui.py b/src/ui/sources/main_UserInterface_ui.py new file mode 100644 index 0000000..ff0ff41 --- /dev/null +++ b/src/ui/sources/main_UserInterface_ui.py @@ -0,0 +1,229 @@ +# Form implementation generated from reading ui file '/home/alexander/GitHub/LibrarySystem/src/ui/sources/main_UserInterface.ui' +# +# Created by: PyQt6 UI code generator 6.7.1 +# +# WARNING: Any manual changes made to this file will be lost when pyuic6 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt6 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(800, 602) + self.centralwidget = QtWidgets.QWidget(parent=MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget) + self.verticalLayout.setObjectName("verticalLayout") + self.gridLayout = QtWidgets.QGridLayout() + self.gridLayout.setObjectName("gridLayout") + self.horizontalLayout_4 = QtWidgets.QHBoxLayout() + self.horizontalLayout_4.setObjectName("horizontalLayout_4") + self.duedate = QtWidgets.QDateEdit(parent=self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.duedate.sizePolicy().hasHeightForWidth()) + self.duedate.setSizePolicy(sizePolicy) + self.duedate.setMinimumSize(QtCore.QSize(130, 0)) + self.duedate.setMaximumSize(QtCore.QSize(100, 16777215)) + self.duedate.setBaseSize(QtCore.QSize(70, 0)) + self.duedate.setObjectName("duedate") + self.horizontalLayout_4.addWidget(self.duedate) + spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum) + self.horizontalLayout_4.addItem(spacerItem) + self.gridLayout.addLayout(self.horizontalLayout_4, 5, 1, 1, 1) + self.label_3 = QtWidgets.QLabel(parent=self.centralwidget) + self.label_3.setObjectName("label_3") + self.gridLayout.addWidget(self.label_3, 3, 0, 1, 1) + self.label_6 = QtWidgets.QLabel(parent=self.centralwidget) + self.label_6.setAlignment(QtCore.Qt.AlignmentFlag.AlignLeading|QtCore.Qt.AlignmentFlag.AlignLeft|QtCore.Qt.AlignmentFlag.AlignVCenter) + self.label_6.setObjectName("label_6") + self.gridLayout.addWidget(self.label_6, 5, 0, 1, 1) + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") + self.label_5 = QtWidgets.QLabel(parent=self.centralwidget) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + self.label_5.setFont(font) + self.label_5.setObjectName("label_5") + self.horizontalLayout.addWidget(self.label_5) + self.mode = QtWidgets.QLabel(parent=self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.mode.sizePolicy().hasHeightForWidth()) + self.mode.setSizePolicy(sizePolicy) + self.mode.setMinimumSize(QtCore.QSize(62, 0)) + self.mode.setMaximumSize(QtCore.QSize(62, 16777215)) + self.mode.setBaseSize(QtCore.QSize(62, 0)) + self.mode.setAutoFillBackground(False) + self.mode.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) + self.mode.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) + self.mode.setLineWidth(2) + self.mode.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) + self.mode.setObjectName("mode") + self.horizontalLayout.addWidget(self.mode) + self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1) + self.label = QtWidgets.QLabel(parent=self.centralwidget) + self.label.setObjectName("label") + self.gridLayout.addWidget(self.label, 1, 0, 1, 1) + self.input_username = QtWidgets.QLineEdit(parent=self.centralwidget) + self.input_username.setObjectName("input_username") + self.gridLayout.addWidget(self.input_username, 2, 1, 1, 1) + self.input_file_ident = QtWidgets.QLineEdit(parent=self.centralwidget) + self.input_file_ident.setObjectName("input_file_ident") + self.gridLayout.addWidget(self.input_file_ident, 3, 1, 1, 1) + self.horizontalLayout_3 = QtWidgets.QHBoxLayout() + self.horizontalLayout_3.setObjectName("horizontalLayout_3") + spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum) + self.horizontalLayout_3.addItem(spacerItem1) + self.btn_createNewUser = QtWidgets.QPushButton(parent=self.centralwidget) + self.btn_createNewUser.setObjectName("btn_createNewUser") + self.horizontalLayout_3.addWidget(self.btn_createNewUser) + self.gridLayout.addLayout(self.horizontalLayout_3, 0, 1, 1, 1) + self.label_2 = QtWidgets.QLabel(parent=self.centralwidget) + self.label_2.setObjectName("label_2") + self.gridLayout.addWidget(self.label_2, 2, 0, 1, 1) + self.input_userno = QtWidgets.QLineEdit(parent=self.centralwidget) + self.input_userno.setObjectName("input_userno") + self.gridLayout.addWidget(self.input_userno, 1, 1, 1, 1) + self.verticalLayout.addLayout(self.gridLayout) + self.groupBox = QtWidgets.QGroupBox(parent=self.centralwidget) + self.groupBox.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.groupBox.setObjectName("groupBox") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.groupBox) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.userdata = QtWidgets.QTextEdit(parent=self.groupBox) + font = QtGui.QFont() + font.setFamily("Arial") + font.setPointSize(11) + font.setBold(True) + self.userdata.setFont(font) + self.userdata.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.userdata.setReadOnly(True) + self.userdata.setObjectName("userdata") + self.horizontalLayout_2.addWidget(self.userdata) + self.groupBox_2 = QtWidgets.QGroupBox(parent=self.groupBox) + self.groupBox_2.setObjectName("groupBox_2") + self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox_2) + self.gridLayout_2.setObjectName("gridLayout_2") + self.btn_show_lentmedia = QtWidgets.QPushButton(parent=self.groupBox_2) + self.btn_show_lentmedia.setFocusPolicy(QtCore.Qt.FocusPolicy.ClickFocus) + self.btn_show_lentmedia.setText("") + self.btn_show_lentmedia.setObjectName("btn_show_lentmedia") + self.gridLayout_2.addWidget(self.btn_show_lentmedia, 0, 1, 1, 1) + self.label_4 = QtWidgets.QLabel(parent=self.groupBox_2) + self.label_4.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight|QtCore.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.AlignmentFlag.AlignVCenter) + self.label_4.setObjectName("label_4") + self.gridLayout_2.addWidget(self.label_4, 0, 0, 1, 1) + self.label_7 = QtWidgets.QLabel(parent=self.groupBox_2) + self.label_7.setObjectName("label_7") + self.gridLayout_2.addWidget(self.label_7, 1, 0, 1, 1) + self.nextReturnDate = QtWidgets.QLabel(parent=self.groupBox_2) + self.nextReturnDate.setText("") + self.nextReturnDate.setObjectName("nextReturnDate") + self.gridLayout_2.addWidget(self.nextReturnDate, 1, 1, 1, 1) + self.horizontalLayout_2.addWidget(self.groupBox_2) + self.horizontalLayout_2.setStretch(0, 3) + self.horizontalLayout_2.setStretch(1, 1) + self.verticalLayout.addWidget(self.groupBox) + self.mediaOverview = QtWidgets.QTableWidget(parent=self.centralwidget) + self.mediaOverview.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.mediaOverview.setObjectName("mediaOverview") + self.mediaOverview.setColumnCount(3) + self.mediaOverview.setRowCount(0) + item = QtWidgets.QTableWidgetItem() + self.mediaOverview.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + self.mediaOverview.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + self.mediaOverview.setHorizontalHeaderItem(2, item) + self.verticalLayout.addWidget(self.mediaOverview) + self.verticalLayout.setStretch(1, 10) + self.verticalLayout.setStretch(2, 20) + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(parent=MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 22)) + self.menubar.setObjectName("menubar") + self.menuDatei = QtWidgets.QMenu(parent=self.menubar) + self.menuDatei.setObjectName("menuDatei") + self.menuHotkeys = QtWidgets.QMenu(parent=self.menubar) + self.menuHotkeys.setObjectName("menuHotkeys") + self.menuFenster = QtWidgets.QMenu(parent=self.menubar) + self.menuFenster.setObjectName("menuFenster") + MainWindow.setMenuBar(self.menubar) + self.statusbar = QtWidgets.QStatusBar(parent=MainWindow) + self.statusbar.setObjectName("statusbar") + MainWindow.setStatusBar(self.statusbar) + self.actionEinstellungen = QtGui.QAction(parent=MainWindow) + self.actionEinstellungen.setObjectName("actionEinstellungen") + self.actionBeenden = QtGui.QAction(parent=MainWindow) + self.actionBeenden.setObjectName("actionBeenden") + self.actionRueckgabemodus = QtGui.QAction(parent=MainWindow) + self.actionRueckgabemodus.setObjectName("actionRueckgabemodus") + self.actionNutzer = QtGui.QAction(parent=MainWindow) + self.actionNutzer.setObjectName("actionNutzer") + self.actionNutzer_2 = QtGui.QAction(parent=MainWindow) + self.actionNutzer_2.setObjectName("actionNutzer_2") + self.actionAusleihistorie = QtGui.QAction(parent=MainWindow) + self.actionAusleihistorie.setObjectName("actionAusleihistorie") + self.actionBericht_erstellen = QtGui.QAction(parent=MainWindow) + self.actionBericht_erstellen.setObjectName("actionBericht_erstellen") + self.actionNutzer_3 = QtGui.QAction(parent=MainWindow) + self.actionNutzer_3.setObjectName("actionNutzer_3") + self.menuDatei.addAction(self.actionEinstellungen) + self.menuDatei.addAction(self.actionBeenden) + self.menuHotkeys.addAction(self.actionRueckgabemodus) + self.menuFenster.addAction(self.actionNutzer) + self.menuFenster.addAction(self.actionAusleihistorie) + self.menuFenster.addAction(self.actionBericht_erstellen) + self.menubar.addAction(self.menuDatei.menuAction()) + self.menubar.addAction(self.menuHotkeys.menuAction()) + self.menubar.addAction(self.menuFenster.menuAction()) + + self.retranslateUi(MainWindow) + self.actionBeenden.triggered.connect(MainWindow.close) # type: ignore + QtCore.QMetaObject.connectSlotsByName(MainWindow) + MainWindow.setTabOrder(self.btn_createNewUser, self.input_userno) + MainWindow.setTabOrder(self.input_userno, self.input_username) + MainWindow.setTabOrder(self.input_username, self.input_file_ident) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) + self.label_3.setText(_translate("MainWindow", "Signatur")) + self.label_6.setText(_translate("MainWindow", "Ausleihe bis")) + self.label_5.setText(_translate("MainWindow", "Modus")) + self.mode.setText(_translate("MainWindow", "Rückgabe")) + self.label.setText(_translate("MainWindow", "Matrikelnummer")) + self.btn_createNewUser.setText(_translate("MainWindow", "Neuen Nutzer anlegen")) + self.label_2.setText(_translate("MainWindow", "Benutzername")) + self.groupBox.setTitle(_translate("MainWindow", "Nutzerdaten")) + self.groupBox_2.setTitle(_translate("MainWindow", "Ausleihdaten")) + self.label_4.setText(_translate("MainWindow", "Anzahl Ausleihen")) + self.label_7.setText(_translate("MainWindow", "Nächstes Rückgabedatum")) + item = self.mediaOverview.horizontalHeaderItem(0) + item.setText(_translate("MainWindow", "Signatur")) + item = self.mediaOverview.horizontalHeaderItem(1) + item.setText(_translate("MainWindow", "Titel")) + item = self.mediaOverview.horizontalHeaderItem(2) + item.setText(_translate("MainWindow", "Status")) + self.menuDatei.setTitle(_translate("MainWindow", "Datei")) + self.menuHotkeys.setTitle(_translate("MainWindow", "Hotkeys")) + self.menuFenster.setTitle(_translate("MainWindow", "Fenster")) + self.actionEinstellungen.setText(_translate("MainWindow", "Einstellungen")) + self.actionBeenden.setText(_translate("MainWindow", "Beenden")) + self.actionRueckgabemodus.setText(_translate("MainWindow", "Rückgabemodus")) + self.actionRueckgabemodus.setShortcut(_translate("MainWindow", "F5")) + self.actionNutzer.setText(_translate("MainWindow", "Nutzer")) + self.actionNutzer.setShortcut(_translate("MainWindow", "F6")) + self.actionNutzer_2.setText(_translate("MainWindow", "Nutzer")) + self.actionAusleihistorie.setText(_translate("MainWindow", "Ausleihhistorie")) + self.actionAusleihistorie.setShortcut(_translate("MainWindow", "F8")) + self.actionBericht_erstellen.setText(_translate("MainWindow", "Bericht erstellen")) + self.actionBericht_erstellen.setShortcut(_translate("MainWindow", "F7")) + self.actionNutzer_3.setText(_translate("MainWindow", "Nutzer")) diff --git a/src/ui/sources/main_userData_ui.py b/src/ui/sources/main_userData_ui.py new file mode 100644 index 0000000..4db4c87 --- /dev/null +++ b/src/ui/sources/main_userData_ui.py @@ -0,0 +1,197 @@ +# Form implementation generated from reading ui file '/home/alexander/GitHub/LibrarySystem/src/ui/sources/main_userData.ui' +# +# Created by: PyQt6 UI code generator 6.7.1 +# +# WARNING: Any manual changes made to this file will be lost when pyuic6 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt6 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.setWindowModality(QtCore.Qt.WindowModality.WindowModal) + MainWindow.resize(800, 600) + self.centralwidget = QtWidgets.QWidget(parent=MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget) + self.verticalLayout.setObjectName("verticalLayout") + self.gridLayout = QtWidgets.QGridLayout() + self.gridLayout.setObjectName("gridLayout") + self.frame = QtWidgets.QFrame(parent=self.centralwidget) + self.frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) + self.frame.setFrameShadow(QtWidgets.QFrame.Shadow.Raised) + self.frame.setObjectName("frame") + self.horizontalLayout = QtWidgets.QHBoxLayout(self.frame) + self.horizontalLayout.setObjectName("horizontalLayout") + spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum) + self.horizontalLayout.addItem(spacerItem) + self.btn_userChange_save = QtWidgets.QPushButton(parent=self.frame) + self.btn_userChange_save.setStatusTip("") + self.btn_userChange_save.setObjectName("btn_userChange_save") + self.horizontalLayout.addWidget(self.btn_userChange_save) + self.btn_userchange_cancel = QtWidgets.QPushButton(parent=self.frame) + self.btn_userchange_cancel.setObjectName("btn_userchange_cancel") + self.horizontalLayout.addWidget(self.btn_userchange_cancel) + spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum) + self.horizontalLayout.addItem(spacerItem1) + self.gridLayout.addWidget(self.frame, 3, 1, 1, 1) + self.label = QtWidgets.QLabel(parent=self.centralwidget) + self.label.setObjectName("label") + self.gridLayout.addWidget(self.label, 0, 0, 1, 1) + self.user_no = QtWidgets.QLineEdit(parent=self.centralwidget) + self.user_no.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.user_no.setReadOnly(True) + self.user_no.setObjectName("user_no") + self.gridLayout.addWidget(self.user_no, 1, 1, 1, 1) + self.label_3 = QtWidgets.QLabel(parent=self.centralwidget) + self.label_3.setObjectName("label_3") + self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1) + self.name = QtWidgets.QLineEdit(parent=self.centralwidget) + self.name.setObjectName("name") + self.gridLayout.addWidget(self.name, 0, 1, 1, 1) + self.label_2 = QtWidgets.QLabel(parent=self.centralwidget) + self.label_2.setObjectName("label_2") + self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1) + self.mail = QtWidgets.QLineEdit(parent=self.centralwidget) + self.mail.setObjectName("mail") + self.gridLayout.addWidget(self.mail, 2, 1, 1, 1) + self.horizontalLayout_4 = QtWidgets.QHBoxLayout() + self.horizontalLayout_4.setObjectName("horizontalLayout_4") + self.label_5 = QtWidgets.QLabel(parent=self.centralwidget) + self.label_5.setObjectName("label_5") + self.horizontalLayout_4.addWidget(self.label_5) + self.deleteUser = QtWidgets.QToolButton(parent=self.centralwidget) + self.deleteUser.setMinimumSize(QtCore.QSize(30, 30)) + self.deleteUser.setText("") + self.deleteUser.setObjectName("deleteUser") + self.horizontalLayout_4.addWidget(self.deleteUser) + self.gridLayout.addLayout(self.horizontalLayout_4, 3, 0, 1, 1) + self.verticalLayout.addLayout(self.gridLayout) + self.line = QtWidgets.QFrame(parent=self.centralwidget) + self.line.setFrameShape(QtWidgets.QFrame.Shape.HLine) + self.line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) + self.line.setObjectName("line") + self.verticalLayout.addWidget(self.line) + self.label_4 = QtWidgets.QLabel(parent=self.centralwidget) + font = QtGui.QFont() + font.setPointSize(12) + self.label_4.setFont(font) + self.label_4.setObjectName("label_4") + self.verticalLayout.addWidget(self.label_4) + self.horizontalLayout_2 = QtWidgets.QHBoxLayout() + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.radio_allLoanedMedia = QtWidgets.QRadioButton(parent=self.centralwidget) + self.radio_allLoanedMedia.setChecked(False) + self.radio_allLoanedMedia.setObjectName("radio_allLoanedMedia") + self.horizontalLayout_2.addWidget(self.radio_allLoanedMedia) + self.radio_currentlyLoaned = QtWidgets.QRadioButton(parent=self.centralwidget) + self.radio_currentlyLoaned.setChecked(True) + self.radio_currentlyLoaned.setObjectName("radio_currentlyLoaned") + self.horizontalLayout_2.addWidget(self.radio_currentlyLoaned) + self.radio_overdueLoans = QtWidgets.QRadioButton(parent=self.centralwidget) + self.radio_overdueLoans.setObjectName("radio_overdueLoans") + self.horizontalLayout_2.addWidget(self.radio_overdueLoans) + spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum) + self.horizontalLayout_2.addItem(spacerItem2) + self.verticalLayout.addLayout(self.horizontalLayout_2) + self.horizontalLayout_3 = QtWidgets.QHBoxLayout() + self.horizontalLayout_3.setObjectName("horizontalLayout_3") + self.searchbox = QtWidgets.QLineEdit(parent=self.centralwidget) + self.searchbox.setObjectName("searchbox") + self.horizontalLayout_3.addWidget(self.searchbox) + self.searchfilter = QtWidgets.QComboBox(parent=self.centralwidget) + self.searchfilter.setObjectName("searchfilter") + self.searchfilter.addItem("") + self.searchfilter.addItem("") + self.horizontalLayout_3.addWidget(self.searchfilter) + spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum) + self.horizontalLayout_3.addItem(spacerItem3) + self.btn_extendSelectedMedia = QtWidgets.QPushButton(parent=self.centralwidget) + self.btn_extendSelectedMedia.setEnabled(False) + self.btn_extendSelectedMedia.setObjectName("btn_extendSelectedMedia") + self.horizontalLayout_3.addWidget(self.btn_extendSelectedMedia) + self.verticalLayout.addLayout(self.horizontalLayout_3) + self.UserMediaTable = QtWidgets.QTableWidget(parent=self.centralwidget) + self.UserMediaTable.setMouseTracking(True) + self.UserMediaTable.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.UserMediaTable.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.UserMediaTable.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers) + self.UserMediaTable.setAlternatingRowColors(True) + self.UserMediaTable.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectionBehavior.SelectRows) + self.UserMediaTable.setObjectName("UserMediaTable") + self.UserMediaTable.setColumnCount(6) + self.UserMediaTable.setRowCount(0) + item = QtWidgets.QTableWidgetItem() + self.UserMediaTable.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + self.UserMediaTable.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + self.UserMediaTable.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + self.UserMediaTable.setHorizontalHeaderItem(3, item) + item = QtWidgets.QTableWidgetItem() + self.UserMediaTable.setHorizontalHeaderItem(4, item) + item = QtWidgets.QTableWidgetItem() + self.UserMediaTable.setHorizontalHeaderItem(5, item) + self.UserMediaTable.horizontalHeader().setDefaultSectionSize(156) + self.UserMediaTable.horizontalHeader().setMinimumSectionSize(43) + self.UserMediaTable.horizontalHeader().setSortIndicatorShown(True) + self.UserMediaTable.verticalHeader().setDefaultSectionSize(31) + self.UserMediaTable.verticalHeader().setMinimumSectionSize(25) + self.verticalLayout.addWidget(self.UserMediaTable) + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(parent=MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 22)) + self.menubar.setObjectName("menubar") + MainWindow.setMenuBar(self.menubar) + self.statusbar = QtWidgets.QStatusBar(parent=MainWindow) + self.statusbar.setSizeGripEnabled(True) + self.statusbar.setObjectName("statusbar") + MainWindow.setStatusBar(self.statusbar) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + MainWindow.setTabOrder(self.name, self.mail) + MainWindow.setTabOrder(self.mail, self.btn_userChange_save) + MainWindow.setTabOrder(self.btn_userChange_save, self.btn_userchange_cancel) + MainWindow.setTabOrder(self.btn_userchange_cancel, self.radio_allLoanedMedia) + MainWindow.setTabOrder(self.radio_allLoanedMedia, self.radio_currentlyLoaned) + MainWindow.setTabOrder(self.radio_currentlyLoaned, self.radio_overdueLoans) + MainWindow.setTabOrder(self.radio_overdueLoans, self.searchbox) + MainWindow.setTabOrder(self.searchbox, self.searchfilter) + MainWindow.setTabOrder(self.searchfilter, self.btn_extendSelectedMedia) + MainWindow.setTabOrder(self.btn_extendSelectedMedia, self.UserMediaTable) + MainWindow.setTabOrder(self.UserMediaTable, self.user_no) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) + self.btn_userChange_save.setText(_translate("MainWindow", "Speichern")) + self.btn_userchange_cancel.setText(_translate("MainWindow", "Abbrechen")) + self.label.setText(_translate("MainWindow", "Name, Vorname")) + self.label_3.setText(_translate("MainWindow", "Mail")) + self.label_2.setText(_translate("MainWindow", "Matrikelnummer")) + self.label_5.setText(_translate("MainWindow", "Nutzer Löschen")) + self.label_4.setText(_translate("MainWindow", "Medien")) + self.radio_allLoanedMedia.setText(_translate("MainWindow", "Alle Ausleihen")) + self.radio_currentlyLoaned.setText(_translate("MainWindow", "Aktuell entliehen")) + self.radio_overdueLoans.setText(_translate("MainWindow", "Überzogen")) + self.searchfilter.setItemText(0, _translate("MainWindow", "Titel")) + self.searchfilter.setItemText(1, _translate("MainWindow", "Signatur")) + self.btn_extendSelectedMedia.setText(_translate("MainWindow", "Ausgewählte Verlängern")) + self.UserMediaTable.setSortingEnabled(True) + item = self.UserMediaTable.horizontalHeaderItem(0) + item.setText(_translate("MainWindow", "ISBN")) + item = self.UserMediaTable.horizontalHeaderItem(1) + item.setText(_translate("MainWindow", "Signatur")) + item = self.UserMediaTable.horizontalHeaderItem(2) + item.setText(_translate("MainWindow", "Titel")) + item = self.UserMediaTable.horizontalHeaderItem(3) + item.setText(_translate("MainWindow", "entliehen am")) + item = self.UserMediaTable.horizontalHeaderItem(4) + item.setText(_translate("MainWindow", "entliehen bis")) + item = self.UserMediaTable.horizontalHeaderItem(5) + item.setText(_translate("MainWindow", "Rückgabe am")) diff --git a/test.py b/test.py new file mode 100644 index 0000000..600f768 --- /dev/null +++ b/test.py @@ -0,0 +1,4 @@ +from src.ui.loans import launch + + +launch() \ No newline at end of file