Feat: add delete edition dialog with fuzzy search
This commit is contained in:
1
icons/trash.svg
Normal file
1
icons/trash.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M280-120q-33 0-56.5-23.5T200-200v-520h-40v-80h200v-40h240v40h200v80h-40v520q0 33-23.5 56.5T680-120H280Zm400-600H280v520h400v-520ZM360-280h80v-360h-80v360Zm160 0h80v-360h-80v360ZM280-720v520-520Z"/></svg>
|
||||
|
After Width: | Height: | Size: 319 B |
@@ -544,7 +544,15 @@ class Database:
|
||||
ret_result.append(data)
|
||||
return ret_result
|
||||
|
||||
def getAllBooks(self):
|
||||
def getAllBooks(self) -> list[dict[str, Union[int, BookData]]]:
|
||||
"""
|
||||
Get all books in the database that are not set as deleted
|
||||
|
||||
Returns
|
||||
-------
|
||||
list[dict[str, Union[int, BookData]]]
|
||||
A list of dictionaries containing the id and the metadata of the book
|
||||
"""
|
||||
# return all books in the database
|
||||
qdata = self.query_db("SELECT id,bookdata FROM media WHERE deleted=0")
|
||||
ret_result: list[dict[str, Any]] = []
|
||||
@@ -558,6 +566,14 @@ class Database:
|
||||
ret_result.append(data)
|
||||
return ret_result
|
||||
|
||||
def getApparatNrByBookId(self, book_id):
|
||||
appNr = self.query_db(
|
||||
"SELECT appnr FROM semesterapparat WHERE id IN (SELECT app_id FROM media WHERE id=?)",
|
||||
(book_id,),
|
||||
one=True,
|
||||
)
|
||||
return appNr[0] if appNr else None
|
||||
|
||||
def getBooksByProfId(
|
||||
self, prof_id: int, deleted: int = 0
|
||||
) -> list[dict[str, Union[int, BookData]]]:
|
||||
@@ -611,6 +627,16 @@ class Database:
|
||||
"""
|
||||
self.query_db("UPDATE media SET deleted=1 WHERE id=?", (book_id,))
|
||||
|
||||
def deleteBooks(self, ids: list[int]):
|
||||
"""
|
||||
Delete multiple books from the database
|
||||
|
||||
Args:
|
||||
ids (list[int]): A list of book ids to be deleted
|
||||
"""
|
||||
query = f"UPDATE media SET deleted=1 WHERE id IN ({','.join(['?'] * len(ids))})"
|
||||
self.query_db(query, tuple(ids))
|
||||
|
||||
# File Interactions
|
||||
def getBlob(self, filename: str, app_id: Union[str, int]) -> bytes:
|
||||
"""
|
||||
|
||||
@@ -14,10 +14,12 @@ __all__ = [
|
||||
"DocumentPrintDialog",
|
||||
"NewEditionDialog",
|
||||
"Settings",
|
||||
"DeleteDialog",
|
||||
]
|
||||
from .about import About
|
||||
from .app_ext import ApparatExtendDialog
|
||||
from .bookdata import BookDataUI
|
||||
from .deletedialog import DeleteDialog
|
||||
from .docuprint import DocumentPrintDialog
|
||||
from .elsa_add_entry import ElsaAddEntry
|
||||
from .elsa_gen_confirm import ElsaGenConfirm
|
||||
|
||||
129
src/ui/dialogs/deletedialog.py
Normal file
129
src/ui/dialogs/deletedialog.py
Normal file
@@ -0,0 +1,129 @@
|
||||
from typing import Any
|
||||
|
||||
from PySide6 import QtCore, QtWidgets
|
||||
|
||||
from src import Icon
|
||||
from src.backend.database import Database
|
||||
|
||||
from .dialog_sources.deletedialog_ui import Ui_Dialog
|
||||
|
||||
|
||||
class DeleteDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.setupUi(self)
|
||||
self.setWindowTitle("Medien löschen")
|
||||
self.setWindowIcon(Icon("trash").icon)
|
||||
self.reset_btn.clicked.connect(self.reset_selection)
|
||||
self.cancel_btn.clicked.connect(self.close)
|
||||
self.delete_btn.clicked.connect(self.delete_selected)
|
||||
|
||||
self.db = Database()
|
||||
self.books = self.setBooks()
|
||||
self.lineEdit.textChanged.connect(self.populate_books)
|
||||
self.populate_books()
|
||||
|
||||
def delete_selected(self):
|
||||
to_delete = []
|
||||
for row in range(self.tableWidget.rowCount()):
|
||||
checkbox = self.tableWidget.cellWidget(row, 0)
|
||||
if checkbox is not None and checkbox.isChecked():
|
||||
book_id_item = self.tableWidget.item(row, 6)
|
||||
if book_id_item is not None:
|
||||
book_id = int(book_id_item.text())
|
||||
to_delete.append(book_id)
|
||||
if to_delete:
|
||||
self.db.deleteBooks(to_delete)
|
||||
self.accept()
|
||||
|
||||
def reset_selection(self):
|
||||
for row in range(self.tableWidget.rowCount()):
|
||||
checkbox = self.tableWidget.cellWidget(row, 0)
|
||||
if checkbox is not None:
|
||||
checkbox.setChecked(False)
|
||||
|
||||
def setBooks(self) -> list[dict[str, Any]]:
|
||||
result: list[dict[str, Any]] = []
|
||||
books = self.db.getAllBooks()
|
||||
for book in books:
|
||||
title = book["bookdata"].title
|
||||
signature = book["bookdata"].signature
|
||||
edition = book["bookdata"].edition
|
||||
appnr = self.db.getApparatNrByBookId(book["id"])
|
||||
result.append(
|
||||
{
|
||||
"id": book["id"],
|
||||
"appnr": appnr,
|
||||
"title": title,
|
||||
"signature": signature,
|
||||
"edition": edition,
|
||||
}
|
||||
)
|
||||
return result
|
||||
|
||||
def populate_books(self):
|
||||
searchterm = self.lineEdit.text().lower()
|
||||
self.tableWidget.setRowCount(0)
|
||||
for book in self.books:
|
||||
checkbox = QtWidgets.QCheckBox()
|
||||
app_nr = book["appnr"]
|
||||
title = book["title"]
|
||||
signature = book["signature"]
|
||||
edition = book["edition"] if book["edition"] else ""
|
||||
|
||||
if searchterm in title.lower() or searchterm in signature.lower():
|
||||
self.tableWidget.insertRow(self.tableWidget.rowCount())
|
||||
self.tableWidget.setCellWidget(
|
||||
self.tableWidget.rowCount() - 1, 0, checkbox
|
||||
)
|
||||
self.tableWidget.setItem(
|
||||
self.tableWidget.rowCount() - 1,
|
||||
1,
|
||||
QtWidgets.QTableWidgetItem(str(app_nr)),
|
||||
)
|
||||
self.tableWidget.setItem(
|
||||
self.tableWidget.rowCount() - 1,
|
||||
2,
|
||||
QtWidgets.QTableWidgetItem(signature),
|
||||
)
|
||||
self.tableWidget.setItem(
|
||||
self.tableWidget.rowCount() - 1,
|
||||
3,
|
||||
QtWidgets.QTableWidgetItem(title),
|
||||
)
|
||||
self.tableWidget.setItem(
|
||||
self.tableWidget.rowCount() - 1,
|
||||
4,
|
||||
QtWidgets.QTableWidgetItem(edition),
|
||||
)
|
||||
self.tableWidget.setItem(
|
||||
self.tableWidget.rowCount() - 1,
|
||||
5,
|
||||
QtWidgets.QTableWidgetItem(""),
|
||||
)
|
||||
self.tableWidget.setItem(
|
||||
self.tableWidget.rowCount() - 1,
|
||||
6,
|
||||
QtWidgets.QTableWidgetItem(str(book["id"])),
|
||||
)
|
||||
else:
|
||||
continue
|
||||
# set column signature to be 10px wider than the longest entry
|
||||
self.tableWidget.setColumnWidth(1, 100)
|
||||
self.tableWidget.setColumnWidth(2, 150)
|
||||
self.tableWidget.setColumnWidth(3, 150)
|
||||
self.tableWidget.setColumnWidth(4, 100)
|
||||
|
||||
self.tableWidget.setColumnWidth(0, 50)
|
||||
# horizontal header 0 should be centered
|
||||
self.tableWidget.horizontalHeader().setDefaultAlignment(
|
||||
QtCore.Qt.AlignmentFlag.AlignCenter
|
||||
)
|
||||
|
||||
|
||||
def launch():
|
||||
app = QtWidgets.QApplication.instance()
|
||||
if app is None:
|
||||
app = QtWidgets.QApplication([])
|
||||
dialog = DeleteDialog()
|
||||
dialog.exec()
|
||||
138
src/ui/dialogs/dialog_sources/deletedialog.ui
Normal file
138
src/ui/dialogs/dialog_sources/deletedialog.ui
Normal file
@@ -0,0 +1,138 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Dialog</class>
|
||||
<widget class="QDialog" name="Dialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1001</width>
|
||||
<height>649</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Medium suchen</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="lineEdit">
|
||||
<property name="placeholderText">
|
||||
<string>Titel/Signatursuche</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTableWidget" name="tableWidget">
|
||||
<property name="alternatingRowColors">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<attribute name="horizontalHeaderStretchLastSection">
|
||||
<bool>true</bool>
|
||||
</attribute>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Apparat</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Signatur</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Titel</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Auflage</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>ISBN</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>ID</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="reset_btn">
|
||||
<property name="text">
|
||||
<string>Zurücksetzen</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="delete_btn">
|
||||
<property name="text">
|
||||
<string>Löschen</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="cancel_btn">
|
||||
<property name="text">
|
||||
<string>Abbrechen</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
122
src/ui/dialogs/dialog_sources/deletedialog_ui.py
Normal file
122
src/ui/dialogs/dialog_sources/deletedialog_ui.py
Normal file
@@ -0,0 +1,122 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
################################################################################
|
||||
## Form generated from reading UI file 'deletedialog.ui'
|
||||
##
|
||||
## Created by: Qt User Interface Compiler version 6.9.2
|
||||
##
|
||||
## WARNING! All changes made in this file will be lost when recompiling UI file!
|
||||
################################################################################
|
||||
|
||||
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
|
||||
QMetaObject, QObject, QPoint, QRect,
|
||||
QSize, QTime, QUrl, Qt)
|
||||
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
|
||||
QFont, QFontDatabase, QGradient, QIcon,
|
||||
QImage, QKeySequence, QLinearGradient, QPainter,
|
||||
QPalette, QPixmap, QRadialGradient, QTransform)
|
||||
from PySide6.QtWidgets import (QApplication, QDialog, QHBoxLayout, QHeaderView,
|
||||
QLabel, QLineEdit, QPushButton, QSizePolicy,
|
||||
QSpacerItem, QTableWidget, QTableWidgetItem, QVBoxLayout,
|
||||
QWidget)
|
||||
|
||||
class Ui_Dialog(object):
|
||||
def setupUi(self, Dialog):
|
||||
if not Dialog.objectName():
|
||||
Dialog.setObjectName(u"Dialog")
|
||||
Dialog.resize(1001, 649)
|
||||
self.verticalLayout = QVBoxLayout(Dialog)
|
||||
self.verticalLayout.setObjectName(u"verticalLayout")
|
||||
self.horizontalLayout = QHBoxLayout()
|
||||
self.horizontalLayout.setObjectName(u"horizontalLayout")
|
||||
self.label = QLabel(Dialog)
|
||||
self.label.setObjectName(u"label")
|
||||
|
||||
self.horizontalLayout.addWidget(self.label)
|
||||
|
||||
self.lineEdit = QLineEdit(Dialog)
|
||||
self.lineEdit.setObjectName(u"lineEdit")
|
||||
|
||||
self.horizontalLayout.addWidget(self.lineEdit)
|
||||
|
||||
|
||||
self.verticalLayout.addLayout(self.horizontalLayout)
|
||||
|
||||
self.tableWidget = QTableWidget(Dialog)
|
||||
if (self.tableWidget.columnCount() < 7):
|
||||
self.tableWidget.setColumnCount(7)
|
||||
__qtablewidgetitem = QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(0, __qtablewidgetitem)
|
||||
__qtablewidgetitem1 = QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(1, __qtablewidgetitem1)
|
||||
__qtablewidgetitem2 = QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(2, __qtablewidgetitem2)
|
||||
__qtablewidgetitem3 = QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(3, __qtablewidgetitem3)
|
||||
__qtablewidgetitem4 = QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(4, __qtablewidgetitem4)
|
||||
__qtablewidgetitem5 = QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(5, __qtablewidgetitem5)
|
||||
__qtablewidgetitem6 = QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(6, __qtablewidgetitem6)
|
||||
self.tableWidget.setObjectName(u"tableWidget")
|
||||
self.tableWidget.setAlternatingRowColors(True)
|
||||
self.tableWidget.horizontalHeader().setStretchLastSection(True)
|
||||
|
||||
self.verticalLayout.addWidget(self.tableWidget)
|
||||
|
||||
self.horizontalLayout_2 = QHBoxLayout()
|
||||
self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
|
||||
self.horizontalSpacer_2 = QSpacerItem(20, 20, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum)
|
||||
|
||||
self.horizontalLayout_2.addItem(self.horizontalSpacer_2)
|
||||
|
||||
self.reset_btn = QPushButton(Dialog)
|
||||
self.reset_btn.setObjectName(u"reset_btn")
|
||||
|
||||
self.horizontalLayout_2.addWidget(self.reset_btn)
|
||||
|
||||
self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
||||
|
||||
self.horizontalLayout_2.addItem(self.horizontalSpacer)
|
||||
|
||||
self.delete_btn = QPushButton(Dialog)
|
||||
self.delete_btn.setObjectName(u"delete_btn")
|
||||
|
||||
self.horizontalLayout_2.addWidget(self.delete_btn)
|
||||
|
||||
self.cancel_btn = QPushButton(Dialog)
|
||||
self.cancel_btn.setObjectName(u"cancel_btn")
|
||||
|
||||
self.horizontalLayout_2.addWidget(self.cancel_btn)
|
||||
|
||||
|
||||
self.verticalLayout.addLayout(self.horizontalLayout_2)
|
||||
|
||||
|
||||
self.retranslateUi(Dialog)
|
||||
|
||||
QMetaObject.connectSlotsByName(Dialog)
|
||||
# setupUi
|
||||
|
||||
def retranslateUi(self, Dialog):
|
||||
Dialog.setWindowTitle(QCoreApplication.translate("Dialog", u"Dialog", None))
|
||||
self.label.setText(QCoreApplication.translate("Dialog", u"Medium suchen", None))
|
||||
self.lineEdit.setPlaceholderText(QCoreApplication.translate("Dialog", u"Titel/Signatursuche", None))
|
||||
___qtablewidgetitem = self.tableWidget.horizontalHeaderItem(1)
|
||||
___qtablewidgetitem.setText(QCoreApplication.translate("Dialog", u"Apparat", None));
|
||||
___qtablewidgetitem1 = self.tableWidget.horizontalHeaderItem(2)
|
||||
___qtablewidgetitem1.setText(QCoreApplication.translate("Dialog", u"Signatur", None));
|
||||
___qtablewidgetitem2 = self.tableWidget.horizontalHeaderItem(3)
|
||||
___qtablewidgetitem2.setText(QCoreApplication.translate("Dialog", u"Titel", None));
|
||||
___qtablewidgetitem3 = self.tableWidget.horizontalHeaderItem(4)
|
||||
___qtablewidgetitem3.setText(QCoreApplication.translate("Dialog", u"Auflage", None));
|
||||
___qtablewidgetitem4 = self.tableWidget.horizontalHeaderItem(5)
|
||||
___qtablewidgetitem4.setText(QCoreApplication.translate("Dialog", u"ISBN", None));
|
||||
___qtablewidgetitem5 = self.tableWidget.horizontalHeaderItem(6)
|
||||
___qtablewidgetitem5.setText(QCoreApplication.translate("Dialog", u"ID", None));
|
||||
self.reset_btn.setText(QCoreApplication.translate("Dialog", u"Zur\u00fccksetzen", None))
|
||||
self.delete_btn.setText(QCoreApplication.translate("Dialog", u"L\u00f6schen", None))
|
||||
self.cancel_btn.setText(QCoreApplication.translate("Dialog", u"Abbrechen", None))
|
||||
# retranslateUi
|
||||
|
||||
@@ -251,169 +251,24 @@
|
||||
<x>0</x>
|
||||
<y>180</y>
|
||||
<width>1412</width>
|
||||
<height>511</height>
|
||||
<height>531</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="4" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<item row="11" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="chkbx_show_del_media">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>WIP - Broken</string>
|
||||
<widget class="QPushButton" name="add_medium">
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>gel. Medien anzeigen</string>
|
||||
<string>Medien hinzufügen</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="chkbx_show_only_wit_neweditions">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>WIP - Broken</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Nur Titel mit Neuauflagen anzeigen</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btn_reserve">
|
||||
<property name="toolTip">
|
||||
<string>Dieser Knopf prüft alle Werke, die mit einem roten X vermerkt sind. Sollten diese inzwischen im Apparat sein, wird dies aktualisiert</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Medien mit ❌ im Apparat?</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="add_layout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_info">
|
||||
<property name="text">
|
||||
<string>Medien werden hinzugefügt</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="progress_label">
|
||||
<property name="text">
|
||||
<string>Medium x/y</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="avail_layout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_20">
|
||||
<property name="text">
|
||||
<string>Medien werden geprüft</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QProgressBar" name="progressBar">
|
||||
<property name="value">
|
||||
<number>24</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_eta">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="avail_status">
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="automation_add_selected_books">
|
||||
<property name="text">
|
||||
<string>Ausgewählte als verfügbar markieren</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<spacer name="horizontalSpacer_5">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
@@ -427,87 +282,6 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="9" column="0">
|
||||
<widget class="QTableWidget" name="tableWidget_apparat_media">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>1259</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="contextMenuPolicy">
|
||||
<enum>Qt::CustomContextMenu</enum>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QAbstractScrollArea::AdjustToContents</enum>
|
||||
</property>
|
||||
<property name="editTriggers">
|
||||
<set>QAbstractItemView::NoEditTriggers</set>
|
||||
</property>
|
||||
<property name="alternatingRowColors">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="sortingEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<attribute name="horizontalHeaderCascadingSectionResizes">
|
||||
<bool>true</bool>
|
||||
</attribute>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Buchtitel</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Es kann sein, dass der Buchtitel leer ist, dies kommt vor, wenn der Titel nicht passend formatiert ist</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Signatur</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Auflage</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Autor</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>im Apparat?</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Diese Angabe ist nicht zuverlässig. Ist das ❌ vorhanden, kann das Medium im Apparat sein, aber aufgrund eines Bugs nicht gefunden worden</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Vorgemerkt</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Link</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="font">
|
||||
@@ -1101,23 +875,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="prof_id_adis">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>9</pointsize>
|
||||
<bold>false</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="inputMethodHints">
|
||||
<set>Qt::ImhPreferNumbers</set>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_13">
|
||||
<property name="font">
|
||||
<font>
|
||||
@@ -1133,7 +891,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="apparat_id_adis">
|
||||
<property name="font">
|
||||
<font>
|
||||
@@ -1146,6 +904,22 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="prof_id_adis">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>9</pointsize>
|
||||
<bold>false</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="inputMethodHints">
|
||||
<set>Qt::ImhPreferNumbers</set>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="sem_year">
|
||||
@@ -1587,24 +1361,248 @@ Einige Angaben müssen ggf angepasst werden</string>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="chkbx_show_only_wit_neweditions">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>WIP - Broken</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Nur Titel mit Neuauflagen anzeigen</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btn_reserve">
|
||||
<property name="toolTip">
|
||||
<string>Dieser Knopf prüft alle Werke, die mit einem roten X vermerkt sind. Sollten diese inzwischen im Apparat sein, wird dies aktualisiert</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Medien mit ❌ im Apparat?</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="add_layout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_info">
|
||||
<property name="text">
|
||||
<string>Medien werden hinzugefügt</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="progress_label">
|
||||
<property name="text">
|
||||
<string>Medium x/y</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="avail_layout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_20">
|
||||
<property name="text">
|
||||
<string>Medien werden geprüft</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QProgressBar" name="progressBar">
|
||||
<property name="value">
|
||||
<number>24</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_eta">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="avail_status">
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="automation_add_selected_books">
|
||||
<property name="text">
|
||||
<string>Ausgewählte als verfügbar markieren</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="9" column="0">
|
||||
<widget class="QTableWidget" name="tableWidget_apparat_media">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>1259</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="contextMenuPolicy">
|
||||
<enum>Qt::CustomContextMenu</enum>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QAbstractScrollArea::AdjustToContents</enum>
|
||||
</property>
|
||||
<property name="editTriggers">
|
||||
<set>QAbstractItemView::NoEditTriggers</set>
|
||||
</property>
|
||||
<property name="alternatingRowColors">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="sortingEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<attribute name="horizontalHeaderCascadingSectionResizes">
|
||||
<bool>true</bool>
|
||||
</attribute>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Buchtitel</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Es kann sein, dass der Buchtitel leer ist, dies kommt vor, wenn der Titel nicht passend formatiert ist</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Signatur</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Auflage</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Autor</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>im Apparat?</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Diese Angabe ist nicht zuverlässig. Ist das ❌ vorhanden, kann das Medium im Apparat sein, aber aufgrund eines Bugs nicht gefunden worden</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Vorgemerkt</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Link</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="add_medium">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>3</x>
|
||||
<y>695</y>
|
||||
<width>121</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Medien hinzufügen</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="search_statistics">
|
||||
<attribute name="title">
|
||||
@@ -1966,6 +1964,7 @@ Einige Angaben müssen ggf angepasst werden</string>
|
||||
<string>Bearbeiten</string>
|
||||
</property>
|
||||
<addaction name="actionEinstellungen"/>
|
||||
<addaction name="actionMedien_loeschen"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuHelp">
|
||||
<property name="title">
|
||||
@@ -2020,6 +2019,11 @@ Einige Angaben müssen ggf angepasst werden</string>
|
||||
<string>F1</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionMedien_loeschen">
|
||||
<property name="text">
|
||||
<string>Medien löschen</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>drpdwn_app_nr</tabstop>
|
||||
@@ -2038,10 +2042,8 @@ Einige Angaben müssen ggf angepasst werden</string>
|
||||
<tabstop>check_send_mail</tabstop>
|
||||
<tabstop>btn_apparat_save</tabstop>
|
||||
<tabstop>btn_apparat_apply</tabstop>
|
||||
<tabstop>chkbx_show_del_media</tabstop>
|
||||
<tabstop>btn_reserve</tabstop>
|
||||
<tabstop>select_action_box</tabstop>
|
||||
<tabstop>prof_id_adis</tabstop>
|
||||
<tabstop>apparat_id_adis</tabstop>
|
||||
<tabstop>automation_add_selected_books</tabstop>
|
||||
<tabstop>saveandcreate</tabstop>
|
||||
|
||||
@@ -54,6 +54,8 @@ class Ui_MainWindow(object):
|
||||
self.actionAbout.setMenuRole(QAction.AboutRole)
|
||||
self.actionDokumentation = QAction(MainWindow)
|
||||
self.actionDokumentation.setObjectName(u"actionDokumentation")
|
||||
self.actionMedien_loeschen = QAction(MainWindow)
|
||||
self.actionMedien_loeschen.setObjectName(u"actionMedien_loeschen")
|
||||
self.centralwidget = QWidget(MainWindow)
|
||||
self.centralwidget.setObjectName(u"centralwidget")
|
||||
sizePolicy.setHeightForWidth(self.centralwidget.sizePolicy().hasHeightForWidth())
|
||||
@@ -157,142 +159,24 @@ class Ui_MainWindow(object):
|
||||
self.gridLayoutWidget_2 = QWidget(self.createApparat)
|
||||
self.gridLayoutWidget_2.setObjectName(u"gridLayoutWidget_2")
|
||||
self.gridLayoutWidget_2.setEnabled(True)
|
||||
self.gridLayoutWidget_2.setGeometry(QRect(0, 180, 1412, 511))
|
||||
self.gridLayoutWidget_2.setGeometry(QRect(0, 180, 1412, 531))
|
||||
self.gridLayout_2 = QGridLayout(self.gridLayoutWidget_2)
|
||||
self.gridLayout_2.setObjectName(u"gridLayout_2")
|
||||
self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
|
||||
self.horizontalLayout_5 = QHBoxLayout()
|
||||
self.horizontalLayout_5.setObjectName(u"horizontalLayout_5")
|
||||
self.horizontalSpacer = QSpacerItem(20, 20, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum)
|
||||
self.horizontalLayout_3 = QHBoxLayout()
|
||||
self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
|
||||
self.add_medium = QPushButton(self.gridLayoutWidget_2)
|
||||
self.add_medium.setObjectName(u"add_medium")
|
||||
self.add_medium.setFocusPolicy(Qt.NoFocus)
|
||||
|
||||
self.horizontalLayout_5.addItem(self.horizontalSpacer)
|
||||
self.horizontalLayout_3.addWidget(self.add_medium)
|
||||
|
||||
self.chkbx_show_del_media = QCheckBox(self.gridLayoutWidget_2)
|
||||
self.chkbx_show_del_media.setObjectName(u"chkbx_show_del_media")
|
||||
self.chkbx_show_del_media.setEnabled(False)
|
||||
self.horizontalSpacer_5 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
||||
|
||||
self.horizontalLayout_5.addWidget(self.chkbx_show_del_media)
|
||||
|
||||
self.chkbx_show_only_wit_neweditions = QCheckBox(self.gridLayoutWidget_2)
|
||||
self.chkbx_show_only_wit_neweditions.setObjectName(u"chkbx_show_only_wit_neweditions")
|
||||
self.chkbx_show_only_wit_neweditions.setEnabled(False)
|
||||
|
||||
self.horizontalLayout_5.addWidget(self.chkbx_show_only_wit_neweditions)
|
||||
|
||||
self.horizontalSpacer_3 = QSpacerItem(40, 20, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum)
|
||||
|
||||
self.horizontalLayout_5.addItem(self.horizontalSpacer_3)
|
||||
|
||||
self.btn_reserve = QPushButton(self.gridLayoutWidget_2)
|
||||
self.btn_reserve.setObjectName(u"btn_reserve")
|
||||
|
||||
self.horizontalLayout_5.addWidget(self.btn_reserve)
|
||||
|
||||
self.add_layout = QHBoxLayout()
|
||||
self.add_layout.setObjectName(u"add_layout")
|
||||
self.label_info = QLabel(self.gridLayoutWidget_2)
|
||||
self.label_info.setObjectName(u"label_info")
|
||||
|
||||
self.add_layout.addWidget(self.label_info)
|
||||
|
||||
self.line_2 = QFrame(self.gridLayoutWidget_2)
|
||||
self.line_2.setObjectName(u"line_2")
|
||||
self.line_2.setFrameShape(QFrame.Shape.VLine)
|
||||
self.line_2.setFrameShadow(QFrame.Shadow.Sunken)
|
||||
|
||||
self.add_layout.addWidget(self.line_2)
|
||||
|
||||
self.progress_label = QLabel(self.gridLayoutWidget_2)
|
||||
self.progress_label.setObjectName(u"progress_label")
|
||||
|
||||
self.add_layout.addWidget(self.progress_label)
|
||||
self.horizontalLayout_3.addItem(self.horizontalSpacer_5)
|
||||
|
||||
|
||||
self.horizontalLayout_5.addLayout(self.add_layout)
|
||||
|
||||
self.horizontalSpacer_4 = QSpacerItem(40, 20, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum)
|
||||
|
||||
self.horizontalLayout_5.addItem(self.horizontalSpacer_4)
|
||||
|
||||
self.avail_layout = QHBoxLayout()
|
||||
self.avail_layout.setObjectName(u"avail_layout")
|
||||
self.label_20 = QLabel(self.gridLayoutWidget_2)
|
||||
self.label_20.setObjectName(u"label_20")
|
||||
|
||||
self.avail_layout.addWidget(self.label_20)
|
||||
|
||||
self.progressBar = QProgressBar(self.gridLayoutWidget_2)
|
||||
self.progressBar.setObjectName(u"progressBar")
|
||||
self.progressBar.setValue(24)
|
||||
|
||||
self.avail_layout.addWidget(self.progressBar)
|
||||
|
||||
self.label_eta = QLabel(self.gridLayoutWidget_2)
|
||||
self.label_eta.setObjectName(u"label_eta")
|
||||
|
||||
self.avail_layout.addWidget(self.label_eta)
|
||||
|
||||
|
||||
self.horizontalLayout_5.addLayout(self.avail_layout)
|
||||
|
||||
self.line_3 = QFrame(self.gridLayoutWidget_2)
|
||||
self.line_3.setObjectName(u"line_3")
|
||||
self.line_3.setFrameShape(QFrame.Shape.VLine)
|
||||
self.line_3.setFrameShadow(QFrame.Shadow.Sunken)
|
||||
|
||||
self.horizontalLayout_5.addWidget(self.line_3)
|
||||
|
||||
self.avail_status = QLabel(self.gridLayoutWidget_2)
|
||||
self.avail_status.setObjectName(u"avail_status")
|
||||
|
||||
self.horizontalLayout_5.addWidget(self.avail_status)
|
||||
|
||||
self.automation_add_selected_books = QPushButton(self.gridLayoutWidget_2)
|
||||
self.automation_add_selected_books.setObjectName(u"automation_add_selected_books")
|
||||
|
||||
self.horizontalLayout_5.addWidget(self.automation_add_selected_books)
|
||||
|
||||
self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
||||
|
||||
self.horizontalLayout_5.addItem(self.horizontalSpacer_2)
|
||||
|
||||
|
||||
self.gridLayout_2.addLayout(self.horizontalLayout_5, 4, 0, 1, 1)
|
||||
|
||||
self.tableWidget_apparat_media = QTableWidget(self.gridLayoutWidget_2)
|
||||
if (self.tableWidget_apparat_media.columnCount() < 7):
|
||||
self.tableWidget_apparat_media.setColumnCount(7)
|
||||
__qtablewidgetitem6 = QTableWidgetItem()
|
||||
self.tableWidget_apparat_media.setHorizontalHeaderItem(0, __qtablewidgetitem6)
|
||||
__qtablewidgetitem7 = QTableWidgetItem()
|
||||
self.tableWidget_apparat_media.setHorizontalHeaderItem(1, __qtablewidgetitem7)
|
||||
__qtablewidgetitem8 = QTableWidgetItem()
|
||||
self.tableWidget_apparat_media.setHorizontalHeaderItem(2, __qtablewidgetitem8)
|
||||
__qtablewidgetitem9 = QTableWidgetItem()
|
||||
self.tableWidget_apparat_media.setHorizontalHeaderItem(3, __qtablewidgetitem9)
|
||||
__qtablewidgetitem10 = QTableWidgetItem()
|
||||
self.tableWidget_apparat_media.setHorizontalHeaderItem(4, __qtablewidgetitem10)
|
||||
__qtablewidgetitem11 = QTableWidgetItem()
|
||||
self.tableWidget_apparat_media.setHorizontalHeaderItem(5, __qtablewidgetitem11)
|
||||
__qtablewidgetitem12 = QTableWidgetItem()
|
||||
self.tableWidget_apparat_media.setHorizontalHeaderItem(6, __qtablewidgetitem12)
|
||||
self.tableWidget_apparat_media.setObjectName(u"tableWidget_apparat_media")
|
||||
sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Expanding)
|
||||
sizePolicy2.setHorizontalStretch(0)
|
||||
sizePolicy2.setVerticalStretch(0)
|
||||
sizePolicy2.setHeightForWidth(self.tableWidget_apparat_media.sizePolicy().hasHeightForWidth())
|
||||
self.tableWidget_apparat_media.setSizePolicy(sizePolicy2)
|
||||
self.tableWidget_apparat_media.setMinimumSize(QSize(1259, 0))
|
||||
self.tableWidget_apparat_media.setFocusPolicy(Qt.NoFocus)
|
||||
self.tableWidget_apparat_media.setContextMenuPolicy(Qt.CustomContextMenu)
|
||||
self.tableWidget_apparat_media.setSizeAdjustPolicy(QAbstractScrollArea.AdjustToContents)
|
||||
self.tableWidget_apparat_media.setEditTriggers(QAbstractItemView.NoEditTriggers)
|
||||
self.tableWidget_apparat_media.setAlternatingRowColors(True)
|
||||
self.tableWidget_apparat_media.setSelectionBehavior(QAbstractItemView.SelectRows)
|
||||
self.tableWidget_apparat_media.setSortingEnabled(True)
|
||||
self.tableWidget_apparat_media.horizontalHeader().setCascadingSectionResizes(True)
|
||||
|
||||
self.gridLayout_2.addWidget(self.tableWidget_apparat_media, 9, 0, 1, 1)
|
||||
self.gridLayout_2.addLayout(self.horizontalLayout_3, 11, 0, 1, 1)
|
||||
|
||||
self.label = QLabel(self.gridLayoutWidget_2)
|
||||
self.label.setObjectName(u"label")
|
||||
@@ -306,11 +190,11 @@ class Ui_MainWindow(object):
|
||||
self.app_group_box = QGroupBox(self.gridLayoutWidget_2)
|
||||
self.app_group_box.setObjectName(u"app_group_box")
|
||||
self.app_group_box.setEnabled(True)
|
||||
sizePolicy3 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
|
||||
sizePolicy3.setHorizontalStretch(0)
|
||||
sizePolicy3.setVerticalStretch(0)
|
||||
sizePolicy3.setHeightForWidth(self.app_group_box.sizePolicy().hasHeightForWidth())
|
||||
self.app_group_box.setSizePolicy(sizePolicy3)
|
||||
sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
|
||||
sizePolicy2.setHorizontalStretch(0)
|
||||
sizePolicy2.setVerticalStretch(0)
|
||||
sizePolicy2.setHeightForWidth(self.app_group_box.sizePolicy().hasHeightForWidth())
|
||||
self.app_group_box.setSizePolicy(sizePolicy2)
|
||||
self.app_group_box.setMinimumSize(QSize(0, 210))
|
||||
font1 = QFont()
|
||||
font1.setPointSize(12)
|
||||
@@ -325,17 +209,17 @@ class Ui_MainWindow(object):
|
||||
font2 = QFont()
|
||||
font2.setFamilies([u"Arial"])
|
||||
font2.setPointSize(8)
|
||||
__qtablewidgetitem13 = QTableWidgetItem()
|
||||
__qtablewidgetitem13.setFont(font2);
|
||||
self.document_list.setHorizontalHeaderItem(0, __qtablewidgetitem13)
|
||||
__qtablewidgetitem14 = QTableWidgetItem()
|
||||
__qtablewidgetitem14.setFont(font2);
|
||||
self.document_list.setHorizontalHeaderItem(1, __qtablewidgetitem14)
|
||||
__qtablewidgetitem15 = QTableWidgetItem()
|
||||
__qtablewidgetitem15.setFont(font2);
|
||||
self.document_list.setHorizontalHeaderItem(2, __qtablewidgetitem15)
|
||||
__qtablewidgetitem16 = QTableWidgetItem()
|
||||
self.document_list.setHorizontalHeaderItem(3, __qtablewidgetitem16)
|
||||
__qtablewidgetitem6 = QTableWidgetItem()
|
||||
__qtablewidgetitem6.setFont(font2);
|
||||
self.document_list.setHorizontalHeaderItem(0, __qtablewidgetitem6)
|
||||
__qtablewidgetitem7 = QTableWidgetItem()
|
||||
__qtablewidgetitem7.setFont(font2);
|
||||
self.document_list.setHorizontalHeaderItem(1, __qtablewidgetitem7)
|
||||
__qtablewidgetitem8 = QTableWidgetItem()
|
||||
__qtablewidgetitem8.setFont(font2);
|
||||
self.document_list.setHorizontalHeaderItem(2, __qtablewidgetitem8)
|
||||
__qtablewidgetitem9 = QTableWidgetItem()
|
||||
self.document_list.setHorizontalHeaderItem(3, __qtablewidgetitem9)
|
||||
self.document_list.setObjectName(u"document_list")
|
||||
self.document_list.setGeometry(QRect(780, 20, 321, 181))
|
||||
font3 = QFont()
|
||||
@@ -473,25 +357,25 @@ class Ui_MainWindow(object):
|
||||
|
||||
self.formLayout_3.setWidget(0, QFormLayout.ItemRole.LabelRole, self.label_12)
|
||||
|
||||
self.prof_id_adis = QLineEdit(self.formLayoutWidget_2)
|
||||
self.prof_id_adis.setObjectName(u"prof_id_adis")
|
||||
self.prof_id_adis.setFont(font4)
|
||||
self.prof_id_adis.setInputMethodHints(Qt.ImhPreferNumbers)
|
||||
|
||||
self.formLayout_3.setWidget(0, QFormLayout.ItemRole.FieldRole, self.prof_id_adis)
|
||||
|
||||
self.label_13 = QLabel(self.formLayoutWidget_2)
|
||||
self.label_13.setObjectName(u"label_13")
|
||||
self.label_13.setFont(font4)
|
||||
|
||||
self.formLayout_3.setWidget(1, QFormLayout.ItemRole.LabelRole, self.label_13)
|
||||
self.formLayout_3.setWidget(2, QFormLayout.ItemRole.LabelRole, self.label_13)
|
||||
|
||||
self.apparat_id_adis = QLineEdit(self.formLayoutWidget_2)
|
||||
self.apparat_id_adis.setObjectName(u"apparat_id_adis")
|
||||
self.apparat_id_adis.setFont(font4)
|
||||
self.apparat_id_adis.setInputMethodHints(Qt.ImhPreferNumbers)
|
||||
|
||||
self.formLayout_3.setWidget(1, QFormLayout.ItemRole.FieldRole, self.apparat_id_adis)
|
||||
self.formLayout_3.setWidget(2, QFormLayout.ItemRole.FieldRole, self.apparat_id_adis)
|
||||
|
||||
self.prof_id_adis = QLineEdit(self.formLayoutWidget_2)
|
||||
self.prof_id_adis.setObjectName(u"prof_id_adis")
|
||||
self.prof_id_adis.setFont(font4)
|
||||
self.prof_id_adis.setInputMethodHints(Qt.ImhPreferNumbers)
|
||||
|
||||
self.formLayout_3.setWidget(1, QFormLayout.ItemRole.FieldRole, self.prof_id_adis)
|
||||
|
||||
self.sem_year = QLineEdit(self.app_group_box)
|
||||
self.sem_year.setObjectName(u"sem_year")
|
||||
@@ -578,35 +462,35 @@ class Ui_MainWindow(object):
|
||||
self.verticalLayout_8.setContentsMargins(0, 0, 0, 0)
|
||||
self.btn_add_document = QPushButton(self.verticalLayoutWidget_3)
|
||||
self.btn_add_document.setObjectName(u"btn_add_document")
|
||||
sizePolicy4 = QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.MinimumExpanding)
|
||||
sizePolicy4.setHorizontalStretch(0)
|
||||
sizePolicy4.setVerticalStretch(0)
|
||||
sizePolicy4.setHeightForWidth(self.btn_add_document.sizePolicy().hasHeightForWidth())
|
||||
self.btn_add_document.setSizePolicy(sizePolicy4)
|
||||
sizePolicy3 = QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.MinimumExpanding)
|
||||
sizePolicy3.setHorizontalStretch(0)
|
||||
sizePolicy3.setVerticalStretch(0)
|
||||
sizePolicy3.setHeightForWidth(self.btn_add_document.sizePolicy().hasHeightForWidth())
|
||||
self.btn_add_document.setSizePolicy(sizePolicy3)
|
||||
self.btn_add_document.setFont(font4)
|
||||
|
||||
self.verticalLayout_8.addWidget(self.btn_add_document)
|
||||
|
||||
self.btn_open_document = QPushButton(self.verticalLayoutWidget_3)
|
||||
self.btn_open_document.setObjectName(u"btn_open_document")
|
||||
sizePolicy4.setHeightForWidth(self.btn_open_document.sizePolicy().hasHeightForWidth())
|
||||
self.btn_open_document.setSizePolicy(sizePolicy4)
|
||||
sizePolicy3.setHeightForWidth(self.btn_open_document.sizePolicy().hasHeightForWidth())
|
||||
self.btn_open_document.setSizePolicy(sizePolicy3)
|
||||
self.btn_open_document.setFont(font4)
|
||||
|
||||
self.verticalLayout_8.addWidget(self.btn_open_document)
|
||||
|
||||
self.check_file = QPushButton(self.verticalLayoutWidget_3)
|
||||
self.check_file.setObjectName(u"check_file")
|
||||
sizePolicy4.setHeightForWidth(self.check_file.sizePolicy().hasHeightForWidth())
|
||||
self.check_file.setSizePolicy(sizePolicy4)
|
||||
sizePolicy3.setHeightForWidth(self.check_file.sizePolicy().hasHeightForWidth())
|
||||
self.check_file.setSizePolicy(sizePolicy3)
|
||||
self.check_file.setFont(font4)
|
||||
|
||||
self.verticalLayout_8.addWidget(self.check_file)
|
||||
|
||||
self.btn_extract_data_from_document = QPushButton(self.verticalLayoutWidget_3)
|
||||
self.btn_extract_data_from_document.setObjectName(u"btn_extract_data_from_document")
|
||||
sizePolicy4.setHeightForWidth(self.btn_extract_data_from_document.sizePolicy().hasHeightForWidth())
|
||||
self.btn_extract_data_from_document.setSizePolicy(sizePolicy4)
|
||||
sizePolicy3.setHeightForWidth(self.btn_extract_data_from_document.sizePolicy().hasHeightForWidth())
|
||||
self.btn_extract_data_from_document.setSizePolicy(sizePolicy3)
|
||||
self.btn_extract_data_from_document.setFont(font4)
|
||||
|
||||
self.verticalLayout_8.addWidget(self.btn_extract_data_from_document)
|
||||
@@ -618,10 +502,133 @@ class Ui_MainWindow(object):
|
||||
|
||||
self.gridLayout_2.addWidget(self.app_group_box, 1, 0, 1, 1)
|
||||
|
||||
self.add_medium = QPushButton(self.createApparat)
|
||||
self.add_medium.setObjectName(u"add_medium")
|
||||
self.add_medium.setGeometry(QRect(3, 695, 121, 20))
|
||||
self.add_medium.setFocusPolicy(Qt.NoFocus)
|
||||
self.horizontalLayout_5 = QHBoxLayout()
|
||||
self.horizontalLayout_5.setObjectName(u"horizontalLayout_5")
|
||||
self.horizontalSpacer = QSpacerItem(20, 20, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum)
|
||||
|
||||
self.horizontalLayout_5.addItem(self.horizontalSpacer)
|
||||
|
||||
self.chkbx_show_only_wit_neweditions = QCheckBox(self.gridLayoutWidget_2)
|
||||
self.chkbx_show_only_wit_neweditions.setObjectName(u"chkbx_show_only_wit_neweditions")
|
||||
self.chkbx_show_only_wit_neweditions.setEnabled(False)
|
||||
|
||||
self.horizontalLayout_5.addWidget(self.chkbx_show_only_wit_neweditions)
|
||||
|
||||
self.horizontalSpacer_3 = QSpacerItem(40, 20, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum)
|
||||
|
||||
self.horizontalLayout_5.addItem(self.horizontalSpacer_3)
|
||||
|
||||
self.btn_reserve = QPushButton(self.gridLayoutWidget_2)
|
||||
self.btn_reserve.setObjectName(u"btn_reserve")
|
||||
|
||||
self.horizontalLayout_5.addWidget(self.btn_reserve)
|
||||
|
||||
self.add_layout = QHBoxLayout()
|
||||
self.add_layout.setObjectName(u"add_layout")
|
||||
self.label_info = QLabel(self.gridLayoutWidget_2)
|
||||
self.label_info.setObjectName(u"label_info")
|
||||
|
||||
self.add_layout.addWidget(self.label_info)
|
||||
|
||||
self.line_2 = QFrame(self.gridLayoutWidget_2)
|
||||
self.line_2.setObjectName(u"line_2")
|
||||
self.line_2.setFrameShape(QFrame.Shape.VLine)
|
||||
self.line_2.setFrameShadow(QFrame.Shadow.Sunken)
|
||||
|
||||
self.add_layout.addWidget(self.line_2)
|
||||
|
||||
self.progress_label = QLabel(self.gridLayoutWidget_2)
|
||||
self.progress_label.setObjectName(u"progress_label")
|
||||
|
||||
self.add_layout.addWidget(self.progress_label)
|
||||
|
||||
|
||||
self.horizontalLayout_5.addLayout(self.add_layout)
|
||||
|
||||
self.horizontalSpacer_4 = QSpacerItem(40, 20, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum)
|
||||
|
||||
self.horizontalLayout_5.addItem(self.horizontalSpacer_4)
|
||||
|
||||
self.avail_layout = QHBoxLayout()
|
||||
self.avail_layout.setObjectName(u"avail_layout")
|
||||
self.label_20 = QLabel(self.gridLayoutWidget_2)
|
||||
self.label_20.setObjectName(u"label_20")
|
||||
|
||||
self.avail_layout.addWidget(self.label_20)
|
||||
|
||||
self.progressBar = QProgressBar(self.gridLayoutWidget_2)
|
||||
self.progressBar.setObjectName(u"progressBar")
|
||||
self.progressBar.setValue(24)
|
||||
|
||||
self.avail_layout.addWidget(self.progressBar)
|
||||
|
||||
self.label_eta = QLabel(self.gridLayoutWidget_2)
|
||||
self.label_eta.setObjectName(u"label_eta")
|
||||
|
||||
self.avail_layout.addWidget(self.label_eta)
|
||||
|
||||
|
||||
self.horizontalLayout_5.addLayout(self.avail_layout)
|
||||
|
||||
self.line_3 = QFrame(self.gridLayoutWidget_2)
|
||||
self.line_3.setObjectName(u"line_3")
|
||||
self.line_3.setFrameShape(QFrame.Shape.VLine)
|
||||
self.line_3.setFrameShadow(QFrame.Shadow.Sunken)
|
||||
|
||||
self.horizontalLayout_5.addWidget(self.line_3)
|
||||
|
||||
self.avail_status = QLabel(self.gridLayoutWidget_2)
|
||||
self.avail_status.setObjectName(u"avail_status")
|
||||
|
||||
self.horizontalLayout_5.addWidget(self.avail_status)
|
||||
|
||||
self.automation_add_selected_books = QPushButton(self.gridLayoutWidget_2)
|
||||
self.automation_add_selected_books.setObjectName(u"automation_add_selected_books")
|
||||
|
||||
self.horizontalLayout_5.addWidget(self.automation_add_selected_books)
|
||||
|
||||
self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
||||
|
||||
self.horizontalLayout_5.addItem(self.horizontalSpacer_2)
|
||||
|
||||
|
||||
self.gridLayout_2.addLayout(self.horizontalLayout_5, 4, 0, 1, 1)
|
||||
|
||||
self.tableWidget_apparat_media = QTableWidget(self.gridLayoutWidget_2)
|
||||
if (self.tableWidget_apparat_media.columnCount() < 7):
|
||||
self.tableWidget_apparat_media.setColumnCount(7)
|
||||
__qtablewidgetitem10 = QTableWidgetItem()
|
||||
self.tableWidget_apparat_media.setHorizontalHeaderItem(0, __qtablewidgetitem10)
|
||||
__qtablewidgetitem11 = QTableWidgetItem()
|
||||
self.tableWidget_apparat_media.setHorizontalHeaderItem(1, __qtablewidgetitem11)
|
||||
__qtablewidgetitem12 = QTableWidgetItem()
|
||||
self.tableWidget_apparat_media.setHorizontalHeaderItem(2, __qtablewidgetitem12)
|
||||
__qtablewidgetitem13 = QTableWidgetItem()
|
||||
self.tableWidget_apparat_media.setHorizontalHeaderItem(3, __qtablewidgetitem13)
|
||||
__qtablewidgetitem14 = QTableWidgetItem()
|
||||
self.tableWidget_apparat_media.setHorizontalHeaderItem(4, __qtablewidgetitem14)
|
||||
__qtablewidgetitem15 = QTableWidgetItem()
|
||||
self.tableWidget_apparat_media.setHorizontalHeaderItem(5, __qtablewidgetitem15)
|
||||
__qtablewidgetitem16 = QTableWidgetItem()
|
||||
self.tableWidget_apparat_media.setHorizontalHeaderItem(6, __qtablewidgetitem16)
|
||||
self.tableWidget_apparat_media.setObjectName(u"tableWidget_apparat_media")
|
||||
sizePolicy4 = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Expanding)
|
||||
sizePolicy4.setHorizontalStretch(0)
|
||||
sizePolicy4.setVerticalStretch(0)
|
||||
sizePolicy4.setHeightForWidth(self.tableWidget_apparat_media.sizePolicy().hasHeightForWidth())
|
||||
self.tableWidget_apparat_media.setSizePolicy(sizePolicy4)
|
||||
self.tableWidget_apparat_media.setMinimumSize(QSize(1259, 0))
|
||||
self.tableWidget_apparat_media.setFocusPolicy(Qt.NoFocus)
|
||||
self.tableWidget_apparat_media.setContextMenuPolicy(Qt.CustomContextMenu)
|
||||
self.tableWidget_apparat_media.setSizeAdjustPolicy(QAbstractScrollArea.AdjustToContents)
|
||||
self.tableWidget_apparat_media.setEditTriggers(QAbstractItemView.NoEditTriggers)
|
||||
self.tableWidget_apparat_media.setAlternatingRowColors(True)
|
||||
self.tableWidget_apparat_media.setSelectionBehavior(QAbstractItemView.SelectRows)
|
||||
self.tableWidget_apparat_media.setSortingEnabled(True)
|
||||
self.tableWidget_apparat_media.horizontalHeader().setCascadingSectionResizes(True)
|
||||
|
||||
self.gridLayout_2.addWidget(self.tableWidget_apparat_media, 9, 0, 1, 1)
|
||||
|
||||
self.tabWidget.addTab(self.createApparat, "")
|
||||
self.search_statistics = QWidget()
|
||||
self.search_statistics.setObjectName(u"search_statistics")
|
||||
@@ -827,11 +834,9 @@ class Ui_MainWindow(object):
|
||||
QWidget.setTabOrder(self.check_file, self.check_send_mail)
|
||||
QWidget.setTabOrder(self.check_send_mail, self.btn_apparat_save)
|
||||
QWidget.setTabOrder(self.btn_apparat_save, self.btn_apparat_apply)
|
||||
QWidget.setTabOrder(self.btn_apparat_apply, self.chkbx_show_del_media)
|
||||
QWidget.setTabOrder(self.chkbx_show_del_media, self.btn_reserve)
|
||||
QWidget.setTabOrder(self.btn_apparat_apply, self.btn_reserve)
|
||||
QWidget.setTabOrder(self.btn_reserve, self.select_action_box)
|
||||
QWidget.setTabOrder(self.select_action_box, self.prof_id_adis)
|
||||
QWidget.setTabOrder(self.prof_id_adis, self.apparat_id_adis)
|
||||
QWidget.setTabOrder(self.select_action_box, self.apparat_id_adis)
|
||||
QWidget.setTabOrder(self.apparat_id_adis, self.automation_add_selected_books)
|
||||
QWidget.setTabOrder(self.automation_add_selected_books, self.saveandcreate)
|
||||
|
||||
@@ -840,6 +845,7 @@ class Ui_MainWindow(object):
|
||||
self.menubar.addAction(self.menuHelp.menuAction())
|
||||
self.menuDatei.addAction(self.actionBeenden)
|
||||
self.menuEinstellungen.addAction(self.actionEinstellungen)
|
||||
self.menuEinstellungen.addAction(self.actionMedien_loeschen)
|
||||
self.menuHelp.addAction(self.actionAbout)
|
||||
self.menuHelp.addAction(self.actionDokumentation)
|
||||
|
||||
@@ -869,6 +875,7 @@ class Ui_MainWindow(object):
|
||||
#if QT_CONFIG(shortcut)
|
||||
self.actionDokumentation.setShortcut(QCoreApplication.translate("MainWindow", u"F1", None))
|
||||
#endif // QT_CONFIG(shortcut)
|
||||
self.actionMedien_loeschen.setText(QCoreApplication.translate("MainWindow", u"Medien l\u00f6schen", None))
|
||||
#if QT_CONFIG(tooltip)
|
||||
self.create_document.setToolTip(QCoreApplication.translate("MainWindow", u"Erstellt die \u00dcbersicht, welche am Regal ausgeh\u00e4ngt werden kann", None))
|
||||
#endif // QT_CONFIG(tooltip)
|
||||
@@ -887,54 +894,17 @@ class Ui_MainWindow(object):
|
||||
___qtablewidgetitem4.setText(QCoreApplication.translate("MainWindow", u"Dauerapparat", None));
|
||||
___qtablewidgetitem5 = self.tableWidget_apparate.horizontalHeaderItem(5)
|
||||
___qtablewidgetitem5.setText(QCoreApplication.translate("MainWindow", u"KontoNr", None));
|
||||
#if QT_CONFIG(tooltip)
|
||||
self.chkbx_show_del_media.setToolTip(QCoreApplication.translate("MainWindow", u"WIP - Broken", None))
|
||||
#endif // QT_CONFIG(tooltip)
|
||||
self.chkbx_show_del_media.setText(QCoreApplication.translate("MainWindow", u"gel. Medien anzeigen", None))
|
||||
#if QT_CONFIG(tooltip)
|
||||
self.chkbx_show_only_wit_neweditions.setToolTip(QCoreApplication.translate("MainWindow", u"WIP - Broken", None))
|
||||
#endif // QT_CONFIG(tooltip)
|
||||
self.chkbx_show_only_wit_neweditions.setText(QCoreApplication.translate("MainWindow", u"Nur Titel mit Neuauflagen anzeigen", None))
|
||||
#if QT_CONFIG(tooltip)
|
||||
self.btn_reserve.setToolTip(QCoreApplication.translate("MainWindow", u"Dieser Knopf pr\u00fcft alle Werke, die mit einem roten X vermerkt sind. Sollten diese inzwischen im Apparat sein, wird dies aktualisiert", None))
|
||||
#endif // QT_CONFIG(tooltip)
|
||||
self.btn_reserve.setText(QCoreApplication.translate("MainWindow", u"Medien mit \u274c im Apparat?", None))
|
||||
self.label_info.setText(QCoreApplication.translate("MainWindow", u"Medien werden hinzugef\u00fcgt", None))
|
||||
self.progress_label.setText(QCoreApplication.translate("MainWindow", u"Medium x/y", None))
|
||||
self.label_20.setText(QCoreApplication.translate("MainWindow", u"Medien werden gepr\u00fcft", None))
|
||||
self.label_eta.setText("")
|
||||
self.avail_status.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None))
|
||||
self.automation_add_selected_books.setText(QCoreApplication.translate("MainWindow", u"Ausgew\u00e4hlte als verf\u00fcgbar markieren", None))
|
||||
___qtablewidgetitem6 = self.tableWidget_apparat_media.horizontalHeaderItem(0)
|
||||
___qtablewidgetitem6.setText(QCoreApplication.translate("MainWindow", u"Buchtitel", None));
|
||||
#if QT_CONFIG(tooltip)
|
||||
___qtablewidgetitem6.setToolTip(QCoreApplication.translate("MainWindow", u"Es kann sein, dass der Buchtitel leer ist, dies kommt vor, wenn der Titel nicht passend formatiert ist", None));
|
||||
#endif // QT_CONFIG(tooltip)
|
||||
___qtablewidgetitem7 = self.tableWidget_apparat_media.horizontalHeaderItem(1)
|
||||
___qtablewidgetitem7.setText(QCoreApplication.translate("MainWindow", u"Signatur", None));
|
||||
___qtablewidgetitem8 = self.tableWidget_apparat_media.horizontalHeaderItem(2)
|
||||
___qtablewidgetitem8.setText(QCoreApplication.translate("MainWindow", u"Auflage", None));
|
||||
___qtablewidgetitem9 = self.tableWidget_apparat_media.horizontalHeaderItem(3)
|
||||
___qtablewidgetitem9.setText(QCoreApplication.translate("MainWindow", u"Autor", None));
|
||||
___qtablewidgetitem10 = self.tableWidget_apparat_media.horizontalHeaderItem(4)
|
||||
___qtablewidgetitem10.setText(QCoreApplication.translate("MainWindow", u"im Apparat?", None));
|
||||
#if QT_CONFIG(tooltip)
|
||||
___qtablewidgetitem10.setToolTip(QCoreApplication.translate("MainWindow", u"Diese Angabe ist nicht zuverl\u00e4ssig. Ist das \u274c vorhanden, kann das Medium im Apparat sein, aber aufgrund eines Bugs nicht gefunden worden", None));
|
||||
#endif // QT_CONFIG(tooltip)
|
||||
___qtablewidgetitem11 = self.tableWidget_apparat_media.horizontalHeaderItem(5)
|
||||
___qtablewidgetitem11.setText(QCoreApplication.translate("MainWindow", u"Vorgemerkt", None));
|
||||
___qtablewidgetitem12 = self.tableWidget_apparat_media.horizontalHeaderItem(6)
|
||||
___qtablewidgetitem12.setText(QCoreApplication.translate("MainWindow", u"Link", None));
|
||||
self.add_medium.setText(QCoreApplication.translate("MainWindow", u"Medien hinzuf\u00fcgen", None))
|
||||
self.label.setText(QCoreApplication.translate("MainWindow", u" Medienliste", None))
|
||||
self.app_group_box.setTitle(QCoreApplication.translate("MainWindow", u"SemesterApparatsdetails", None))
|
||||
___qtablewidgetitem13 = self.document_list.horizontalHeaderItem(0)
|
||||
___qtablewidgetitem13.setText(QCoreApplication.translate("MainWindow", u"Dokumentname", None));
|
||||
___qtablewidgetitem14 = self.document_list.horizontalHeaderItem(1)
|
||||
___qtablewidgetitem14.setText(QCoreApplication.translate("MainWindow", u"Dateityp", None));
|
||||
___qtablewidgetitem15 = self.document_list.horizontalHeaderItem(2)
|
||||
___qtablewidgetitem15.setText(QCoreApplication.translate("MainWindow", u"Neu?", None));
|
||||
___qtablewidgetitem16 = self.document_list.horizontalHeaderItem(3)
|
||||
___qtablewidgetitem16.setText(QCoreApplication.translate("MainWindow", u"path", None));
|
||||
___qtablewidgetitem6 = self.document_list.horizontalHeaderItem(0)
|
||||
___qtablewidgetitem6.setText(QCoreApplication.translate("MainWindow", u"Dokumentname", None));
|
||||
___qtablewidgetitem7 = self.document_list.horizontalHeaderItem(1)
|
||||
___qtablewidgetitem7.setText(QCoreApplication.translate("MainWindow", u"Dateityp", None));
|
||||
___qtablewidgetitem8 = self.document_list.horizontalHeaderItem(2)
|
||||
___qtablewidgetitem8.setText(QCoreApplication.translate("MainWindow", u"Neu?", None));
|
||||
___qtablewidgetitem9 = self.document_list.horizontalHeaderItem(3)
|
||||
___qtablewidgetitem9.setText(QCoreApplication.translate("MainWindow", u"path", None));
|
||||
self.appname_mand.setText(QCoreApplication.translate("MainWindow", u"*", None))
|
||||
self.profname_mand.setText(QCoreApplication.translate("MainWindow", u"*", None))
|
||||
self.fach_mand.setText(QCoreApplication.translate("MainWindow", u"*", None))
|
||||
@@ -959,8 +929,8 @@ class Ui_MainWindow(object):
|
||||
self.label_10.setText(QCoreApplication.translate("MainWindow", u"Fach", None))
|
||||
self.prof_mail.setPlaceholderText("")
|
||||
self.label_12.setText(QCoreApplication.translate("MainWindow", u"Prof-ID-aDIS", None))
|
||||
self.prof_id_adis.setText("")
|
||||
self.label_13.setText(QCoreApplication.translate("MainWindow", u"Apparat-ID-aDIS", None))
|
||||
self.prof_id_adis.setText("")
|
||||
self.sem_year.setPlaceholderText(QCoreApplication.translate("MainWindow", u"2023", None))
|
||||
self.check_send_mail.setText(QCoreApplication.translate("MainWindow", u"Mail senden", None))
|
||||
self.sem_winter.setText(QCoreApplication.translate("MainWindow", u"Winter", None))
|
||||
@@ -997,7 +967,40 @@ class Ui_MainWindow(object):
|
||||
#endif // QT_CONFIG(tooltip)
|
||||
self.btn_extract_data_from_document.setText(QCoreApplication.translate("MainWindow", u"Daten aus Dokument\n"
|
||||
"\u00fcbernehmen", None))
|
||||
self.add_medium.setText(QCoreApplication.translate("MainWindow", u"Medien hinzuf\u00fcgen", None))
|
||||
#if QT_CONFIG(tooltip)
|
||||
self.chkbx_show_only_wit_neweditions.setToolTip(QCoreApplication.translate("MainWindow", u"WIP - Broken", None))
|
||||
#endif // QT_CONFIG(tooltip)
|
||||
self.chkbx_show_only_wit_neweditions.setText(QCoreApplication.translate("MainWindow", u"Nur Titel mit Neuauflagen anzeigen", None))
|
||||
#if QT_CONFIG(tooltip)
|
||||
self.btn_reserve.setToolTip(QCoreApplication.translate("MainWindow", u"Dieser Knopf pr\u00fcft alle Werke, die mit einem roten X vermerkt sind. Sollten diese inzwischen im Apparat sein, wird dies aktualisiert", None))
|
||||
#endif // QT_CONFIG(tooltip)
|
||||
self.btn_reserve.setText(QCoreApplication.translate("MainWindow", u"Medien mit \u274c im Apparat?", None))
|
||||
self.label_info.setText(QCoreApplication.translate("MainWindow", u"Medien werden hinzugef\u00fcgt", None))
|
||||
self.progress_label.setText(QCoreApplication.translate("MainWindow", u"Medium x/y", None))
|
||||
self.label_20.setText(QCoreApplication.translate("MainWindow", u"Medien werden gepr\u00fcft", None))
|
||||
self.label_eta.setText("")
|
||||
self.avail_status.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None))
|
||||
self.automation_add_selected_books.setText(QCoreApplication.translate("MainWindow", u"Ausgew\u00e4hlte als verf\u00fcgbar markieren", None))
|
||||
___qtablewidgetitem10 = self.tableWidget_apparat_media.horizontalHeaderItem(0)
|
||||
___qtablewidgetitem10.setText(QCoreApplication.translate("MainWindow", u"Buchtitel", None));
|
||||
#if QT_CONFIG(tooltip)
|
||||
___qtablewidgetitem10.setToolTip(QCoreApplication.translate("MainWindow", u"Es kann sein, dass der Buchtitel leer ist, dies kommt vor, wenn der Titel nicht passend formatiert ist", None));
|
||||
#endif // QT_CONFIG(tooltip)
|
||||
___qtablewidgetitem11 = self.tableWidget_apparat_media.horizontalHeaderItem(1)
|
||||
___qtablewidgetitem11.setText(QCoreApplication.translate("MainWindow", u"Signatur", None));
|
||||
___qtablewidgetitem12 = self.tableWidget_apparat_media.horizontalHeaderItem(2)
|
||||
___qtablewidgetitem12.setText(QCoreApplication.translate("MainWindow", u"Auflage", None));
|
||||
___qtablewidgetitem13 = self.tableWidget_apparat_media.horizontalHeaderItem(3)
|
||||
___qtablewidgetitem13.setText(QCoreApplication.translate("MainWindow", u"Autor", None));
|
||||
___qtablewidgetitem14 = self.tableWidget_apparat_media.horizontalHeaderItem(4)
|
||||
___qtablewidgetitem14.setText(QCoreApplication.translate("MainWindow", u"im Apparat?", None));
|
||||
#if QT_CONFIG(tooltip)
|
||||
___qtablewidgetitem14.setToolTip(QCoreApplication.translate("MainWindow", u"Diese Angabe ist nicht zuverl\u00e4ssig. Ist das \u274c vorhanden, kann das Medium im Apparat sein, aber aufgrund eines Bugs nicht gefunden worden", None));
|
||||
#endif // QT_CONFIG(tooltip)
|
||||
___qtablewidgetitem15 = self.tableWidget_apparat_media.horizontalHeaderItem(5)
|
||||
___qtablewidgetitem15.setText(QCoreApplication.translate("MainWindow", u"Vorgemerkt", None));
|
||||
___qtablewidgetitem16 = self.tableWidget_apparat_media.horizontalHeaderItem(6)
|
||||
___qtablewidgetitem16.setText(QCoreApplication.translate("MainWindow", u"Link", None));
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.createApparat), QCoreApplication.translate("MainWindow", u"Anlegen", None))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.search_statistics), QCoreApplication.translate("MainWindow", u"Suchen / Statistik", None))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.elsatab), QCoreApplication.translate("MainWindow", u"ELSA", None))
|
||||
|
||||
@@ -5,18 +5,16 @@ import sys
|
||||
import tempfile
|
||||
import time
|
||||
import webbrowser
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
from typing import Any, List, Optional, Tuple, Union
|
||||
|
||||
import loguru
|
||||
from natsort import natsorted
|
||||
from PySide6 import QtCore, QtGui, QtWidgets
|
||||
from PySide6.QtCore import QThread
|
||||
from PySide6.QtGui import QRegularExpressionValidator
|
||||
from PySide6.QtMultimedia import QAudioOutput, QMediaPlayer
|
||||
|
||||
from src import LOG_DIR, Icon
|
||||
from src import Icon
|
||||
from src.backend import (
|
||||
AvailChecker,
|
||||
BookGrabber,
|
||||
@@ -39,11 +37,13 @@ from src.logic import (
|
||||
pdf_to_semap,
|
||||
word_to_semap,
|
||||
)
|
||||
from src.shared.logging import log
|
||||
from src.ui import Ui_Semesterapparat
|
||||
from src.ui.dialogs import (
|
||||
About,
|
||||
ApparatExtendDialog,
|
||||
BookDataUI,
|
||||
DeleteDialog,
|
||||
DocumentPrintDialog,
|
||||
LoginDialog,
|
||||
Mail_Dialog,
|
||||
@@ -69,16 +69,6 @@ from src.ui.widgets import (
|
||||
UserCreate,
|
||||
)
|
||||
|
||||
log = loguru.logger
|
||||
log.remove()
|
||||
log.add(sys.stdout, level="INFO")
|
||||
log.add(f"{LOG_DIR}/application.log", rotation="3 MB", retention="10 days")
|
||||
|
||||
log.add(
|
||||
f"{LOG_DIR}/{datetime.now().strftime('%Y-%m-%d')}.log",
|
||||
rotation="1 day",
|
||||
retention="1 month",
|
||||
)
|
||||
log.success("UI started")
|
||||
valid_input = (0, 0, 0, 0, 0, 0)
|
||||
|
||||
@@ -92,7 +82,9 @@ class Ui(QtWidgets.QMainWindow, Ui_Semesterapparat):
|
||||
self.setupUi(MainWindow) # type:ignore
|
||||
self.MainWindow = MainWindow # type:ignore
|
||||
# set the window title
|
||||
MainWindow.setWindowTitle("Semesterapparatsmanagement") # type:ignore
|
||||
MainWindow.setWindowTitle(
|
||||
f"Semesterapparatsmanagement Semester: {Semester().value}"
|
||||
) # type:ignore
|
||||
MainWindow.setWindowIcon(Icon("logo").icon) # type:ignore
|
||||
|
||||
self.db = Database()
|
||||
@@ -135,6 +127,8 @@ class Ui(QtWidgets.QMainWindow, Ui_Semesterapparat):
|
||||
Icon("offAction", self.actionBeenden)
|
||||
self.actionBeenden.triggered.connect(self.quit) # type:ignore
|
||||
self.actionAbout.triggered.connect(self.open_about) # type:ignore
|
||||
self.actionMedien_loeschen.triggered.connect(self.open_delete_dialog)
|
||||
self.actionMedien_loeschen.setIcon(Icon("trash").icon)
|
||||
|
||||
# set validators
|
||||
self.sem_sommer.clicked.connect(lambda: self.toggleButton(self.sem_winter)) # type:ignore
|
||||
@@ -191,11 +185,11 @@ class Ui(QtWidgets.QMainWindow, Ui_Semesterapparat):
|
||||
self.app_fach.currentTextChanged.connect(self.validate_app_fach) # type:ignore
|
||||
self.sem_year.textChanged.connect(self.validate_semester) # type:ignore
|
||||
self.check_eternal_app.stateChanged.connect(self.validate_semester) # type:ignore
|
||||
self.chkbx_show_del_media.stateChanged.connect(self.update_app_media_list) # type:ignore
|
||||
# self.chkbx_show_del_media.stateChanged.connect(self.update_app_media_list) # type:ignore
|
||||
self.progress_label.setText("Bitte warten...")
|
||||
|
||||
# Set visibility/enabled state of certain entries
|
||||
self.chkbx_show_del_media.setEnabled(False)
|
||||
# self.chkbx_show_del_media.setEnabled(False)
|
||||
self.label_info.hide()
|
||||
self.app_group_box.setEnabled(False)
|
||||
self.line_2.hide()
|
||||
@@ -207,7 +201,7 @@ class Ui(QtWidgets.QMainWindow, Ui_Semesterapparat):
|
||||
self.progressBar.hide()
|
||||
self.progressBar.setMinimum(0)
|
||||
self.avail_status.hide()
|
||||
self.chkbx_show_del_media.hide()
|
||||
# self.chkbx_show_del_media.hide()
|
||||
self.chkbx_show_only_wit_neweditions.hide()
|
||||
self.automation_add_selected_books.hide()
|
||||
# self.btn_del_select_apparats.setEnabled(False)
|
||||
@@ -288,6 +282,12 @@ class Ui(QtWidgets.QMainWindow, Ui_Semesterapparat):
|
||||
self.document_list.installEventFilter(self)
|
||||
self.document_list.viewport().installEventFilter(self)
|
||||
|
||||
def open_delete_dialog(self):
|
||||
# this will open a dialog to select and delete multiple entries. by default, all books will be loaded, and a search bar can be used to fuzzy search the books and select books. on a button press, the selected books will be deleted from the apparat(s) they are part in
|
||||
# raise NotImplementedError("This feature is not yet implemented.")
|
||||
dialog = DeleteDialog()
|
||||
dialog.exec()
|
||||
|
||||
def eventFilter(self, obj, event):
|
||||
# Only handle events for document_list and its viewport
|
||||
if obj in (self.document_list, self.document_list.viewport()):
|
||||
@@ -564,7 +564,7 @@ class Ui(QtWidgets.QMainWindow, Ui_Semesterapparat):
|
||||
self.update_app_media_list()
|
||||
self.cancel_active_selection.click()
|
||||
self.check_send_mail.show()
|
||||
self.chkbx_show_del_media.show()
|
||||
# self.chkbx_show_del_media.show()
|
||||
self.cancel_active_selection.setEnabled(False)
|
||||
self.add_medium.setEnabled(False)
|
||||
# update apparat table
|
||||
@@ -731,12 +731,12 @@ class Ui(QtWidgets.QMainWindow, Ui_Semesterapparat):
|
||||
self.sem_winter.setEnabled(False)
|
||||
self.sem_year.setEnabled(False)
|
||||
self.document_list.setRowCount(0)
|
||||
self.chkbx_show_del_media.setEnabled(True)
|
||||
# self.chkbx_show_del_media.setEnabled(True)
|
||||
appdata = self.db.getApparatData(appnr, appname)
|
||||
self.populate_frame(appdata)
|
||||
self.btn_apparat_save.hide()
|
||||
self.btn_reserve.show()
|
||||
self.chkbx_show_del_media.show()
|
||||
# self.chkbx_show_del_media.show()
|
||||
|
||||
self.drpdwn_app_nr.setDisabled(True)
|
||||
self.update_app_media_list()
|
||||
@@ -773,7 +773,7 @@ class Ui(QtWidgets.QMainWindow, Ui_Semesterapparat):
|
||||
self.sem_year.setEnabled(True)
|
||||
self.sem_sommer.setEnabled(True)
|
||||
self.sem_winter.setEnabled(True)
|
||||
self.chkbx_show_del_media.setEnabled(True)
|
||||
# self.chkbx_show_del_media.setEnabled(True)
|
||||
self.drpdwn_app_nr.setEnabled(True)
|
||||
self.app_fach.setEnabled(True)
|
||||
self.check_send_mail.show()
|
||||
@@ -919,7 +919,7 @@ class Ui(QtWidgets.QMainWindow, Ui_Semesterapparat):
|
||||
self.document_list.setRowCount(0)
|
||||
self.app_group_box.setEnabled(False)
|
||||
self.app_fach.setCurrentText("")
|
||||
self.chkbx_show_del_media.hide()
|
||||
# self.chkbx_show_del_media.hide()
|
||||
self.check_send_mail.hide()
|
||||
self.btn_reserve.hide()
|
||||
self.check_eternal_app.setEnabled(False)
|
||||
|
||||
Reference in New Issue
Block a user