From a6d9498b394365899ba172d041b2116dc069c41a Mon Sep 17 00:00:00 2001 From: WorldTeacher Date: Thu, 3 Jul 2025 07:20:57 +0200 Subject: [PATCH] rework documentation launch, use generated files instead of pure mkdocs, add quiet handler for use with logging in terminal --- src/backend/documentation_thread.py | 18 +- src/ui/semesterapparat_ui.ui | 21 +- src/ui/semesterapparat_ui_ui.py | 1744 ++++++++++++++------------- src/ui/userInterface.py | 25 +- src/utils/documentation.py | 12 +- 5 files changed, 920 insertions(+), 900 deletions(-) diff --git a/src/backend/documentation_thread.py b/src/backend/documentation_thread.py index e411ec3..57cffcb 100644 --- a/src/backend/documentation_thread.py +++ b/src/backend/documentation_thread.py @@ -1,11 +1,23 @@ -from PySide6.QtCore import QThread -from src.utils.documentation import run_mkdocs +from PySide6.QtCore import QThread, Slot +from src.utils.documentation import website, QuietHandler +from wsgiref.simple_server import make_server class DocumentationThread(QThread): def __init__(self): super().__init__() + self._server = None # store server so we can shut it down def run(self): # launch_documentation() - run_mkdocs() + self._server = make_server( + "localhost", 8000, website(), handler_class=QuietHandler + ) + while not self.isInterruptionRequested(): + self._server.handle_request() + + @Slot() # slot you can connect to aboutToQuit + def stop(self): + self.requestInterruption() # ask the loop above to exit + if self._server: + self._server.shutdown() # unblock handle_request() \ No newline at end of file diff --git a/src/ui/semesterapparat_ui.ui b/src/ui/semesterapparat_ui.ui index d5a9c70..9831acd 100644 --- a/src/ui/semesterapparat_ui.ui +++ b/src/ui/semesterapparat_ui.ui @@ -1923,8 +1923,8 @@ Einige Angaben müssen ggf angepasst werden Help - + @@ -1956,17 +1956,6 @@ Einige Angaben müssen ggf angepasst werden true - - - Dokumentation (online) - - - F1 - - - Qt::ApplicationShortcut - - About @@ -1975,9 +1964,9 @@ Einige Angaben müssen ggf angepasst werden QAction::AboutRole - + - Dokumentation (lokal) + Dokumentation F1 @@ -2009,8 +1998,6 @@ Einige Angaben müssen ggf angepasst werden automation_add_selected_books saveandcreate - - - + diff --git a/src/ui/semesterapparat_ui_ui.py b/src/ui/semesterapparat_ui_ui.py index 077fb02..0b27766 100644 --- a/src/ui/semesterapparat_ui_ui.py +++ b/src/ui/semesterapparat_ui_ui.py @@ -1,845 +1,785 @@ -# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\semesterapparat_ui.ui' -# -# Created by: PySide6 UI code generator 6.9.0 -# -# 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. +# -*- coding: utf-8 -*- +################################################################################ +## Form generated from reading UI file 'semesterapparat_ui.ui' +## +## Created by: Qt User Interface Compiler version 6.9.1 +## +## WARNING! All changes made in this file will be lost when recompiling UI file! +################################################################################ -from PySide6 import QtCore, QtGui, QtWidgets - +from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, + QMetaObject, QObject, QPoint, QRect, + QSize, QTime, QUrl, Qt) +from PySide6.QtGui import (QAction, QBrush, QColor, QConicalGradient, + QCursor, QFont, QFontDatabase, QGradient, + QIcon, QImage, QKeySequence, QLinearGradient, + QPainter, QPalette, QPixmap, QRadialGradient, + QTransform) +from PySide6.QtWidgets import (QAbstractItemView, QAbstractScrollArea, QApplication, QCheckBox, + QComboBox, QFormLayout, QFrame, QGridLayout, + QGroupBox, QHBoxLayout, QHeaderView, QLabel, + QLineEdit, QMainWindow, QMenu, QMenuBar, + QPushButton, QSizePolicy, QSpacerItem, QStatusBar, + QTabWidget, QTableWidget, QTableWidgetItem, QToolButton, + QVBoxLayout, QWidget) class Ui_MainWindow(object): def setupUi(self, MainWindow): - MainWindow.setObjectName("MainWindow") - MainWindow.setWindowModality(QtCore.Qt.WindowModality.WindowModal) + if not MainWindow.objectName(): + MainWindow.setObjectName(u"MainWindow") + MainWindow.setWindowModality(Qt.WindowModal) MainWindow.setEnabled(True) MainWindow.resize(1590, 800) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed) + sizePolicy = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) MainWindow.setSizePolicy(sizePolicy) - MainWindow.setMinimumSize(QtCore.QSize(1278, 800)) - MainWindow.setMaximumSize(QtCore.QSize(1590, 800)) - MainWindow.setContextMenuPolicy(QtCore.Qt.ContextMenuPolicy.NoContextMenu) - icon = QtGui.QIcon() - icon.addPixmap(QtGui.QPixmap("c:\\Users\\aky547\\GitHub\\SemesterapparatsManager\\src\\ui\\../../../../../../icons/logo.ico"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off) + MainWindow.setMinimumSize(QSize(1278, 800)) + MainWindow.setMaximumSize(QSize(1590, 800)) + MainWindow.setContextMenuPolicy(Qt.NoContextMenu) + icon = QIcon() + icon.addFile(u"../../../../../../icons/logo.ico", QSize(), QIcon.Mode.Normal, QIcon.State.Off) MainWindow.setWindowIcon(icon) - MainWindow.setStatusTip("") - self.centralwidget = QtWidgets.QWidget(parent=MainWindow) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) + self.actionBeenden = QAction(MainWindow) + self.actionBeenden.setObjectName(u"actionBeenden") + self.actionBeenden.setMenuRole(QAction.QuitRole) + self.actionBeenden.setShortcutVisibleInContextMenu(True) + self.actionEinstellungen = QAction(MainWindow) + self.actionEinstellungen.setObjectName(u"actionEinstellungen") + self.actionEinstellungen.setShortcutVisibleInContextMenu(True) + self.actionAbout = QAction(MainWindow) + self.actionAbout.setObjectName(u"actionAbout") + self.actionAbout.setMenuRole(QAction.AboutRole) + self.actionDokumentation = QAction(MainWindow) + self.actionDokumentation.setObjectName(u"actionDokumentation") + self.centralwidget = QWidget(MainWindow) + self.centralwidget.setObjectName(u"centralwidget") sizePolicy.setHeightForWidth(self.centralwidget.sizePolicy().hasHeightForWidth()) self.centralwidget.setSizePolicy(sizePolicy) - self.centralwidget.setObjectName("centralwidget") - self.verticalLayoutWidget = QtWidgets.QWidget(parent=self.centralwidget) - self.verticalLayoutWidget.setGeometry(QtCore.QRect(0, 0, 1271, 751)) - self.verticalLayoutWidget.setObjectName("verticalLayoutWidget") - self.mainLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget) + self.verticalLayoutWidget = QWidget(self.centralwidget) + self.verticalLayoutWidget.setObjectName(u"verticalLayoutWidget") + self.verticalLayoutWidget.setGeometry(QRect(0, 0, 1271, 751)) + self.mainLayout = QVBoxLayout(self.verticalLayoutWidget) + self.mainLayout.setObjectName(u"mainLayout") self.mainLayout.setContentsMargins(0, 0, 0, 0) - self.mainLayout.setObjectName("mainLayout") - self.horizontalLayout = QtWidgets.QHBoxLayout() - self.horizontalLayout.setObjectName("horizontalLayout") - self.gridLayout = QtWidgets.QGridLayout() - self.gridLayout.setObjectName("gridLayout") - self.tabWidget = QtWidgets.QTabWidget(parent=self.verticalLayoutWidget) - self.tabWidget.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.tabWidget.setObjectName("tabWidget") - self.createApparat = QtWidgets.QWidget() - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.createApparat.sizePolicy().hasHeightForWidth()) - self.createApparat.setSizePolicy(sizePolicy) - self.createApparat.setObjectName("createApparat") - self.horizontalLayoutWidget_2 = QtWidgets.QWidget(parent=self.createApparat) - self.horizontalLayoutWidget_2.setGeometry(QtCore.QRect(0, 0, 1261, 163)) - self.horizontalLayoutWidget_2.setObjectName("horizontalLayoutWidget_2") - self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget_2) + self.horizontalLayout = QHBoxLayout() + self.horizontalLayout.setObjectName(u"horizontalLayout") + self.gridLayout = QGridLayout() + self.gridLayout.setObjectName(u"gridLayout") + self.tabWidget = QTabWidget(self.verticalLayoutWidget) + self.tabWidget.setObjectName(u"tabWidget") + self.tabWidget.setFocusPolicy(Qt.NoFocus) + self.createApparat = QWidget() + self.createApparat.setObjectName(u"createApparat") + sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred) + sizePolicy1.setHorizontalStretch(0) + sizePolicy1.setVerticalStretch(0) + sizePolicy1.setHeightForWidth(self.createApparat.sizePolicy().hasHeightForWidth()) + self.createApparat.setSizePolicy(sizePolicy1) + self.horizontalLayoutWidget_2 = QWidget(self.createApparat) + self.horizontalLayoutWidget_2.setObjectName(u"horizontalLayoutWidget_2") + self.horizontalLayoutWidget_2.setGeometry(QRect(0, 0, 1261, 163)) + self.horizontalLayout_2 = QHBoxLayout(self.horizontalLayoutWidget_2) + self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0) - self.horizontalLayout_2.setObjectName("horizontalLayout_2") - self.formLayout = QtWidgets.QFormLayout() - self.formLayout.setObjectName("formLayout") - self.verticalLayout_2 = QtWidgets.QVBoxLayout() - self.verticalLayout_2.setObjectName("verticalLayout_2") - spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding) - self.verticalLayout_2.addItem(spacerItem) - self.create_document = QtWidgets.QPushButton(parent=self.horizontalLayoutWidget_2) - self.create_document.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.create_document.setObjectName("create_document") + self.formLayout = QFormLayout() + self.formLayout.setObjectName(u"formLayout") + self.verticalLayout_2 = QVBoxLayout() + self.verticalLayout_2.setObjectName(u"verticalLayout_2") + self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.verticalLayout_2.addItem(self.verticalSpacer) + + self.create_document = QPushButton(self.horizontalLayoutWidget_2) + self.create_document.setObjectName(u"create_document") + self.create_document.setFocusPolicy(Qt.NoFocus) + self.verticalLayout_2.addWidget(self.create_document) - self.create_new_app = QtWidgets.QPushButton(parent=self.horizontalLayoutWidget_2) - self.create_new_app.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.create_new_app.setObjectName("create_new_app") + + self.create_new_app = QPushButton(self.horizontalLayoutWidget_2) + self.create_new_app.setObjectName(u"create_new_app") + self.create_new_app.setFocusPolicy(Qt.NoFocus) + self.verticalLayout_2.addWidget(self.create_new_app) - self.cancel_active_selection = QtWidgets.QPushButton(parent=self.horizontalLayoutWidget_2) + + self.cancel_active_selection = QPushButton(self.horizontalLayoutWidget_2) + self.cancel_active_selection.setObjectName(u"cancel_active_selection") self.cancel_active_selection.setEnabled(False) - self.cancel_active_selection.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.cancel_active_selection.setObjectName("cancel_active_selection") + self.cancel_active_selection.setFocusPolicy(Qt.NoFocus) + self.verticalLayout_2.addWidget(self.cancel_active_selection) - spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding) - self.verticalLayout_2.addItem(spacerItem1) - self.formLayout.setLayout(1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.verticalLayout_2) - self.tableWidget_apparate = QtWidgets.QTableWidget(parent=self.horizontalLayoutWidget_2) - self.tableWidget_apparate.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.tableWidget_apparate.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.SizeAdjustPolicy.AdjustToContents) - self.tableWidget_apparate.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers) + + self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.verticalLayout_2.addItem(self.verticalSpacer_2) + + + self.formLayout.setLayout(1, QFormLayout.ItemRole.LabelRole, self.verticalLayout_2) + + self.tableWidget_apparate = QTableWidget(self.horizontalLayoutWidget_2) + if (self.tableWidget_apparate.columnCount() < 6): + self.tableWidget_apparate.setColumnCount(6) + __qtablewidgetitem = QTableWidgetItem() + self.tableWidget_apparate.setHorizontalHeaderItem(0, __qtablewidgetitem) + __qtablewidgetitem1 = QTableWidgetItem() + self.tableWidget_apparate.setHorizontalHeaderItem(1, __qtablewidgetitem1) + __qtablewidgetitem2 = QTableWidgetItem() + self.tableWidget_apparate.setHorizontalHeaderItem(2, __qtablewidgetitem2) + __qtablewidgetitem3 = QTableWidgetItem() + self.tableWidget_apparate.setHorizontalHeaderItem(3, __qtablewidgetitem3) + __qtablewidgetitem4 = QTableWidgetItem() + self.tableWidget_apparate.setHorizontalHeaderItem(4, __qtablewidgetitem4) + __qtablewidgetitem5 = QTableWidgetItem() + self.tableWidget_apparate.setHorizontalHeaderItem(5, __qtablewidgetitem5) + self.tableWidget_apparate.setObjectName(u"tableWidget_apparate") + self.tableWidget_apparate.setFocusPolicy(Qt.NoFocus) + self.tableWidget_apparate.setSizeAdjustPolicy(QAbstractScrollArea.AdjustToContents) + self.tableWidget_apparate.setEditTriggers(QAbstractItemView.NoEditTriggers) self.tableWidget_apparate.setAlternatingRowColors(True) - self.tableWidget_apparate.setTextElideMode(QtCore.Qt.TextElideMode.ElideMiddle) - self.tableWidget_apparate.setObjectName("tableWidget_apparate") - self.tableWidget_apparate.setColumnCount(6) - self.tableWidget_apparate.setRowCount(0) - item = QtWidgets.QTableWidgetItem() - self.tableWidget_apparate.setHorizontalHeaderItem(0, item) - item = QtWidgets.QTableWidgetItem() - self.tableWidget_apparate.setHorizontalHeaderItem(1, item) - item = QtWidgets.QTableWidgetItem() - self.tableWidget_apparate.setHorizontalHeaderItem(2, item) - item = QtWidgets.QTableWidgetItem() - self.tableWidget_apparate.setHorizontalHeaderItem(3, item) - item = QtWidgets.QTableWidgetItem() - self.tableWidget_apparate.setHorizontalHeaderItem(4, item) - item = QtWidgets.QTableWidgetItem() - self.tableWidget_apparate.setHorizontalHeaderItem(5, item) + self.tableWidget_apparate.setTextElideMode(Qt.ElideMiddle) + self.tableWidget_apparate.setSortingEnabled(False) self.tableWidget_apparate.horizontalHeader().setCascadingSectionResizes(True) - self.formLayout.setWidget(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.tableWidget_apparate) + + self.formLayout.setWidget(1, QFormLayout.ItemRole.FieldRole, self.tableWidget_apparate) + + self.horizontalLayout_2.addLayout(self.formLayout) - self.line = QtWidgets.QFrame(parent=self.createApparat) - self.line.setGeometry(QtCore.QRect(0, 160, 1261, 21)) - self.line.setFrameShape(QtWidgets.QFrame.Shape.HLine) - self.line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - self.line.setObjectName("line") - self.gridLayoutWidget_2 = QtWidgets.QWidget(parent=self.createApparat) + + self.line = QFrame(self.createApparat) + self.line.setObjectName(u"line") + self.line.setGeometry(QRect(0, 160, 1261, 21)) + self.line.setFrameShape(QFrame.Shape.HLine) + self.line.setFrameShadow(QFrame.Shadow.Sunken) + self.gridLayoutWidget_2 = QWidget(self.createApparat) + self.gridLayoutWidget_2.setObjectName(u"gridLayoutWidget_2") self.gridLayoutWidget_2.setEnabled(True) - self.gridLayoutWidget_2.setGeometry(QtCore.QRect(0, 180, 1261, 511)) - self.gridLayoutWidget_2.setObjectName("gridLayoutWidget_2") - self.gridLayout_2 = QtWidgets.QGridLayout(self.gridLayoutWidget_2) + self.gridLayoutWidget_2.setGeometry(QRect(0, 180, 1261, 511)) + self.gridLayout_2 = QGridLayout(self.gridLayoutWidget_2) + self.gridLayout_2.setObjectName(u"gridLayout_2") self.gridLayout_2.setContentsMargins(0, 0, 0, 0) - self.gridLayout_2.setObjectName("gridLayout_2") - self.horizontalLayout_5 = QtWidgets.QHBoxLayout() - self.horizontalLayout_5.setObjectName("horizontalLayout_5") - spacerItem2 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Minimum) - self.horizontalLayout_5.addItem(spacerItem2) - self.chkbx_show_del_media = QtWidgets.QCheckBox(parent=self.gridLayoutWidget_2) - self.chkbx_show_del_media.setObjectName("chkbx_show_del_media") + 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_del_media = QCheckBox(self.gridLayoutWidget_2) + self.chkbx_show_del_media.setObjectName(u"chkbx_show_del_media") + self.horizontalLayout_5.addWidget(self.chkbx_show_del_media) - spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Minimum) - self.horizontalLayout_5.addItem(spacerItem3) - self.btn_reserve = QtWidgets.QPushButton(parent=self.gridLayoutWidget_2) - self.btn_reserve.setObjectName("btn_reserve") + + 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 = QtWidgets.QHBoxLayout() - self.add_layout.setObjectName("add_layout") - self.label_info = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) - self.label_info.setObjectName("label_info") + + 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 = QtWidgets.QFrame(parent=self.gridLayoutWidget_2) - self.line_2.setFrameShape(QtWidgets.QFrame.Shape.VLine) - self.line_2.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - self.line_2.setObjectName("line_2") + + 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 = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) - self.progress_label.setObjectName("progress_label") + + 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) - spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Minimum) - self.horizontalLayout_5.addItem(spacerItem4) - self.avail_layout = QtWidgets.QHBoxLayout() - self.avail_layout.setObjectName("avail_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.horizontalLayout_5.addLayout(self.avail_layout) - self.label_20 = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) - self.label_20.setObjectName("label_20") + + self.label_20 = QLabel(self.gridLayoutWidget_2) + self.label_20.setObjectName(u"label_20") + self.horizontalLayout_5.addWidget(self.label_20) - self.line_3 = QtWidgets.QFrame(parent=self.gridLayoutWidget_2) - self.line_3.setFrameShape(QtWidgets.QFrame.Shape.VLine) - self.line_3.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - self.line_3.setObjectName("line_3") + + 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 = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) - self.avail_status.setObjectName("avail_status") + + 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 = QtWidgets.QPushButton(parent=self.gridLayoutWidget_2) - self.automation_add_selected_books.setObjectName("automation_add_selected_books") + + 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) - spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum) - self.horizontalLayout_5.addItem(spacerItem5) + + 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 = QtWidgets.QTableWidget(parent=self.gridLayoutWidget_2) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.tableWidget_apparat_media.sizePolicy().hasHeightForWidth()) - self.tableWidget_apparat_media.setSizePolicy(sizePolicy) - self.tableWidget_apparat_media.setMinimumSize(QtCore.QSize(1259, 0)) - self.tableWidget_apparat_media.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.tableWidget_apparat_media.setContextMenuPolicy(QtCore.Qt.ContextMenuPolicy.CustomContextMenu) - self.tableWidget_apparat_media.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.SizeAdjustPolicy.AdjustToContents) - self.tableWidget_apparat_media.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers) + + 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(QtWidgets.QAbstractItemView.SelectionBehavior.SelectRows) - self.tableWidget_apparat_media.setObjectName("tableWidget_apparat_media") - self.tableWidget_apparat_media.setColumnCount(7) - self.tableWidget_apparat_media.setRowCount(0) - item = QtWidgets.QTableWidgetItem() - self.tableWidget_apparat_media.setHorizontalHeaderItem(0, item) - item = QtWidgets.QTableWidgetItem() - self.tableWidget_apparat_media.setHorizontalHeaderItem(1, item) - item = QtWidgets.QTableWidgetItem() - self.tableWidget_apparat_media.setHorizontalHeaderItem(2, item) - item = QtWidgets.QTableWidgetItem() - self.tableWidget_apparat_media.setHorizontalHeaderItem(3, item) - item = QtWidgets.QTableWidgetItem() - self.tableWidget_apparat_media.setHorizontalHeaderItem(4, item) - item = QtWidgets.QTableWidgetItem() - self.tableWidget_apparat_media.setHorizontalHeaderItem(5, item) - item = QtWidgets.QTableWidgetItem() - self.tableWidget_apparat_media.setHorizontalHeaderItem(6, item) + 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.label = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) - font = QtGui.QFont() + + self.label = QLabel(self.gridLayoutWidget_2) + self.label.setObjectName(u"label") + font = QFont() font.setPointSize(11) font.setBold(True) self.label.setFont(font) - self.label.setObjectName("label") + self.gridLayout_2.addWidget(self.label, 2, 0, 1, 1) - self.app_group_box = QtWidgets.QGroupBox(parent=self.gridLayoutWidget_2) + + self.app_group_box = QGroupBox(self.gridLayoutWidget_2) + self.app_group_box.setObjectName(u"app_group_box") self.app_group_box.setEnabled(True) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.app_group_box.sizePolicy().hasHeightForWidth()) - self.app_group_box.setSizePolicy(sizePolicy) - self.app_group_box.setMinimumSize(QtCore.QSize(0, 210)) - font = QtGui.QFont() - font.setPointSize(12) - font.setBold(True) - self.app_group_box.setFont(font) - self.app_group_box.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.app_group_box.setAlignment(QtCore.Qt.AlignmentFlag.AlignLeading|QtCore.Qt.AlignmentFlag.AlignLeft|QtCore.Qt.AlignmentFlag.AlignVCenter) + 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) + self.app_group_box.setMinimumSize(QSize(0, 210)) + font1 = QFont() + font1.setPointSize(12) + font1.setBold(True) + self.app_group_box.setFont(font1) + self.app_group_box.setFocusPolicy(Qt.NoFocus) + self.app_group_box.setAlignment(Qt.AlignLeading|Qt.AlignLeft|Qt.AlignVCenter) self.app_group_box.setCheckable(False) - self.app_group_box.setObjectName("app_group_box") - self.document_list = QtWidgets.QTableWidget(parent=self.app_group_box) - self.document_list.setGeometry(QtCore.QRect(780, 20, 321, 181)) - font = QtGui.QFont() - font.setPointSize(10) - font.setBold(False) - font.setKerning(False) - self.document_list.setFont(font) - self.document_list.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.document_list = QTableWidget(self.app_group_box) + if (self.document_list.columnCount() < 4): + self.document_list.setColumnCount(4) + 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) + self.document_list.setObjectName(u"document_list") + self.document_list.setGeometry(QRect(780, 20, 321, 181)) + font3 = QFont() + font3.setPointSize(10) + font3.setBold(False) + font3.setKerning(False) + self.document_list.setFont(font3) + self.document_list.setFocusPolicy(Qt.NoFocus) self.document_list.setAcceptDrops(True) - self.document_list.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) - self.document_list.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.SizeAdjustPolicy.AdjustToContents) + self.document_list.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) + self.document_list.setSizeAdjustPolicy(QAbstractScrollArea.AdjustToContents) self.document_list.setDragEnabled(True) - self.document_list.setDragDropMode(QtWidgets.QAbstractItemView.DragDropMode.DragOnly) - self.document_list.setDefaultDropAction(QtCore.Qt.DropAction.LinkAction) - self.document_list.setSelectionMode(QtWidgets.QAbstractItemView.SelectionMode.SingleSelection) - self.document_list.setObjectName("document_list") - self.document_list.setColumnCount(4) - self.document_list.setRowCount(0) - item = QtWidgets.QTableWidgetItem() - font = QtGui.QFont() - font.setFamily("Arial") - font.setPointSize(8) - item.setFont(font) - self.document_list.setHorizontalHeaderItem(0, item) - item = QtWidgets.QTableWidgetItem() - font = QtGui.QFont() - font.setFamily("Arial") - font.setPointSize(8) - item.setFont(font) - self.document_list.setHorizontalHeaderItem(1, item) - item = QtWidgets.QTableWidgetItem() - font = QtGui.QFont() - font.setFamily("Arial") - font.setPointSize(8) - item.setFont(font) - self.document_list.setHorizontalHeaderItem(2, item) - item = QtWidgets.QTableWidgetItem() - self.document_list.setHorizontalHeaderItem(3, item) + self.document_list.setDragDropMode(QAbstractItemView.DragOnly) + self.document_list.setDefaultDropAction(Qt.LinkAction) + self.document_list.setSelectionMode(QAbstractItemView.SingleSelection) self.document_list.horizontalHeader().setDefaultSectionSize(107) - self.appname_mand = QtWidgets.QLabel(parent=self.app_group_box) - self.appname_mand.setGeometry(QtCore.QRect(330, 50, 16, 21)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.appname_mand.setFont(font) - self.appname_mand.setObjectName("appname_mand") - self.profname_mand = QtWidgets.QLabel(parent=self.app_group_box) - self.profname_mand.setGeometry(QtCore.QRect(110, 110, 16, 21)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.profname_mand.setFont(font) - self.profname_mand.setObjectName("profname_mand") - self.prof_title = QtWidgets.QLineEdit(parent=self.app_group_box) - self.prof_title.setGeometry(QtCore.QRect(120, 80, 71, 20)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.prof_title.setFont(font) - self.prof_title.setFocusPolicy(QtCore.Qt.FocusPolicy.ClickFocus) - self.prof_title.setObjectName("prof_title") - self.fach_mand = QtWidgets.QLabel(parent=self.app_group_box) - self.fach_mand.setGeometry(QtCore.QRect(510, 50, 47, 21)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.fach_mand.setFont(font) - self.fach_mand.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.fach_mand.setObjectName("fach_mand") - self.btn_apparat_apply = QtWidgets.QPushButton(parent=self.app_group_box) - self.btn_apparat_apply.setGeometry(QtCore.QRect(360, 150, 75, 23)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.btn_apparat_apply.setFont(font) - self.btn_apparat_apply.setObjectName("btn_apparat_apply") - self.label_9 = QtWidgets.QLabel(parent=self.app_group_box) - self.label_9.setGeometry(QtCore.QRect(20, 160, 71, 21)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.label_9.setFont(font) - self.label_9.setObjectName("label_9") - self.gridLayoutWidget_5 = QtWidgets.QWidget(parent=self.app_group_box) - self.gridLayoutWidget_5.setGeometry(QtCore.QRect(520, 30, 241, 61)) - self.gridLayoutWidget_5.setObjectName("gridLayoutWidget_5") - self.gridLayout_6 = QtWidgets.QGridLayout(self.gridLayoutWidget_5) + self.appname_mand = QLabel(self.app_group_box) + self.appname_mand.setObjectName(u"appname_mand") + self.appname_mand.setGeometry(QRect(330, 50, 16, 21)) + font4 = QFont() + font4.setPointSize(9) + font4.setBold(False) + self.appname_mand.setFont(font4) + self.profname_mand = QLabel(self.app_group_box) + self.profname_mand.setObjectName(u"profname_mand") + self.profname_mand.setGeometry(QRect(110, 110, 16, 21)) + self.profname_mand.setFont(font4) + self.prof_title = QLineEdit(self.app_group_box) + self.prof_title.setObjectName(u"prof_title") + self.prof_title.setGeometry(QRect(120, 80, 71, 20)) + self.prof_title.setFont(font4) + self.prof_title.setFocusPolicy(Qt.ClickFocus) + self.fach_mand = QLabel(self.app_group_box) + self.fach_mand.setObjectName(u"fach_mand") + self.fach_mand.setGeometry(QRect(510, 50, 47, 21)) + self.fach_mand.setFont(font4) + self.fach_mand.setFocusPolicy(Qt.NoFocus) + self.btn_apparat_apply = QPushButton(self.app_group_box) + self.btn_apparat_apply.setObjectName(u"btn_apparat_apply") + self.btn_apparat_apply.setGeometry(QRect(360, 150, 75, 23)) + self.btn_apparat_apply.setFont(font4) + self.label_9 = QLabel(self.app_group_box) + self.label_9.setObjectName(u"label_9") + self.label_9.setGeometry(QRect(20, 160, 71, 21)) + self.label_9.setFont(font4) + self.gridLayoutWidget_5 = QWidget(self.app_group_box) + self.gridLayoutWidget_5.setObjectName(u"gridLayoutWidget_5") + self.gridLayoutWidget_5.setGeometry(QRect(520, 30, 241, 61)) + self.gridLayout_6 = QGridLayout(self.gridLayoutWidget_5) + self.gridLayout_6.setObjectName(u"gridLayout_6") self.gridLayout_6.setContentsMargins(0, 0, 0, 0) - self.gridLayout_6.setObjectName("gridLayout_6") - self.app_fach = QtWidgets.QComboBox(parent=self.gridLayoutWidget_5) - self.app_fach.setMaximumSize(QtCore.QSize(16777215, 25)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.app_fach.setFont(font) + self.app_fach = QComboBox(self.gridLayoutWidget_5) + self.app_fach.setObjectName(u"app_fach") + self.app_fach.setMaximumSize(QSize(16777215, 25)) + self.app_fach.setFont(font4) self.app_fach.setEditable(True) - self.app_fach.setObjectName("app_fach") + self.gridLayout_6.addWidget(self.app_fach, 0, 1, 1, 1) - spacerItem6 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum) - self.gridLayout_6.addItem(spacerItem6, 0, 3, 1, 1) - self.valid_check_app_fach = QtWidgets.QToolButton(parent=self.gridLayoutWidget_5) - self.valid_check_app_fach.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.valid_check_app_fach.setText("") + + self.horizontalSpacer_7 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_6.addItem(self.horizontalSpacer_7, 0, 3, 1, 1) + + self.valid_check_app_fach = QToolButton(self.gridLayoutWidget_5) + self.valid_check_app_fach.setObjectName(u"valid_check_app_fach") + self.valid_check_app_fach.setFocusPolicy(Qt.NoFocus) self.valid_check_app_fach.setAutoRaise(True) - self.valid_check_app_fach.setArrowType(QtCore.Qt.ArrowType.NoArrow) - self.valid_check_app_fach.setObjectName("valid_check_app_fach") + self.valid_check_app_fach.setArrowType(Qt.NoArrow) + self.gridLayout_6.addWidget(self.valid_check_app_fach, 0, 2, 1, 1) - self._mand = QtWidgets.QLabel(parent=self.app_group_box) - self._mand.setGeometry(QtCore.QRect(330, 90, 16, 21)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self._mand.setFont(font) - self._mand.setObjectName("_mand") - self.prof_tel_nr = QtWidgets.QLineEdit(parent=self.app_group_box) - self.prof_tel_nr.setGeometry(QtCore.QRect(120, 160, 121, 20)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.prof_tel_nr.setFont(font) - self.prof_tel_nr.setInputMethodHints(QtCore.Qt.InputMethodHint.ImhNone) - self.prof_tel_nr.setPlaceholderText("") - self.prof_tel_nr.setObjectName("prof_tel_nr") - self.check_eternal_app = QtWidgets.QCheckBox(parent=self.app_group_box) + + self._mand = QLabel(self.app_group_box) + self._mand.setObjectName(u"_mand") + self._mand.setGeometry(QRect(330, 90, 16, 21)) + self._mand.setFont(font4) + self.prof_tel_nr = QLineEdit(self.app_group_box) + self.prof_tel_nr.setObjectName(u"prof_tel_nr") + self.prof_tel_nr.setGeometry(QRect(120, 160, 121, 20)) + self.prof_tel_nr.setFont(font4) + self.prof_tel_nr.setInputMethodHints(Qt.ImhNone) + self.check_eternal_app = QCheckBox(self.app_group_box) + self.check_eternal_app.setObjectName(u"check_eternal_app") self.check_eternal_app.setEnabled(False) - self.check_eternal_app.setGeometry(QtCore.QRect(340, 120, 101, 17)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.check_eternal_app.setFont(font) - self.check_eternal_app.setObjectName("check_eternal_app") - self.sem_sommer = QtWidgets.QCheckBox(parent=self.app_group_box) - self.sem_sommer.setGeometry(QtCore.QRect(340, 100, 82, 17)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.sem_sommer.setFont(font) - self.sem_sommer.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus) - self.sem_sommer.setObjectName("sem_sommer") - self.drpdwn_prof_name = QtWidgets.QComboBox(parent=self.app_group_box) - self.drpdwn_prof_name.setGeometry(QtCore.QRect(120, 110, 121, 22)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.drpdwn_prof_name.setFont(font) - self.drpdwn_prof_name.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus) - self.drpdwn_prof_name.setInputMethodHints(QtCore.Qt.InputMethodHint.ImhNone) + self.check_eternal_app.setGeometry(QRect(340, 120, 101, 17)) + self.check_eternal_app.setFont(font4) + self.sem_sommer = QCheckBox(self.app_group_box) + self.sem_sommer.setObjectName(u"sem_sommer") + self.sem_sommer.setGeometry(QRect(340, 100, 82, 17)) + self.sem_sommer.setFont(font4) + self.sem_sommer.setFocusPolicy(Qt.StrongFocus) + self.drpdwn_prof_name = QComboBox(self.app_group_box) + self.drpdwn_prof_name.setObjectName(u"drpdwn_prof_name") + self.drpdwn_prof_name.setGeometry(QRect(120, 110, 121, 22)) + self.drpdwn_prof_name.setFont(font4) + self.drpdwn_prof_name.setFocusPolicy(Qt.StrongFocus) + self.drpdwn_prof_name.setInputMethodHints(Qt.ImhNone) self.drpdwn_prof_name.setEditable(True) - self.drpdwn_prof_name.setInsertPolicy(QtWidgets.QComboBox.InsertPolicy.InsertAlphabetically) - self.drpdwn_prof_name.setPlaceholderText("") + self.drpdwn_prof_name.setInsertPolicy(QComboBox.InsertAlphabetically) self.drpdwn_prof_name.setFrame(True) - self.drpdwn_prof_name.setObjectName("drpdwn_prof_name") - self.mail_mand = QtWidgets.QLabel(parent=self.app_group_box) - self.mail_mand.setGeometry(QtCore.QRect(110, 140, 47, 21)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.mail_mand.setFont(font) - self.mail_mand.setObjectName("mail_mand") - self.label_3 = QtWidgets.QLabel(parent=self.app_group_box) - self.label_3.setGeometry(QtCore.QRect(20, 80, 61, 20)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.label_3.setFont(font) - self.label_3.setObjectName("label_3") - self.label_2 = QtWidgets.QLabel(parent=self.app_group_box) - self.label_2.setGeometry(QtCore.QRect(20, 50, 101, 21)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.label_2.setFont(font) - self.label_2.setObjectName("label_2") - self.label_8 = QtWidgets.QLabel(parent=self.app_group_box) - self.label_8.setGeometry(QtCore.QRect(20, 140, 71, 21)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.label_8.setFont(font) - self.label_8.setObjectName("label_8") - self.label_10 = QtWidgets.QLabel(parent=self.app_group_box) - self.label_10.setGeometry(QtCore.QRect(480, 50, 51, 21)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.label_10.setFont(font) - self.label_10.setObjectName("label_10") - self.prof_mail = QtWidgets.QLineEdit(parent=self.app_group_box) - self.prof_mail.setGeometry(QtCore.QRect(120, 140, 121, 20)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.prof_mail.setFont(font) - self.prof_mail.setInputMethodHints(QtCore.Qt.InputMethodHint.ImhEmailCharactersOnly) + self.mail_mand = QLabel(self.app_group_box) + self.mail_mand.setObjectName(u"mail_mand") + self.mail_mand.setGeometry(QRect(110, 140, 47, 21)) + self.mail_mand.setFont(font4) + self.label_3 = QLabel(self.app_group_box) + self.label_3.setObjectName(u"label_3") + self.label_3.setGeometry(QRect(20, 80, 61, 20)) + self.label_3.setFont(font4) + self.label_2 = QLabel(self.app_group_box) + self.label_2.setObjectName(u"label_2") + self.label_2.setGeometry(QRect(20, 50, 101, 21)) + self.label_2.setFont(font4) + self.label_8 = QLabel(self.app_group_box) + self.label_8.setObjectName(u"label_8") + self.label_8.setGeometry(QRect(20, 140, 71, 21)) + self.label_8.setFont(font4) + self.label_10 = QLabel(self.app_group_box) + self.label_10.setObjectName(u"label_10") + self.label_10.setGeometry(QRect(480, 50, 51, 21)) + self.label_10.setFont(font4) + self.prof_mail = QLineEdit(self.app_group_box) + self.prof_mail.setObjectName(u"prof_mail") + self.prof_mail.setGeometry(QRect(120, 140, 121, 20)) + self.prof_mail.setFont(font4) + self.prof_mail.setInputMethodHints(Qt.ImhEmailCharactersOnly) self.prof_mail.setMaxLength(200) - self.prof_mail.setPlaceholderText("") - self.prof_mail.setObjectName("prof_mail") - self.formLayoutWidget_2 = QtWidgets.QWidget(parent=self.app_group_box) - self.formLayoutWidget_2.setGeometry(QtCore.QRect(560, 100, 211, 99)) - self.formLayoutWidget_2.setObjectName("formLayoutWidget_2") - self.formLayout_3 = QtWidgets.QFormLayout(self.formLayoutWidget_2) + self.formLayoutWidget_2 = QWidget(self.app_group_box) + self.formLayoutWidget_2.setObjectName(u"formLayoutWidget_2") + self.formLayoutWidget_2.setGeometry(QRect(560, 100, 211, 99)) + self.formLayout_3 = QFormLayout(self.formLayoutWidget_2) + self.formLayout_3.setObjectName(u"formLayout_3") self.formLayout_3.setContentsMargins(0, 0, 0, 0) - self.formLayout_3.setObjectName("formLayout_3") - self.label_12 = QtWidgets.QLabel(parent=self.formLayoutWidget_2) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.label_12.setFont(font) - self.label_12.setObjectName("label_12") - self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_12) - self.prof_id_adis = QtWidgets.QLineEdit(parent=self.formLayoutWidget_2) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.prof_id_adis.setFont(font) - self.prof_id_adis.setInputMethodHints(QtCore.Qt.InputMethodHint.ImhPreferNumbers) - self.prof_id_adis.setText("") - self.prof_id_adis.setObjectName("prof_id_adis") - self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.prof_id_adis) - self.label_13 = QtWidgets.QLabel(parent=self.formLayoutWidget_2) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.label_13.setFont(font) - self.label_13.setObjectName("label_13") - self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_13) - self.apparat_id_adis = QtWidgets.QLineEdit(parent=self.formLayoutWidget_2) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.apparat_id_adis.setFont(font) - self.apparat_id_adis.setInputMethodHints(QtCore.Qt.InputMethodHint.ImhPreferNumbers) - self.apparat_id_adis.setObjectName("apparat_id_adis") - self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.apparat_id_adis) - self.sem_year = QtWidgets.QLineEdit(parent=self.app_group_box) - self.sem_year.setGeometry(QtCore.QRect(410, 90, 113, 20)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.sem_year.setFont(font) - self.sem_year.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus) + self.label_12 = QLabel(self.formLayoutWidget_2) + self.label_12.setObjectName(u"label_12") + self.label_12.setFont(font4) + + 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.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.sem_year = QLineEdit(self.app_group_box) + self.sem_year.setObjectName(u"sem_year") + self.sem_year.setGeometry(QRect(410, 90, 113, 20)) + self.sem_year.setFont(font4) + self.sem_year.setFocusPolicy(Qt.StrongFocus) self.sem_year.setMaxLength(5) - self.sem_year.setObjectName("sem_year") - self.check_send_mail = QtWidgets.QCheckBox(parent=self.app_group_box) - self.check_send_mail.setGeometry(QtCore.QRect(450, 150, 91, 24)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.check_send_mail.setFont(font) - self.check_send_mail.setObjectName("check_send_mail") - self.sem_winter = QtWidgets.QCheckBox(parent=self.app_group_box) - self.sem_winter.setGeometry(QtCore.QRect(340, 80, 82, 17)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.sem_winter.setFont(font) - self.sem_winter.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus) - self.sem_winter.setObjectName("sem_winter") - self.label_4 = QtWidgets.QLabel(parent=self.app_group_box) - self.label_4.setGeometry(QtCore.QRect(20, 110, 71, 21)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.label_4.setFont(font) - self.label_4.setObjectName("label_4") - self.telnr_mand = QtWidgets.QLabel(parent=self.app_group_box) - self.telnr_mand.setGeometry(QtCore.QRect(110, 160, 47, 21)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.telnr_mand.setFont(font) - self.telnr_mand.setObjectName("telnr_mand") - self.btn_apparat_save = QtWidgets.QPushButton(parent=self.app_group_box) - self.btn_apparat_save.setGeometry(QtCore.QRect(270, 150, 75, 23)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.btn_apparat_save.setFont(font) - self.btn_apparat_save.setStatusTip("") - self.btn_apparat_save.setObjectName("btn_apparat_save") - self.label_5 = QtWidgets.QLabel(parent=self.app_group_box) - self.label_5.setGeometry(QtCore.QRect(250, 50, 91, 21)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.label_5.setFont(font) - self.label_5.setObjectName("label_5") - self.app_name = QtWidgets.QLineEdit(parent=self.app_group_box) - self.app_name.setGeometry(QtCore.QRect(340, 50, 113, 20)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.app_name.setFont(font) - self.app_name.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus) - self.app_name.setObjectName("app_name") - self.drpdwn_app_nr = QtWidgets.QComboBox(parent=self.app_group_box) - self.drpdwn_app_nr.setGeometry(QtCore.QRect(120, 50, 69, 22)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.drpdwn_app_nr.setFont(font) - self.drpdwn_app_nr.setInputMethodHints(QtCore.Qt.InputMethodHint.ImhNone) + self.check_send_mail = QCheckBox(self.app_group_box) + self.check_send_mail.setObjectName(u"check_send_mail") + self.check_send_mail.setGeometry(QRect(450, 150, 91, 24)) + self.check_send_mail.setFont(font4) + self.sem_winter = QCheckBox(self.app_group_box) + self.sem_winter.setObjectName(u"sem_winter") + self.sem_winter.setGeometry(QRect(340, 80, 82, 17)) + self.sem_winter.setFont(font4) + self.sem_winter.setFocusPolicy(Qt.StrongFocus) + self.label_4 = QLabel(self.app_group_box) + self.label_4.setObjectName(u"label_4") + self.label_4.setGeometry(QRect(20, 110, 71, 21)) + self.label_4.setFont(font4) + self.telnr_mand = QLabel(self.app_group_box) + self.telnr_mand.setObjectName(u"telnr_mand") + self.telnr_mand.setGeometry(QRect(110, 160, 47, 21)) + self.telnr_mand.setFont(font4) + self.btn_apparat_save = QPushButton(self.app_group_box) + self.btn_apparat_save.setObjectName(u"btn_apparat_save") + self.btn_apparat_save.setGeometry(QRect(270, 150, 75, 23)) + self.btn_apparat_save.setFont(font4) + self.label_5 = QLabel(self.app_group_box) + self.label_5.setObjectName(u"label_5") + self.label_5.setGeometry(QRect(250, 50, 91, 21)) + self.label_5.setFont(font4) + self.app_name = QLineEdit(self.app_group_box) + self.app_name.setObjectName(u"app_name") + self.app_name.setGeometry(QRect(340, 50, 113, 20)) + self.app_name.setFont(font4) + self.app_name.setFocusPolicy(Qt.StrongFocus) + self.drpdwn_app_nr = QComboBox(self.app_group_box) + self.drpdwn_app_nr.setObjectName(u"drpdwn_app_nr") + self.drpdwn_app_nr.setGeometry(QRect(120, 50, 69, 22)) + self.drpdwn_app_nr.setFont(font4) + self.drpdwn_app_nr.setInputMethodHints(Qt.ImhNone) self.drpdwn_app_nr.setEditable(True) - self.drpdwn_app_nr.setObjectName("drpdwn_app_nr") - self.label_6 = QtWidgets.QLabel(parent=self.app_group_box) - self.label_6.setGeometry(QtCore.QRect(270, 90, 61, 21)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.label_6.setFont(font) - self.label_6.setObjectName("label_6") - self.valid_check_profname = QtWidgets.QToolButton(parent=self.app_group_box) - self.valid_check_profname.setGeometry(QtCore.QRect(240, 110, 23, 22)) - self.valid_check_profname.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.valid_check_profname.setText("") + self.label_6 = QLabel(self.app_group_box) + self.label_6.setObjectName(u"label_6") + self.label_6.setGeometry(QRect(270, 90, 61, 21)) + self.label_6.setFont(font4) + self.valid_check_profname = QToolButton(self.app_group_box) + self.valid_check_profname.setObjectName(u"valid_check_profname") + self.valid_check_profname.setGeometry(QRect(240, 110, 23, 22)) + self.valid_check_profname.setFocusPolicy(Qt.NoFocus) self.valid_check_profname.setAutoRaise(True) - self.valid_check_profname.setArrowType(QtCore.Qt.ArrowType.NoArrow) - self.valid_check_profname.setObjectName("valid_check_profname") - self.valid_check_appname = QtWidgets.QToolButton(parent=self.app_group_box) - self.valid_check_appname.setGeometry(QtCore.QRect(450, 50, 22, 22)) - self.valid_check_appname.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.valid_check_appname.setText("") + self.valid_check_profname.setArrowType(Qt.NoArrow) + self.valid_check_appname = QToolButton(self.app_group_box) + self.valid_check_appname.setObjectName(u"valid_check_appname") + self.valid_check_appname.setGeometry(QRect(450, 50, 22, 22)) + self.valid_check_appname.setFocusPolicy(Qt.NoFocus) self.valid_check_appname.setAutoRaise(True) - self.valid_check_appname.setObjectName("valid_check_appname") - self.valid_check_semester = QtWidgets.QToolButton(parent=self.app_group_box) - self.valid_check_semester.setGeometry(QtCore.QRect(520, 90, 22, 22)) - self.valid_check_semester.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.valid_check_semester.setText("") + self.valid_check_semester = QToolButton(self.app_group_box) + self.valid_check_semester.setObjectName(u"valid_check_semester") + self.valid_check_semester.setGeometry(QRect(520, 90, 22, 22)) + self.valid_check_semester.setFocusPolicy(Qt.NoFocus) self.valid_check_semester.setAutoRaise(True) - self.valid_check_semester.setObjectName("valid_check_semester") - self.valid_check_mail = QtWidgets.QToolButton(parent=self.app_group_box) - self.valid_check_mail.setGeometry(QtCore.QRect(240, 140, 22, 22)) - self.valid_check_mail.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.valid_check_mail.setText("") + self.valid_check_mail = QToolButton(self.app_group_box) + self.valid_check_mail.setObjectName(u"valid_check_mail") + self.valid_check_mail.setGeometry(QRect(240, 140, 22, 22)) + self.valid_check_mail.setFocusPolicy(Qt.NoFocus) self.valid_check_mail.setAutoRaise(True) - self.valid_check_mail.setObjectName("valid_check_mail") - self.valid_check_telnr = QtWidgets.QToolButton(parent=self.app_group_box) - self.valid_check_telnr.setGeometry(QtCore.QRect(240, 160, 22, 22)) - self.valid_check_telnr.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.valid_check_telnr.setText("") + self.valid_check_telnr = QToolButton(self.app_group_box) + self.valid_check_telnr.setObjectName(u"valid_check_telnr") + self.valid_check_telnr.setGeometry(QRect(240, 160, 22, 22)) + self.valid_check_telnr.setFocusPolicy(Qt.NoFocus) self.valid_check_telnr.setAutoRaise(True) - self.valid_check_telnr.setObjectName("valid_check_telnr") - self.saveandcreate = QtWidgets.QPushButton(parent=self.app_group_box) + self.saveandcreate = QPushButton(self.app_group_box) + self.saveandcreate.setObjectName(u"saveandcreate") self.saveandcreate.setEnabled(False) - self.saveandcreate.setGeometry(QtCore.QRect(270, 180, 161, 24)) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.saveandcreate.setFont(font) - self.saveandcreate.setObjectName("saveandcreate") - self.verticalLayoutWidget_3 = QtWidgets.QWidget(parent=self.app_group_box) - self.verticalLayoutWidget_3.setGeometry(QtCore.QRect(1110, 17, 131, 181)) - self.verticalLayoutWidget_3.setObjectName("verticalLayoutWidget_3") - self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.verticalLayoutWidget_3) + self.saveandcreate.setGeometry(QRect(270, 180, 161, 24)) + self.saveandcreate.setFont(font4) + self.verticalLayoutWidget_3 = QWidget(self.app_group_box) + self.verticalLayoutWidget_3.setObjectName(u"verticalLayoutWidget_3") + self.verticalLayoutWidget_3.setGeometry(QRect(1110, 17, 131, 181)) + self.verticalLayout_8 = QVBoxLayout(self.verticalLayoutWidget_3) + self.verticalLayout_8.setObjectName(u"verticalLayout_8") self.verticalLayout_8.setContentsMargins(0, 0, 0, 0) - self.verticalLayout_8.setObjectName("verticalLayout_8") - self.btn_add_document = QtWidgets.QPushButton(parent=self.verticalLayoutWidget_3) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.MinimumExpanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.btn_add_document.sizePolicy().hasHeightForWidth()) - self.btn_add_document.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.btn_add_document.setFont(font) - self.btn_add_document.setObjectName("btn_add_document") + 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) + self.btn_add_document.setFont(font4) + self.verticalLayout_8.addWidget(self.btn_add_document) - self.btn_open_document = QtWidgets.QPushButton(parent=self.verticalLayoutWidget_3) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.MinimumExpanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.btn_open_document.sizePolicy().hasHeightForWidth()) - self.btn_open_document.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.btn_open_document.setFont(font) - self.btn_open_document.setObjectName("btn_open_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) + self.btn_open_document.setFont(font4) + self.verticalLayout_8.addWidget(self.btn_open_document) - self.check_file = QtWidgets.QPushButton(parent=self.verticalLayoutWidget_3) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.MinimumExpanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.check_file.sizePolicy().hasHeightForWidth()) - self.check_file.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.check_file.setFont(font) - self.check_file.setObjectName("check_file") + + 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) + self.check_file.setFont(font4) + self.verticalLayout_8.addWidget(self.check_file) - self.btn_extract_data_from_document = QtWidgets.QPushButton(parent=self.verticalLayoutWidget_3) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.MinimumExpanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.btn_extract_data_from_document.sizePolicy().hasHeightForWidth()) - self.btn_extract_data_from_document.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(9) - font.setBold(False) - self.btn_extract_data_from_document.setFont(font) - self.btn_extract_data_from_document.setObjectName("btn_extract_data_from_document") + + 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) + self.btn_extract_data_from_document.setFont(font4) + self.verticalLayout_8.addWidget(self.btn_extract_data_from_document) + self.verticalLayout_8.setStretch(0, 1) self.verticalLayout_8.setStretch(1, 1) self.verticalLayout_8.setStretch(2, 2) self.verticalLayout_8.setStretch(3, 2) + self.gridLayout_2.addWidget(self.app_group_box, 1, 0, 1, 1) - self.add_medium = QtWidgets.QPushButton(parent=self.createApparat) - self.add_medium.setGeometry(QtCore.QRect(3, 695, 121, 20)) - self.add_medium.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.add_medium.setObjectName("add_medium") + + 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.tabWidget.addTab(self.createApparat, "") - self.search_statistics = QtWidgets.QWidget() - self.search_statistics.setObjectName("search_statistics") + self.search_statistics = QWidget() + self.search_statistics.setObjectName(u"search_statistics") self.tabWidget.addTab(self.search_statistics, "") - self.elsatab = QtWidgets.QWidget() - self.elsatab.setObjectName("elsatab") + self.elsatab = QWidget() + self.elsatab.setObjectName(u"elsatab") self.tabWidget.addTab(self.elsatab, "") - self.admin = QtWidgets.QWidget() - self.admin.setObjectName("admin") - self.label_21 = QtWidgets.QLabel(parent=self.admin) - self.label_21.setGeometry(QtCore.QRect(10, 30, 47, 22)) - self.label_21.setObjectName("label_21") - self.select_action_box = QtWidgets.QComboBox(parent=self.admin) - self.select_action_box.setGeometry(QtCore.QRect(60, 30, 181, 22)) - self.select_action_box.setObjectName("select_action_box") + self.admin = QWidget() + self.admin.setObjectName(u"admin") + self.label_21 = QLabel(self.admin) + self.label_21.setObjectName(u"label_21") + self.label_21.setGeometry(QRect(10, 30, 47, 22)) + self.select_action_box = QComboBox(self.admin) self.select_action_box.addItem("") self.select_action_box.addItem("") self.select_action_box.addItem("") - self.admin_action = QtWidgets.QGroupBox(parent=self.admin) - self.admin_action.setGeometry(QtCore.QRect(10, 70, 570, 291)) - font = QtGui.QFont() - font.setBold(False) - self.admin_action.setFont(font) + self.select_action_box.setObjectName(u"select_action_box") + self.select_action_box.setGeometry(QRect(60, 30, 181, 22)) + self.admin_action = QGroupBox(self.admin) + self.admin_action.setObjectName(u"admin_action") + self.admin_action.setGeometry(QRect(10, 70, 570, 291)) + font5 = QFont() + font5.setBold(False) + self.admin_action.setFont(font5) self.admin_action.setFlat(True) self.admin_action.setCheckable(False) - self.admin_action.setObjectName("admin_action") self.tabWidget.addTab(self.admin, "") + self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1) + + self.horizontalLayout.addLayout(self.gridLayout) + + self.mainLayout.addLayout(self.horizontalLayout) - self.verticalLayoutWidget_2 = QtWidgets.QWidget(parent=self.centralwidget) - self.verticalLayoutWidget_2.setGeometry(QtCore.QRect(1280, 0, 306, 751)) - self.verticalLayoutWidget_2.setObjectName("verticalLayoutWidget_2") - self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget_2) + + self.verticalLayoutWidget_2 = QWidget(self.centralwidget) + self.verticalLayoutWidget_2.setObjectName(u"verticalLayoutWidget_2") + self.verticalLayoutWidget_2.setGeometry(QRect(1280, 0, 306, 751)) + self.verticalLayout = QVBoxLayout(self.verticalLayoutWidget_2) + self.verticalLayout.setObjectName(u"verticalLayout") self.verticalLayout.setContentsMargins(0, 0, 0, 0) - self.verticalLayout.setObjectName("verticalLayout") - self.calendar_frame = QtWidgets.QFrame(parent=self.verticalLayoutWidget_2) - self.calendar_frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.calendar_frame.setFrameShadow(QtWidgets.QFrame.Shadow.Raised) - self.calendar_frame.setObjectName("calendar_frame") - self.verticalLayout_7 = QtWidgets.QVBoxLayout(self.calendar_frame) - self.verticalLayout_7.setObjectName("verticalLayout_7") - self.calendarlayout = QtWidgets.QVBoxLayout() - self.calendarlayout.setObjectName("calendarlayout") + self.calendar_frame = QFrame(self.verticalLayoutWidget_2) + self.calendar_frame.setObjectName(u"calendar_frame") + self.calendar_frame.setFrameShape(QFrame.StyledPanel) + self.calendar_frame.setFrameShadow(QFrame.Raised) + self.verticalLayout_7 = QVBoxLayout(self.calendar_frame) + self.verticalLayout_7.setObjectName(u"verticalLayout_7") + self.calendarlayout = QVBoxLayout() + self.calendarlayout.setObjectName(u"calendarlayout") + self.verticalLayout_7.addLayout(self.calendarlayout) + + self.verticalLayout.addWidget(self.calendar_frame) - self.frame_creation_progress = QtWidgets.QFrame(parent=self.verticalLayoutWidget_2) - self.frame_creation_progress.setObjectName("frame_creation_progress") - self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.frame_creation_progress) + + self.frame_creation_progress = QFrame(self.verticalLayoutWidget_2) + self.frame_creation_progress.setObjectName(u"frame_creation_progress") + self.verticalLayout_4 = QVBoxLayout(self.frame_creation_progress) self.verticalLayout_4.setSpacing(6) - self.verticalLayout_4.setObjectName("verticalLayout_4") - self.steps = QtWidgets.QFrame(parent=self.frame_creation_progress) - self.steps.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.steps.setFrameShadow(QtWidgets.QFrame.Shadow.Raised) - self.steps.setObjectName("steps") - self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.steps) + self.verticalLayout_4.setObjectName(u"verticalLayout_4") + self.steps = QFrame(self.frame_creation_progress) + self.steps.setObjectName(u"steps") + self.steps.setFrameShape(QFrame.StyledPanel) + self.steps.setFrameShadow(QFrame.Raised) + self.verticalLayout_3 = QVBoxLayout(self.steps) self.verticalLayout_3.setSpacing(0) - self.verticalLayout_3.setObjectName("verticalLayout_3") - self.groupBox_2 = QtWidgets.QGroupBox(parent=self.steps) + self.verticalLayout_3.setObjectName(u"verticalLayout_3") + self.groupBox_2 = QGroupBox(self.steps) + self.groupBox_2.setObjectName(u"groupBox_2") self.groupBox_2.setEnabled(True) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.groupBox_2.sizePolicy().hasHeightForWidth()) - self.groupBox_2.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(11) - font.setBold(True) + sizePolicy5 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) + sizePolicy5.setHorizontalStretch(0) + sizePolicy5.setVerticalStretch(0) + sizePolicy5.setHeightForWidth(self.groupBox_2.sizePolicy().hasHeightForWidth()) + self.groupBox_2.setSizePolicy(sizePolicy5) self.groupBox_2.setFont(font) - self.groupBox_2.setObjectName("groupBox_2") - self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.groupBox_2) - self.verticalLayout_6.setObjectName("verticalLayout_6") - self.appdata_check = QtWidgets.QCheckBox(parent=self.groupBox_2) - font = QtGui.QFont() - font.setPointSize(8) - font.setBold(False) - self.appdata_check.setFont(font) - self.appdata_check.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.appdata_check.setObjectName("appdata_check") + self.verticalLayout_6 = QVBoxLayout(self.groupBox_2) + self.verticalLayout_6.setObjectName(u"verticalLayout_6") + self.appdata_check = QCheckBox(self.groupBox_2) + self.appdata_check.setObjectName(u"appdata_check") + font6 = QFont() + font6.setPointSize(8) + font6.setBold(False) + self.appdata_check.setFont(font6) + self.appdata_check.setFocusPolicy(Qt.NoFocus) + self.verticalLayout_6.addWidget(self.appdata_check) - self.media_check = QtWidgets.QCheckBox(parent=self.groupBox_2) - font = QtGui.QFont() - font.setPointSize(8) - font.setBold(False) - self.media_check.setFont(font) - self.media_check.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.media_check.setObjectName("media_check") + + self.media_check = QCheckBox(self.groupBox_2) + self.media_check.setObjectName(u"media_check") + self.media_check.setFont(font6) + self.media_check.setFocusPolicy(Qt.NoFocus) + self.verticalLayout_6.addWidget(self.media_check) - self.ids_check = QtWidgets.QCheckBox(parent=self.groupBox_2) - font = QtGui.QFont() - font.setPointSize(8) - font.setBold(False) - self.ids_check.setFont(font) - self.ids_check.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.ids_check.setObjectName("ids_check") + + self.ids_check = QCheckBox(self.groupBox_2) + self.ids_check.setObjectName(u"ids_check") + self.ids_check.setFont(font6) + self.ids_check.setFocusPolicy(Qt.NoFocus) + self.verticalLayout_6.addWidget(self.ids_check) + + self.verticalLayout_3.addWidget(self.groupBox_2) - self.groupBox = QtWidgets.QGroupBox(parent=self.steps) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.groupBox.sizePolicy().hasHeightForWidth()) - self.groupBox.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(11) - font.setBold(True) + + self.groupBox = QGroupBox(self.steps) + self.groupBox.setObjectName(u"groupBox") + sizePolicy5.setHeightForWidth(self.groupBox.sizePolicy().hasHeightForWidth()) + self.groupBox.setSizePolicy(sizePolicy5) self.groupBox.setFont(font) - self.groupBox.setObjectName("groupBox") - self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.groupBox) - self.verticalLayout_5.setObjectName("verticalLayout_5") - self.media_checked = QtWidgets.QCheckBox(parent=self.groupBox) - font = QtGui.QFont() - font.setPointSize(8) - font.setBold(False) - font.setItalic(False) - font.setUnderline(False) - font.setKerning(True) - font.setStyleStrategy(QtGui.QFont.StyleStrategy.PreferDefault) - self.media_checked.setFont(font) - self.media_checked.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.media_checked.setObjectName("media_checked") + self.verticalLayout_5 = QVBoxLayout(self.groupBox) + self.verticalLayout_5.setObjectName(u"verticalLayout_5") + self.media_checked = QCheckBox(self.groupBox) + self.media_checked.setObjectName(u"media_checked") + font7 = QFont() + font7.setPointSize(8) + font7.setBold(False) + font7.setItalic(False) + font7.setUnderline(False) + font7.setKerning(True) + font7.setStyleStrategy(QFont.PreferDefault) + self.media_checked.setFont(font7) + self.media_checked.setFocusPolicy(Qt.NoFocus) + self.verticalLayout_5.addWidget(self.media_checked) - self.media_edited_check = QtWidgets.QCheckBox(parent=self.groupBox) - font = QtGui.QFont() - font.setPointSize(8) - font.setBold(False) - font.setItalic(False) - font.setUnderline(False) - font.setKerning(True) - font.setStyleStrategy(QtGui.QFont.StyleStrategy.PreferDefault) - self.media_edited_check.setFont(font) - self.media_edited_check.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.media_edited_check.setObjectName("media_edited_check") + + self.media_edited_check = QCheckBox(self.groupBox) + self.media_edited_check.setObjectName(u"media_edited_check") + self.media_edited_check.setFont(font7) + self.media_edited_check.setFocusPolicy(Qt.NoFocus) + self.verticalLayout_5.addWidget(self.media_edited_check) - self.app_created = QtWidgets.QCheckBox(parent=self.groupBox) - font = QtGui.QFont() - font.setPointSize(8) - font.setBold(False) - font.setItalic(False) - font.setUnderline(False) - font.setKerning(True) - font.setStyleStrategy(QtGui.QFont.StyleStrategy.PreferDefault) - self.app_created.setFont(font) - self.app_created.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.app_created.setObjectName("app_created") + + self.app_created = QCheckBox(self.groupBox) + self.app_created.setObjectName(u"app_created") + self.app_created.setFont(font7) + self.app_created.setFocusPolicy(Qt.NoFocus) + self.verticalLayout_5.addWidget(self.app_created) - self.btn_copy_adis_command = QtWidgets.QPushButton(parent=self.groupBox) - font = QtGui.QFont() - font.setPointSize(8) - font.setBold(False) - font.setItalic(False) - font.setUnderline(False) - font.setKerning(True) - font.setStyleStrategy(QtGui.QFont.StyleStrategy.PreferDefault) - self.btn_copy_adis_command.setFont(font) - self.btn_copy_adis_command.setStatusTip("") - self.btn_copy_adis_command.setWhatsThis("") - self.btn_copy_adis_command.setAccessibleDescription("") + + self.btn_copy_adis_command = QPushButton(self.groupBox) + self.btn_copy_adis_command.setObjectName(u"btn_copy_adis_command") + self.btn_copy_adis_command.setFont(font7) self.btn_copy_adis_command.setAutoFillBackground(False) - icon1 = QtGui.QIcon() - icon1.addPixmap(QtGui.QPixmap("c:\\Users\\aky547\\GitHub\\SemesterapparatsManager\\src\\ui\\../../../../../../.designer/backup/icons/information.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off) + icon1 = QIcon() + icon1.addFile(u"../../../../../../.designer/backup/icons/information.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.btn_copy_adis_command.setIcon(icon1) self.btn_copy_adis_command.setCheckable(False) self.btn_copy_adis_command.setChecked(False) self.btn_copy_adis_command.setAutoDefault(False) - self.btn_copy_adis_command.setObjectName("btn_copy_adis_command") + self.verticalLayout_5.addWidget(self.btn_copy_adis_command) + + self.verticalLayout_3.addWidget(self.groupBox) + + self.verticalLayout_4.addWidget(self.steps) + + self.verticalLayout.addWidget(self.frame_creation_progress) + MainWindow.setCentralWidget(self.centralwidget) - self.menubar = QtWidgets.QMenuBar(parent=MainWindow) - self.menubar.setGeometry(QtCore.QRect(0, 0, 1590, 22)) - self.menubar.setObjectName("menubar") - self.menuDatei = QtWidgets.QMenu(parent=self.menubar) - self.menuDatei.setObjectName("menuDatei") - self.menuEinstellungen = QtWidgets.QMenu(parent=self.menubar) - self.menuEinstellungen.setObjectName("menuEinstellungen") - self.menuHelp = QtWidgets.QMenu(parent=self.menubar) - self.menuHelp.setObjectName("menuHelp") + self.menubar = QMenuBar(MainWindow) + self.menubar.setObjectName(u"menubar") + self.menubar.setGeometry(QRect(0, 0, 1590, 22)) + self.menuDatei = QMenu(self.menubar) + self.menuDatei.setObjectName(u"menuDatei") + self.menuEinstellungen = QMenu(self.menubar) + self.menuEinstellungen.setObjectName(u"menuEinstellungen") + self.menuHelp = QMenu(self.menubar) + self.menuHelp.setObjectName(u"menuHelp") MainWindow.setMenuBar(self.menubar) - self.statusBar = QtWidgets.QStatusBar(parent=MainWindow) - self.statusBar.setObjectName("statusBar") + self.statusBar = QStatusBar(MainWindow) + self.statusBar.setObjectName(u"statusBar") MainWindow.setStatusBar(self.statusBar) - self.actionBeenden = QtGui.QAction(parent=MainWindow) - self.actionBeenden.setMenuRole(QtGui.QAction.MenuRole.QuitRole) - self.actionBeenden.setShortcutVisibleInContextMenu(True) - self.actionBeenden.setObjectName("actionBeenden") - self.actionEinstellungen = QtGui.QAction(parent=MainWindow) - self.actionEinstellungen.setShortcutVisibleInContextMenu(True) - self.actionEinstellungen.setObjectName("actionEinstellungen") - self.actionDokumentation = QtGui.QAction(parent=MainWindow) - self.actionDokumentation.setShortcutContext(QtCore.Qt.ShortcutContext.ApplicationShortcut) - self.actionDokumentation.setObjectName("actionDokumentation") - self.actionAbout = QtGui.QAction(parent=MainWindow) - self.actionAbout.setMenuRole(QtGui.QAction.MenuRole.AboutRole) - self.actionAbout.setObjectName("actionAbout") - self.actionDokumentation_lokal = QtGui.QAction(parent=MainWindow) - self.actionDokumentation_lokal.setObjectName("actionDokumentation_lokal") - self.menuDatei.addAction(self.actionBeenden) - self.menuEinstellungen.addAction(self.actionEinstellungen) - self.menuHelp.addAction(self.actionDokumentation_lokal) - self.menuHelp.addAction(self.actionAbout) - self.menubar.addAction(self.menuDatei.menuAction()) - self.menubar.addAction(self.menuEinstellungen.menuAction()) - self.menubar.addAction(self.menuHelp.menuAction()) +#if QT_CONFIG(shortcut) self.label_9.setBuddy(self.prof_tel_nr) self.label_3.setBuddy(self.prof_title) self.label_2.setBuddy(self.drpdwn_app_nr) @@ -850,153 +790,215 @@ class Ui_MainWindow(object): self.label_4.setBuddy(self.drpdwn_prof_name) self.label_5.setBuddy(self.app_name) self.label_6.setBuddy(self.sem_year) +#endif // QT_CONFIG(shortcut) + QWidget.setTabOrder(self.drpdwn_app_nr, self.drpdwn_prof_name) + QWidget.setTabOrder(self.drpdwn_prof_name, self.prof_mail) + QWidget.setTabOrder(self.prof_mail, self.prof_tel_nr) + QWidget.setTabOrder(self.prof_tel_nr, self.app_name) + QWidget.setTabOrder(self.app_name, self.app_fach) + QWidget.setTabOrder(self.app_fach, self.sem_sommer) + QWidget.setTabOrder(self.sem_sommer, self.sem_winter) + QWidget.setTabOrder(self.sem_winter, self.sem_year) + QWidget.setTabOrder(self.sem_year, self.check_eternal_app) + QWidget.setTabOrder(self.check_eternal_app, self.btn_add_document) + QWidget.setTabOrder(self.btn_add_document, self.btn_open_document) + QWidget.setTabOrder(self.btn_open_document, self.check_file) + 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_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.apparat_id_adis, self.automation_add_selected_books) + QWidget.setTabOrder(self.automation_add_selected_books, self.saveandcreate) + + self.menubar.addAction(self.menuDatei.menuAction()) + self.menubar.addAction(self.menuEinstellungen.menuAction()) + self.menubar.addAction(self.menuHelp.menuAction()) + self.menuDatei.addAction(self.actionBeenden) + self.menuEinstellungen.addAction(self.actionEinstellungen) + self.menuHelp.addAction(self.actionAbout) + self.menuHelp.addAction(self.actionDokumentation) self.retranslateUi(MainWindow) + self.tabWidget.setCurrentIndex(0) - QtCore.QMetaObject.connectSlotsByName(MainWindow) - MainWindow.setTabOrder(self.drpdwn_app_nr, self.drpdwn_prof_name) - MainWindow.setTabOrder(self.drpdwn_prof_name, self.prof_mail) - MainWindow.setTabOrder(self.prof_mail, self.prof_tel_nr) - MainWindow.setTabOrder(self.prof_tel_nr, self.app_name) - MainWindow.setTabOrder(self.app_name, self.app_fach) - MainWindow.setTabOrder(self.app_fach, self.sem_sommer) - MainWindow.setTabOrder(self.sem_sommer, self.sem_winter) - MainWindow.setTabOrder(self.sem_winter, self.sem_year) - MainWindow.setTabOrder(self.sem_year, self.check_eternal_app) - MainWindow.setTabOrder(self.check_eternal_app, self.btn_add_document) - MainWindow.setTabOrder(self.btn_add_document, self.btn_open_document) - MainWindow.setTabOrder(self.btn_open_document, self.check_file) - MainWindow.setTabOrder(self.check_file, self.check_send_mail) - MainWindow.setTabOrder(self.check_send_mail, self.btn_apparat_save) - MainWindow.setTabOrder(self.btn_apparat_save, self.btn_apparat_apply) - MainWindow.setTabOrder(self.btn_apparat_apply, self.chkbx_show_del_media) - MainWindow.setTabOrder(self.chkbx_show_del_media, self.btn_reserve) - MainWindow.setTabOrder(self.btn_reserve, self.select_action_box) - MainWindow.setTabOrder(self.select_action_box, self.prof_id_adis) - MainWindow.setTabOrder(self.prof_id_adis, self.apparat_id_adis) - MainWindow.setTabOrder(self.apparat_id_adis, self.automation_add_selected_books) - MainWindow.setTabOrder(self.automation_add_selected_books, self.saveandcreate) + + + QMetaObject.connectSlotsByName(MainWindow) + # setupUi def retranslateUi(self, MainWindow): - _translate = QtCore.QCoreApplication.translate - MainWindow.setWindowTitle(_translate("MainWindow", "Semesterapparatsmanagement")) - self.create_document.setToolTip(_translate("MainWindow", "Erstellt die Übersicht, welche am Regal ausgehängt werden kann")) - self.create_document.setText(_translate("MainWindow", "Übersicht erstellen")) - self.create_new_app.setText(_translate("MainWindow", "neu. App anlegen")) - self.cancel_active_selection.setText(_translate("MainWindow", "Auswahl abbrechen")) - self.tableWidget_apparate.setSortingEnabled(False) - item = self.tableWidget_apparate.horizontalHeaderItem(0) - item.setText(_translate("MainWindow", "AppNr")) - item = self.tableWidget_apparate.horizontalHeaderItem(1) - item.setText(_translate("MainWindow", "App Name")) - item = self.tableWidget_apparate.horizontalHeaderItem(2) - item.setText(_translate("MainWindow", "Professor")) - item = self.tableWidget_apparate.horizontalHeaderItem(3) - item.setText(_translate("MainWindow", "gültig bis")) - item = self.tableWidget_apparate.horizontalHeaderItem(4) - item.setText(_translate("MainWindow", "Dauerapparat")) - item = self.tableWidget_apparate.horizontalHeaderItem(5) - item.setText(_translate("MainWindow", "KontoNr")) - self.chkbx_show_del_media.setText(_translate("MainWindow", "gel. Medien anzeigen")) - self.btn_reserve.setText(_translate("MainWindow", "im Apparat?")) - self.label_info.setText(_translate("MainWindow", "Medien werden hinzugefügt")) - self.progress_label.setText(_translate("MainWindow", "Medium x/y")) - self.label_20.setText(_translate("MainWindow", "Medien werden geprüft")) - self.avail_status.setText(_translate("MainWindow", "TextLabel")) - self.automation_add_selected_books.setText(_translate("MainWindow", "Ausgewählte als verfügbar markieren")) - self.tableWidget_apparat_media.setSortingEnabled(True) - item = self.tableWidget_apparat_media.horizontalHeaderItem(0) - item.setText(_translate("MainWindow", "Buchtitel")) - item.setToolTip(_translate("MainWindow", "Es kann sein, dass der Buchtitel leer ist, dies kommt vor, wenn der Titel nicht passend formatiert ist")) - item = self.tableWidget_apparat_media.horizontalHeaderItem(1) - item.setText(_translate("MainWindow", "Signatur")) - item = self.tableWidget_apparat_media.horizontalHeaderItem(2) - item.setText(_translate("MainWindow", "Auflage")) - item = self.tableWidget_apparat_media.horizontalHeaderItem(3) - item.setText(_translate("MainWindow", "Autor")) - item = self.tableWidget_apparat_media.horizontalHeaderItem(4) - item.setText(_translate("MainWindow", "im Apparat?")) - item.setToolTip(_translate("MainWindow", "Diese Angabe ist nicht zuverlässig. Ist das ❌ vorhanden, kann das Medium im Apparat sein, aber aufgrund eines Bugs nicht gefunden worden")) - item = self.tableWidget_apparat_media.horizontalHeaderItem(5) - item.setText(_translate("MainWindow", "Vorgemerkt")) - item = self.tableWidget_apparat_media.horizontalHeaderItem(6) - item.setText(_translate("MainWindow", "Link")) - self.label.setText(_translate("MainWindow", " Medienliste")) - self.app_group_box.setTitle(_translate("MainWindow", "SemesterApparatsdetails")) - item = self.document_list.horizontalHeaderItem(0) - item.setText(_translate("MainWindow", "Dokumentname")) - item = self.document_list.horizontalHeaderItem(1) - item.setText(_translate("MainWindow", "Dateityp")) - item = self.document_list.horizontalHeaderItem(2) - item.setText(_translate("MainWindow", "Neu?")) - item = self.document_list.horizontalHeaderItem(3) - item.setText(_translate("MainWindow", "path")) - self.appname_mand.setText(_translate("MainWindow", "*")) - self.profname_mand.setText(_translate("MainWindow", "*")) - self.fach_mand.setText(_translate("MainWindow", "*")) - self.btn_apparat_apply.setText(_translate("MainWindow", "Aktualisieren")) - self.label_9.setText(_translate("MainWindow", "Tel")) - self._mand.setText(_translate("MainWindow", "*")) - self.check_eternal_app.setText(_translate("MainWindow", "Dauerapparat")) - self.sem_sommer.setText(_translate("MainWindow", "Sommer")) - self.drpdwn_prof_name.setToolTip(_translate("MainWindow", "Nachname, Vorname")) - self.mail_mand.setText(_translate("MainWindow", "*")) - self.label_3.setStatusTip(_translate("MainWindow", "sdvosdvsdv")) - self.label_3.setText(_translate("MainWindow", "Prof. Titel")) - self.label_2.setText(_translate("MainWindow", "Apparatsnummer")) - self.label_8.setText(_translate("MainWindow", "Mail")) - self.label_10.setText(_translate("MainWindow", "Fach")) - self.label_12.setText(_translate("MainWindow", "Prof-ID-aDIS")) - self.label_13.setText(_translate("MainWindow", "Apparat-ID-aDIS")) - self.sem_year.setPlaceholderText(_translate("MainWindow", "2023")) - self.check_send_mail.setText(_translate("MainWindow", "Mail senden")) - self.sem_winter.setText(_translate("MainWindow", "Winter")) - self.label_4.setText(_translate("MainWindow", "Prof. Name")) - self.telnr_mand.setText(_translate("MainWindow", "*")) - self.btn_apparat_save.setText(_translate("MainWindow", "Speichern")) - self.label_5.setText(_translate("MainWindow", "Apparatsname")) - self.label_6.setText(_translate("MainWindow", "Semester")) - self.valid_check_profname.setStatusTip(_translate("MainWindow", "Format: Nachname, Vorname")) - self.valid_check_mail.setStatusTip(_translate("MainWindow", "mail@irgendwas.wasanderes")) - self.saveandcreate.setText(_translate("MainWindow", "Speichern und anlegen")) - self.btn_add_document.setText(_translate("MainWindow", "Dokument hinzufügen")) - self.btn_open_document.setText(_translate("MainWindow", "Dokument öffnen")) - self.check_file.setToolTip(_translate("MainWindow", "Abhängig von der Anzahl der Medien kann die Suche sehr lange dauern")) - self.check_file.setText(_translate("MainWindow", "Medien aus Dokument\n" -" hinzufügen")) - self.btn_extract_data_from_document.setToolTip(_translate("MainWindow", "Die Apparatsdetails werden aus dem Dokument gelesen und eingetragen\n" -"Einige Angaben müssen ggf angepasst werden")) - self.btn_extract_data_from_document.setText(_translate("MainWindow", "Daten aus Dokument\n" -"übernehmen")) - self.add_medium.setText(_translate("MainWindow", "Medien hinzufügen")) - self.tabWidget.setTabText(self.tabWidget.indexOf(self.createApparat), _translate("MainWindow", "Anlegen")) - self.tabWidget.setTabText(self.tabWidget.indexOf(self.search_statistics), _translate("MainWindow", "Suchen / Statistik")) - self.tabWidget.setTabText(self.tabWidget.indexOf(self.elsatab), _translate("MainWindow", "ELSA")) - self.label_21.setText(_translate("MainWindow", "Aktion:")) - self.select_action_box.setItemText(0, _translate("MainWindow", "Nutzer anlegen")) - self.select_action_box.setItemText(1, _translate("MainWindow", "Nutzer bearbeiten")) - self.select_action_box.setItemText(2, _translate("MainWindow", "Lehrperson bearbeiten")) - self.admin_action.setTitle(_translate("MainWindow", "GroupBox")) - self.tabWidget.setTabText(self.tabWidget.indexOf(self.admin), _translate("MainWindow", "Admin")) - self.groupBox_2.setTitle(_translate("MainWindow", "Software")) - self.appdata_check.setText(_translate("MainWindow", "Apparatsdaten eingegeben")) - self.media_check.setText(_translate("MainWindow", "Medien hinzugefügt / importiert")) - self.ids_check.setText(_translate("MainWindow", "Prof-ID und Apparat-ID eingetragen")) - self.groupBox.setTitle(_translate("MainWindow", "aDIS")) - self.media_checked.setText(_translate("MainWindow", "Medien geprüft")) - self.media_edited_check.setText(_translate("MainWindow", "Medien bearbeitet")) - self.app_created.setText(_translate("MainWindow", "Apparat angelegt")) - self.btn_copy_adis_command.setToolTip(_translate("MainWindow", "Hier klicken, um die aDIS Abfrage in die Zwischenablage zu kopieren")) - self.btn_copy_adis_command.setText(_translate("MainWindow", " aDIS Abfrage in Zwischenablage kopieren")) - self.menuDatei.setTitle(_translate("MainWindow", "Datei")) - self.menuEinstellungen.setTitle(_translate("MainWindow", "Bearbeiten")) - self.menuHelp.setTitle(_translate("MainWindow", "Help")) - self.actionBeenden.setText(_translate("MainWindow", "Beenden")) - self.actionBeenden.setShortcut(_translate("MainWindow", "Ctrl+Q")) - self.actionEinstellungen.setText(_translate("MainWindow", "Einstellungen")) - self.actionEinstellungen.setShortcut(_translate("MainWindow", "Alt+S")) - self.actionDokumentation.setText(_translate("MainWindow", "Dokumentation (online)")) - self.actionDokumentation.setShortcut(_translate("MainWindow", "F1")) - self.actionAbout.setText(_translate("MainWindow", "About")) - self.actionDokumentation_lokal.setText(_translate("MainWindow", "Dokumentation (lokal)")) - self.actionDokumentation_lokal.setShortcut(_translate("MainWindow", "F1")) + MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"Semesterapparatsmanagement", None)) +#if QT_CONFIG(statustip) + MainWindow.setStatusTip("") +#endif // QT_CONFIG(statustip) + self.actionBeenden.setText(QCoreApplication.translate("MainWindow", u"Beenden", None)) +#if QT_CONFIG(shortcut) + self.actionBeenden.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+Q", None)) +#endif // QT_CONFIG(shortcut) + self.actionEinstellungen.setText(QCoreApplication.translate("MainWindow", u"Einstellungen", None)) +#if QT_CONFIG(shortcut) + self.actionEinstellungen.setShortcut(QCoreApplication.translate("MainWindow", u"Alt+S", None)) +#endif // QT_CONFIG(shortcut) + self.actionAbout.setText(QCoreApplication.translate("MainWindow", u"About", None)) + self.actionDokumentation.setText(QCoreApplication.translate("MainWindow", u"Dokumentation", None)) +#if QT_CONFIG(shortcut) + self.actionDokumentation.setShortcut(QCoreApplication.translate("MainWindow", u"F1", None)) +#endif // QT_CONFIG(shortcut) +#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) + self.create_document.setText(QCoreApplication.translate("MainWindow", u"\u00dcbersicht erstellen", None)) + self.create_new_app.setText(QCoreApplication.translate("MainWindow", u"neu. App anlegen", None)) + self.cancel_active_selection.setText(QCoreApplication.translate("MainWindow", u"Auswahl abbrechen", None)) + ___qtablewidgetitem = self.tableWidget_apparate.horizontalHeaderItem(0) + ___qtablewidgetitem.setText(QCoreApplication.translate("MainWindow", u"AppNr", None)); + ___qtablewidgetitem1 = self.tableWidget_apparate.horizontalHeaderItem(1) + ___qtablewidgetitem1.setText(QCoreApplication.translate("MainWindow", u"App Name", None)); + ___qtablewidgetitem2 = self.tableWidget_apparate.horizontalHeaderItem(2) + ___qtablewidgetitem2.setText(QCoreApplication.translate("MainWindow", u"Professor", None)); + ___qtablewidgetitem3 = self.tableWidget_apparate.horizontalHeaderItem(3) + ___qtablewidgetitem3.setText(QCoreApplication.translate("MainWindow", u"g\u00fcltig bis", None)); + ___qtablewidgetitem4 = self.tableWidget_apparate.horizontalHeaderItem(4) + ___qtablewidgetitem4.setText(QCoreApplication.translate("MainWindow", u"Dauerapparat", None)); + ___qtablewidgetitem5 = self.tableWidget_apparate.horizontalHeaderItem(5) + ___qtablewidgetitem5.setText(QCoreApplication.translate("MainWindow", u"KontoNr", None)); + self.chkbx_show_del_media.setText(QCoreApplication.translate("MainWindow", u"gel. Medien anzeigen", None)) + self.btn_reserve.setText(QCoreApplication.translate("MainWindow", u"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.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.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)); + 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)) + self.btn_apparat_apply.setText(QCoreApplication.translate("MainWindow", u"Aktualisieren", None)) + self.label_9.setText(QCoreApplication.translate("MainWindow", u"Tel", None)) + self.valid_check_app_fach.setText("") + self._mand.setText(QCoreApplication.translate("MainWindow", u"*", None)) + self.prof_tel_nr.setPlaceholderText("") + self.check_eternal_app.setText(QCoreApplication.translate("MainWindow", u"Dauerapparat", None)) + self.sem_sommer.setText(QCoreApplication.translate("MainWindow", u"Sommer", None)) +#if QT_CONFIG(tooltip) + self.drpdwn_prof_name.setToolTip(QCoreApplication.translate("MainWindow", u"Nachname, Vorname", None)) +#endif // QT_CONFIG(tooltip) + self.drpdwn_prof_name.setPlaceholderText("") + self.mail_mand.setText(QCoreApplication.translate("MainWindow", u"*", None)) +#if QT_CONFIG(statustip) + self.label_3.setStatusTip(QCoreApplication.translate("MainWindow", u"sdvosdvsdv", None)) +#endif // QT_CONFIG(statustip) + self.label_3.setText(QCoreApplication.translate("MainWindow", u"Prof. Titel", None)) + self.label_2.setText(QCoreApplication.translate("MainWindow", u"Apparatsnummer", None)) + self.label_8.setText(QCoreApplication.translate("MainWindow", u"Mail", None)) + 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.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)) + self.label_4.setText(QCoreApplication.translate("MainWindow", u"Prof. Name", None)) + self.telnr_mand.setText(QCoreApplication.translate("MainWindow", u"*", None)) +#if QT_CONFIG(statustip) + self.btn_apparat_save.setStatusTip("") +#endif // QT_CONFIG(statustip) + self.btn_apparat_save.setText(QCoreApplication.translate("MainWindow", u"Speichern", None)) + self.label_5.setText(QCoreApplication.translate("MainWindow", u"Apparatsname", None)) + self.label_6.setText(QCoreApplication.translate("MainWindow", u"Semester", None)) +#if QT_CONFIG(statustip) + self.valid_check_profname.setStatusTip(QCoreApplication.translate("MainWindow", u"Format: Nachname, Vorname", None)) +#endif // QT_CONFIG(statustip) + self.valid_check_profname.setText("") + self.valid_check_appname.setText("") + self.valid_check_semester.setText("") +#if QT_CONFIG(statustip) + self.valid_check_mail.setStatusTip(QCoreApplication.translate("MainWindow", u"mail@irgendwas.wasanderes", None)) +#endif // QT_CONFIG(statustip) + self.valid_check_mail.setText("") + self.valid_check_telnr.setText("") + self.saveandcreate.setText(QCoreApplication.translate("MainWindow", u"Speichern und anlegen", None)) + self.btn_add_document.setText(QCoreApplication.translate("MainWindow", u"Dokument hinzuf\u00fcgen", None)) + self.btn_open_document.setText(QCoreApplication.translate("MainWindow", u"Dokument \u00f6ffnen", None)) +#if QT_CONFIG(tooltip) + self.check_file.setToolTip(QCoreApplication.translate("MainWindow", u"Abh\u00e4ngig von der Anzahl der Medien kann die Suche sehr lange dauern", None)) +#endif // QT_CONFIG(tooltip) + self.check_file.setText(QCoreApplication.translate("MainWindow", u"Medien aus Dokument\n" +" hinzuf\u00fcgen", None)) +#if QT_CONFIG(tooltip) + self.btn_extract_data_from_document.setToolTip(QCoreApplication.translate("MainWindow", u"Die Apparatsdetails werden aus dem Dokument gelesen und eingetragen\n" +"Einige Angaben m\u00fcssen ggf angepasst werden", None)) +#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)) + 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)) + self.label_21.setText(QCoreApplication.translate("MainWindow", u"Aktion:", None)) + self.select_action_box.setItemText(0, QCoreApplication.translate("MainWindow", u"Nutzer anlegen", None)) + self.select_action_box.setItemText(1, QCoreApplication.translate("MainWindow", u"Nutzer bearbeiten", None)) + self.select_action_box.setItemText(2, QCoreApplication.translate("MainWindow", u"Lehrperson bearbeiten", None)) + + self.admin_action.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox", None)) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.admin), QCoreApplication.translate("MainWindow", u"Admin", None)) + self.groupBox_2.setTitle(QCoreApplication.translate("MainWindow", u"Software", None)) + self.appdata_check.setText(QCoreApplication.translate("MainWindow", u"Apparatsdaten eingegeben", None)) + self.media_check.setText(QCoreApplication.translate("MainWindow", u"Medien hinzugef\u00fcgt / importiert", None)) + self.ids_check.setText(QCoreApplication.translate("MainWindow", u"Prof-ID und Apparat-ID eingetragen", None)) + self.groupBox.setTitle(QCoreApplication.translate("MainWindow", u"aDIS", None)) + self.media_checked.setText(QCoreApplication.translate("MainWindow", u"Medien gepr\u00fcft", None)) + self.media_edited_check.setText(QCoreApplication.translate("MainWindow", u"Medien bearbeitet", None)) + self.app_created.setText(QCoreApplication.translate("MainWindow", u"Apparat angelegt", None)) +#if QT_CONFIG(tooltip) + self.btn_copy_adis_command.setToolTip(QCoreApplication.translate("MainWindow", u"Hier klicken, um die aDIS Abfrage in die Zwischenablage zu kopieren", None)) +#endif // QT_CONFIG(tooltip) +#if QT_CONFIG(statustip) + self.btn_copy_adis_command.setStatusTip("") +#endif // QT_CONFIG(statustip) +#if QT_CONFIG(whatsthis) + self.btn_copy_adis_command.setWhatsThis("") +#endif // QT_CONFIG(whatsthis) +#if QT_CONFIG(accessibility) + self.btn_copy_adis_command.setAccessibleDescription("") +#endif // QT_CONFIG(accessibility) + self.btn_copy_adis_command.setText(QCoreApplication.translate("MainWindow", u" aDIS Abfrage in Zwischenablage kopieren", None)) + self.menuDatei.setTitle(QCoreApplication.translate("MainWindow", u"Datei", None)) + self.menuEinstellungen.setTitle(QCoreApplication.translate("MainWindow", u"Bearbeiten", None)) + self.menuHelp.setTitle(QCoreApplication.translate("MainWindow", u"Help", None)) + # retranslateUi + diff --git a/src/ui/userInterface.py b/src/ui/userInterface.py index 81015d4..f36dfa8 100644 --- a/src/ui/userInterface.py +++ b/src/ui/userInterface.py @@ -12,7 +12,7 @@ from typing import Any, Union import loguru from natsort import natsorted from PySide6 import QtCore, QtGui, QtWidgets -from PySide6.QtCore import QThread +from PySide6.QtCore import QThread, Qt from PySide6.QtGui import QRegularExpressionValidator from src import LOG_DIR, Icon @@ -23,7 +23,6 @@ from src.backend.semester import Semester from src.logic import ( APP_NRS, Apparat, - # PROF_TITLES, ApparatData, BookData, Prof, @@ -118,7 +117,7 @@ class Ui(Ui_Semesterapparat): # Actions self.actionEinstellungen.triggered.connect(self.open_settings) # type:ignore Icon("settings", self.actionEinstellungen) - self.actionDokumentation_lokal.triggered.connect(self.open_documentation) # type:ignore + self.documentation_open = False Icon("offAction", self.actionBeenden) self.actionBeenden.triggered.connect(self.quit) # type:ignore self.actionAbout.triggered.connect(self.open_about) # type:ignore @@ -204,7 +203,7 @@ class Ui(Ui_Semesterapparat): self.add_medium.setEnabled(False) self.docu = DocumentationThread() - self.actionDokumentation_lokal.triggered.connect(self.open_documentation) # type:ignore + self.actionDokumentation.triggered.connect(self.open_documentation) # type:ignore # get all current apparats and cache them in a list self.apparats = self.get_apparats() @@ -329,10 +328,16 @@ class Ui(Ui_Semesterapparat): def open_documentation(self): log.info("Opening Documentation") - if not self.docu.isRunning(): + self.statusBar.showMessage("Dokumentation wird geöffnet", 5000) + + if not self.documentation_open: + # write "opening documentation in 5s into status bar" + self.documentation_open = True self.docu.start() - time.sleep(5) + time.sleep(5) + webbrowser.open("http://localhost:8000") + self.statusBar.showMessage("") def update_calendar(self, data: list[dict[str, Any]]): self.calendarWidget.setMessages([data]) @@ -1832,8 +1837,14 @@ def launch_gui(): # #log.debug(aui.active_user) MainWindow.show() # atexit.register() + app.aboutToQuit.connect( + aui.validate_thread.quit + ) # if that thread uses an event loop + app.aboutToQuit.connect(aui.docu.terminate) # our new slot + app.aboutToQuit.connect(aui.docu.wait) atexit.register(tempdelete) - atexit.register(aui.validate_thread.quit) + # atexit.register(aui.validate_thread.quit) + # atexit.register(aui.docu.quit) sys.exit(app.exec()) elif ui.lresult == 0: diff --git a/src/utils/documentation.py b/src/utils/documentation.py index fa70640..1dc00c5 100644 --- a/src/utils/documentation.py +++ b/src/utils/documentation.py @@ -1,10 +1,18 @@ import os import sys from pyramid.config import Configurator -from wsgiref.simple_server import make_server +from wsgiref.simple_server import make_server, WSGIRequestHandler docport = 8000 +class QuietHandler(WSGIRequestHandler): + # suppress “GET /…” access log + def log_request(self, code="-", size="-"): + pass + + # suppress all other messages (errors, etc.) + def log_message(self, fmt, *args): + pass def website(): config = Configurator() @@ -20,7 +28,7 @@ def website(): def launch_documentation(): app = website() - server = make_server("localhost", docport, app) + server = make_server("localhost", docport, app, handler_class=QuietHandler) print("Serving MkDocs documentation on http://0.0.0.0:{}".format(docport)) server.serve_forever()