diff --git a/res/mainwindow.ui b/res/mainwindow.ui
index b5b86d2..2c93ed2 100644
--- a/res/mainwindow.ui
+++ b/res/mainwindow.ui
@@ -54,27 +54,35 @@
Ansicht
-
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -93,26 +101,26 @@
- toolBar
+ toolBar
-
- TopToolBarArea
-
-
- false
-
-
+
+ TopToolBarArea
+
+
+ false
+
+
-
-
- Neue Kategorie erstellen
-
-
-
-
- Ansicht zurücksetzen
-
-
+
+
+ Neue Kategorie erstellen
+
+
+
+
+ Ansicht zurücksetzen
+
+
Regeltest löschen
@@ -153,6 +161,19 @@
Aus dem Internet
+
+
+ Regeltest-Archiv
+
+
+
+
+ false
+
+
+ Designs verwalten
+
+
diff --git a/res/regeltest_archive.ui b/res/regeltest_archive.ui
new file mode 100644
index 0000000..60bf161
--- /dev/null
+++ b/res/regeltest_archive.ui
@@ -0,0 +1,163 @@
+
+
+ RegeltestArchiveDialog
+
+
+
+ 0
+ 0
+ 639
+ 360
+
+
+
+ Regeltest-Archiv
+
+
+ -
+
+
+ QAbstractItemView::NoEditTriggers
+
+
+ QAbstractItemView::SingleSelection
+
+
+ QAbstractItemView::SelectRows
+
+
+ false
+
+
+ true
+
+
+ true
+
+
+ false
+
+
+ false
+
+
+
+
+
+
+
+
+ Nr.
+
+
+
+
+ Titel
+
+
+
+
+ Anzahl Fragen
+
+
+
+
+ Maximale Punktzahl
+
+
+
+
+ Datum
+
+
+ -
+
+ 1
+
+
+ -
+
+ A / KK Regeltest
+
+
+ -
+
+ 15
+
+
+ -
+
+ 30
+
+
+
+
+ -
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ Laden
+
+
+
+ -
+
+
+ Abbrechen
+
+
+
+
+
+
+
+
+
+
+ load_button
+ clicked()
+ RegeltestArchiveDialog
+ accept()
+
+
+ 380
+ 337
+
+
+ 254
+ 179
+
+
+
+
+ cancel_button
+ clicked()
+ RegeltestArchiveDialog
+ reject()
+
+
+ 461
+ 337
+
+
+ 254
+ 179
+
+
+
+
+
diff --git a/res/regeltest_save.ui b/res/regeltest_save.ui
index 1e1c768..c299d91 100644
--- a/res/regeltest_save.ui
+++ b/res/regeltest_save.ui
@@ -17,172 +17,211 @@
Save Regeltest
- -
-
-
- Qt::StrongFocus
-
-
-
-
-
-
-
-
-
- -
-
-
- Titel
-
-
-
-
-
-
-
- -
-
-
- Auswählen
-
-
+
+ -
+
+
+ Auswählen
+
+
+
- -
-
-
- Qt::Horizontal
-
-
- QDialogButtonBox::Cancel|QDialogButtonBox::Ok
-
-
-
- -
-
-
- Speicherort
-
-
-
- -
-
-
- true
-
-
-
-
- 0
- 0
- 740
- 142
-
-
-
-
-
- -
-
-
- Iconpfad
-
-
-
- -
-
-
-
-
-
- Alle Multiple-Choice aktivieren
-
-
-
- -
-
-
- Alle Multiple-Choice deaktivieren
-
-
-
-
-
- -
-
-
- pt
-
-
- 9
-
-
- 15
-
-
- 11
-
-
-
- -
-
-
-
-
-
+
-
+
+
-
+
+
+ Alle Multiple-Choice aktivieren
+
+
+
+ -
+
+
+ Alle Multiple-Choice deaktivieren
+
+
+
+
- -
-
-
- Auswählen
-
-
+
-
+
+
+ Iconpfad
+
+
+
+ -
+
+
+ Speicherort PDF
+
+
+
+ -
+
+
+ Titel
+
+
+
+ -
+
+
+ Qt::StrongFocus
+
+
+
-
+
+
+
+
+
+ -
+
+
+ true
+
+
+
+
+ 0
+ 0
+ 740
+ 96
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QDialogButtonBox::Cancel|QDialogButtonBox::Ok
+
+
+
+ -
+
+
+
-
+
+
+ -
+
+
+ Auswählen
+
+
+
+
+
+
+ -
+
+
+ Schriftgröße
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+ -
+
+
+ Speicherort CSV
+
+
+
+ -
+
+
+
-
+
+
+ -
+
+
+ Auswählen
+
+
+
+
+
+
+ -
+
+
+
-
+
+
+ pt
+
+
+ 9
+
+
+ 15
+
+
+ 11
+
+
+
+
+
+
+ -
+
+
+ Regeltest zusätzlich im Archiv speichern?
+
+
+ true
+
+
-
-
-
- -
-
-
- Schriftgröße
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
-
-
- title_edit
- icon_path_edit
- icon_edit_button
- output_edit
- output_edit_button
- widget_3
-
-
-
-
- buttonBox
- accepted()
- RegeltestSave
- accept()
-
-
- 248
+
+ title_edit
+ icon_path_edit
+ icon_edit_button
+ pdf_edit
+ pdf_edit_button
+ widget_3
+
+
+
+
+ buttonBox
+ accepted()
+ RegeltestSave
+ accept()
+
+
+ 248
254
diff --git a/src/database.py b/src/database.py
index 0d49111..eea32bc 100644
--- a/src/database.py
+++ b/src/database.py
@@ -13,7 +13,7 @@
from sqlalchemy.orm import Session, Query
from src.basic_config import database_name, Base, is_bundled, app_dirs
-from src.datatypes import QuestionGroup, Question, MultipleChoice
+from src.datatypes import QuestionGroup, Question, MultipleChoice, Regeltest
database_path = os.path.join(app_dirs.user_data_dir, database_name)
@@ -175,6 +175,9 @@ def get_question_group_config(self) -> List[Tuple[QuestionGroup, int, int]]:
question_group in
question_groups]
+ def get_regeltests(self) -> List[Regeltest]:
+ return self.session.query(Regeltest).all()
+
try:
db = DatabaseConnector(database_path)
diff --git a/src/dock_widgets.py b/src/dock_widgets.py
index 27879f7..f29a28e 100644
--- a/src/dock_widgets.py
+++ b/src/dock_widgets.py
@@ -1,5 +1,6 @@
from __future__ import annotations
+import csv
import webbrowser
from typing import TYPE_CHECKING
@@ -55,7 +56,9 @@ def create_regeltest(self):
settings = RegeltestSaveDialog(questions, self)
settings.ui.title_edit.setFocus()
result = settings.exec()
- output_path = settings.ui.output_edit.text()
+ pdf_path = settings.ui.pdf_edit.text()
+ csv_path = settings.ui.csv_edit.text()
+ archive_regeltest = settings.ui.regeltest_archive_checkBox.isChecked()
if result == QDialog.Accepted:
selected_questions = settings.get_questions()
QApplication.setOverrideCursor(Qt.WaitCursor)
@@ -65,13 +68,25 @@ def create_regeltest(self):
else:
icon = None
icon_db = None
- regeltest = Regeltest(title=settings.ui.title_edit.text(), icon=icon_db,
- selected_questions=selected_questions)
- db.add_object(regeltest)
- document_builder.create_document(selected_questions, output_path, settings.ui.title_edit.text(),
- icon=icon, font_size=settings.ui.fontsize_spinBox.value())
+ if (pdf_path or csv_path) and archive_regeltest:
+ regeltest = Regeltest(title=settings.ui.title_edit.text(), icon=icon_db,
+ selected_questions=selected_questions)
+ db.add_object(regeltest)
+ if pdf_path:
+ document_builder.create_document(selected_questions, pdf_path, settings.ui.title_edit.text(),
+ icon=icon, font_size=settings.ui.fontsize_spinBox.value())
+ webbrowser.open_new(pdf_path)
+
+ if csv_path:
+ with open(csv_path, 'w+', newline='', encoding='utf-8') as file:
+ # create the csv writer
+ writer = csv.writer(file)
+
+ for question in selected_questions:
+ # write a row to the csv file
+ writer.writerow([question.question.question.replace("\n", "\\n"),
+ question.question.answer_text.replace("\n", "\\n")])
QApplication.restoreOverrideCursor()
- webbrowser.open_new(output_path)
class SelfTestDockWidget(QWidget, Ui_self_test_dockwidget):
diff --git a/src/main_application.py b/src/main_application.py
index 0030bcf..877e055 100644
--- a/src/main_application.py
+++ b/src/main_application.py
@@ -13,6 +13,7 @@
from src.datatypes import create_question_groups, create_questions_and_mchoice, QuestionGroup, Question, MultipleChoice
from src.dock_widgets import RegeltestCreatorDockwidget, SelfTestDockWidget
from src.main_widgets import FirstSetupWidget, QuestionOverviewWidget, SelfTestWidget
+from src.regeltest_management import PreviousRegeltests
from src.ui_mainwindow import Ui_MainWindow
from src.updater import UpdateChecker
@@ -182,6 +183,8 @@ def __init__(self, parent=None):
self.ui.actionRegeldatensatz_exportieren.triggered.connect(lambda: save_dataset(self))
self.ui.actionNeue_Kategorie_erstellen.triggered.connect(self.add_question_group)
+ self.ui.actionBisherige_Regeltests.triggered.connect(self.previous_regeltests)
+
def show(self) -> None:
super(MainWindow, self).show()
if not is_bundled:
@@ -247,3 +250,10 @@ def set_mode(self, mode: ApplicationMode, reset=False):
self.ui.actionSelftest.triggered.connect(lambda: self.set_mode(ApplicationMode.question_overview))
self.ui.main_window_dockwidget.setWindowTitle("Selbsttest-Einstellungen")
self.ui.main_window_dockwidget.show()
+
+ def previous_regeltests(self):
+ dialog = PreviousRegeltests(self)
+ result = dialog.exec()
+ if result == QDialog.Accepted:
+ for question in dialog.get_selected_questions():
+ self.question_overview_dock.ui.regeltest_list.add_question(question)
diff --git a/src/regeltest_management.py b/src/regeltest_management.py
new file mode 100644
index 0000000..ef32443
--- /dev/null
+++ b/src/regeltest_management.py
@@ -0,0 +1,79 @@
+from PySide6.QtWidgets import QDialog, QTableWidgetItem, QHBoxLayout, QTableWidget, QAbstractItemView
+
+from src.database import db
+from src.datatypes import RegeltestQuestion
+from src.ui_regeltest_archive import Ui_RegeltestArchiveDialog
+
+
+class PreviousRegeltests(QDialog, Ui_RegeltestArchiveDialog):
+ def __init__(self, parent):
+ super().__init__(parent=parent)
+ self.ui = Ui_RegeltestArchiveDialog()
+ self.ui.setupUi(self)
+
+ self.ui.regeltestTable.removeRow(0)
+ self.ui.regeltestTable.setSortingEnabled(False)
+
+ self.ui.regeltestTable.itemDoubleClicked.connect(self.preview)
+
+ self.regeltests = db.get_regeltests()
+ for index, regeltest in enumerate(self.regeltests):
+ self.ui.regeltestTable.insertRow(index)
+ self.ui.regeltestTable.setItem(index, 0, QTableWidgetItem(str(regeltest.id)))
+ self.ui.regeltestTable.setItem(index, 1, QTableWidgetItem(str(regeltest.title)))
+ self.ui.regeltestTable.setItem(index, 2, QTableWidgetItem(str(len(regeltest.selected_questions))))
+ self.ui.regeltestTable.setItem(index, 3, QTableWidgetItem(
+ str(sum([x.available_points for x in regeltest.selected_questions]))))
+ self.ui.regeltestTable.setItem(index, 4, QTableWidgetItem(regeltest.created.strftime("%d.%m.%Y (%H:%M)")))
+
+ def preview(self, item: QTableWidgetItem):
+ preview_dialog = QDialog(self)
+ preview_dialog.setWindowTitle("Fragenübersicht")
+ preview_dialog.resize(500, 600)
+
+ layout = QHBoxLayout(preview_dialog)
+ preview_dialog.setLayout(layout)
+ tableWidget = QTableWidget(0, 5, preview_dialog)
+
+ tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers)
+ tableWidget.setSelectionMode(QAbstractItemView.SingleSelection)
+ tableWidget.setSelectionBehavior(QAbstractItemView.SelectRows)
+ tableWidget.horizontalHeader().setCascadingSectionResizes(False)
+ tableWidget.horizontalHeader().setProperty("showSortIndicator", False)
+ tableWidget.horizontalHeader().setStretchLastSection(True)
+ tableWidget.verticalHeader().setVisible(False)
+ tableWidget.verticalHeader().setStretchLastSection(False)
+
+ tableWidget.setHorizontalHeaderItem(0, QTableWidgetItem("Nr"))
+ tableWidget.setHorizontalHeaderItem(1, QTableWidgetItem("Frage"))
+ tableWidget.setHorizontalHeaderItem(2, QTableWidgetItem("Antwort"))
+ tableWidget.setHorizontalHeaderItem(3, QTableWidgetItem("Multiple Choice?"))
+ tableWidget.setHorizontalHeaderItem(4, QTableWidgetItem("Mögliche Punkte"))
+ regeltest = self.regeltests[item.row()]
+
+ for index, question in enumerate(regeltest.selected_questions):
+ question = question # type: RegeltestQuestion
+ tableWidget.insertRow(index)
+
+ questionWidget = QTableWidgetItem(question.question.question)
+ questionWidget.setToolTip(question.question.question)
+ answerWidget = QTableWidgetItem(question.question.answer_text)
+ answerWidget.setToolTip(question.question.answer_text)
+
+ tableWidget.setItem(index, 0, QTableWidgetItem(str(index + 1)))
+ tableWidget.setItem(index, 1, questionWidget)
+ tableWidget.setItem(index, 2, answerWidget)
+ tableWidget.setItem(index, 3, QTableWidgetItem("Ja" if question.is_multiple_choice else "Nein"))
+ tableWidget.setItem(index, 4, QTableWidgetItem(str(question.available_points)))
+
+ layout.addWidget(tableWidget)
+
+ preview_dialog.show()
+
+ def get_selected_questions(self):
+ items = self.ui.regeltestTable.selectedItems()
+ if not items:
+ return []
+ else:
+ regeltest = self.regeltests[items[0].row()]
+ return [question.question for question in regeltest.selected_questions]
diff --git a/src/regeltestcreator.py b/src/regeltestcreator.py
index 881a0d0..ed546aa 100644
--- a/src/regeltestcreator.py
+++ b/src/regeltestcreator.py
@@ -114,7 +114,8 @@ def __init__(self, questions: List[Question], parent):
self.ui = Ui_RegeltestSave()
self.ui.setupUi(self)
self.ui.icon_edit_button.clicked.connect(self.open_icon)
- self.ui.output_edit_button.clicked.connect(self.create_save)
+ self.ui.pdf_edit_button.clicked.connect(self.create_pdf_save)
+ self.ui.csv_edit_button.clicked.connect(self.create_csv_save)
self.questions = questions
self.question_widgets: List[QuestionEditWidget] = []
@@ -140,11 +141,18 @@ def open_icon(self):
return
self.ui.icon_path_edit.setText(file_name[0])
- def create_save(self):
+ def create_pdf_save(self):
file_name = QFileDialog.getSaveFileName(self, caption="Regeltest speichern", filter="Regeltest (*.pdf)")
if len(file_name) == 0 or file_name[0] == "":
return
- self.ui.output_edit.setText(file_name[0])
+ self.ui.pdf_edit.setText(file_name[0])
+
+ def create_csv_save(self):
+ file_name = QFileDialog.getSaveFileName(self, caption="Powerpoint-Regeltest-Vorlage speichern",
+ filter="Regeltest-Vorlage (*.csv)")
+ if len(file_name) == 0 or file_name[0] == "":
+ return
+ self.ui.csv_edit.setText(file_name[0])
def get_questions(self) -> List[RegeltestQuestion]:
return [widget.get_question() for widget in self.question_widgets]
diff --git a/src/ui_mainwindow.py b/src/ui_mainwindow.py
index cb89b5d..f2379ec 100644
--- a/src/ui_mainwindow.py
+++ b/src/ui_mainwindow.py
@@ -41,6 +41,11 @@ def setupUi(self, MainWindow):
self.actionAus_einer_Datei.setObjectName(u"actionAus_einer_Datei")
self.actionAus_dem_Internet = QAction(MainWindow)
self.actionAus_dem_Internet.setObjectName(u"actionAus_dem_Internet")
+ self.actionBisherige_Regeltests = QAction(MainWindow)
+ self.actionBisherige_Regeltests.setObjectName(u"actionBisherige_Regeltests")
+ self.actionDesign_erstellen = QAction(MainWindow)
+ self.actionDesign_erstellen.setObjectName(u"actionDesign_erstellen")
+ self.actionDesign_erstellen.setEnabled(False)
self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName(u"centralwidget")
self.centralwidget.setEnabled(True)
@@ -65,6 +70,8 @@ def setupUi(self, MainWindow):
self.menuBearbeiten.setObjectName(u"menuBearbeiten")
self.menu_ber = QMenu(self.menubar)
self.menu_ber.setObjectName(u"menu_ber")
+ self.menuRegeltest = QMenu(self.menubar)
+ self.menuRegeltest.setObjectName(u"menuRegeltest")
MainWindow.setMenuBar(self.menubar)
self.main_window_dockwidget = QDockWidget(MainWindow)
self.main_window_dockwidget.setObjectName(u"main_window_dockwidget")
@@ -85,6 +92,7 @@ def setupUi(self, MainWindow):
self.menubar.addAction(self.menuDatei.menuAction())
self.menubar.addAction(self.menuBearbeiten.menuAction())
+ self.menubar.addAction(self.menuRegeltest.menuAction())
self.menubar.addAction(self.menuAnsicht.menuAction())
self.menubar.addAction(self.menu_ber.menuAction())
self.menuDatei.addAction(self.menuRegeldatensatz_importieren.menuAction())
@@ -97,13 +105,14 @@ def setupUi(self, MainWindow):
self.menuBearbeiten.addAction(self.actionRegeltest_l_schen)
self.menu_ber.addAction(self.actionAuf_Updates_pr_fen)
self.menu_ber.addAction(self.action_ber)
+ self.menuRegeltest.addAction(self.actionBisherige_Regeltests)
+ self.menuRegeltest.addAction(self.actionDesign_erstellen)
self.toolBar.addAction(self.actionSelftest)
self.retranslateUi(MainWindow)
self.stackedWidget.setCurrentIndex(-1)
-
QMetaObject.connectSlotsByName(MainWindow)
# setupUi
@@ -123,12 +132,15 @@ def retranslateUi(self, MainWindow):
self.actionSelftest.setText(QCoreApplication.translate("MainWindow", u"Selbsttest", None))
self.actionAus_einer_Datei.setText(QCoreApplication.translate("MainWindow", u"Aus einer Datei", None))
self.actionAus_dem_Internet.setText(QCoreApplication.translate("MainWindow", u"Aus dem Internet", None))
+ self.actionBisherige_Regeltests.setText(QCoreApplication.translate("MainWindow", u"Regeltest-Archiv", None))
+ self.actionDesign_erstellen.setText(QCoreApplication.translate("MainWindow", u"Designs verwalten", None))
self.menuDatei.setTitle(QCoreApplication.translate("MainWindow", u"Datei", None))
self.menuRegeldatensatz_importieren.setTitle(
QCoreApplication.translate("MainWindow", u"Regeldatensatz importieren", None))
self.menuAnsicht.setTitle(QCoreApplication.translate("MainWindow", u"Ansicht", None))
self.menuBearbeiten.setTitle(QCoreApplication.translate("MainWindow", u"Bearbeiten", None))
self.menu_ber.setTitle(QCoreApplication.translate("MainWindow", u"Hilfe", None))
+ self.menuRegeltest.setTitle(QCoreApplication.translate("MainWindow", u"Regeltest", None))
self.main_window_dockwidget.setWindowTitle("")
self.toolBar.setWindowTitle(QCoreApplication.translate("MainWindow", u"toolBar", None))
# retranslateUi
diff --git a/src/ui_regeltest_archive.py b/src/ui_regeltest_archive.py
new file mode 100644
index 0000000..007b485
--- /dev/null
+++ b/src/ui_regeltest_archive.py
@@ -0,0 +1,115 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'regeltest_archive.ui'
+##
+## Created by: Qt User Interface Compiler version 6.3.1
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QMetaObject)
+from PySide6.QtWidgets import (QAbstractItemView, QHBoxLayout,
+ QPushButton, QSizePolicy, QSpacerItem,
+ QTableWidget, QTableWidgetItem, QVBoxLayout)
+
+
+class Ui_RegeltestArchiveDialog(object):
+ def setupUi(self, RegeltestArchiveDialog):
+ if not RegeltestArchiveDialog.objectName():
+ RegeltestArchiveDialog.setObjectName(u"RegeltestArchiveDialog")
+ RegeltestArchiveDialog.resize(639, 360)
+ self.verticalLayout = QVBoxLayout(RegeltestArchiveDialog)
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.regeltestTable = QTableWidget(RegeltestArchiveDialog)
+ if (self.regeltestTable.columnCount() < 5):
+ self.regeltestTable.setColumnCount(5)
+ __qtablewidgetitem = QTableWidgetItem()
+ self.regeltestTable.setHorizontalHeaderItem(0, __qtablewidgetitem)
+ __qtablewidgetitem1 = QTableWidgetItem()
+ self.regeltestTable.setHorizontalHeaderItem(1, __qtablewidgetitem1)
+ __qtablewidgetitem2 = QTableWidgetItem()
+ self.regeltestTable.setHorizontalHeaderItem(2, __qtablewidgetitem2)
+ __qtablewidgetitem3 = QTableWidgetItem()
+ self.regeltestTable.setHorizontalHeaderItem(3, __qtablewidgetitem3)
+ __qtablewidgetitem4 = QTableWidgetItem()
+ self.regeltestTable.setHorizontalHeaderItem(4, __qtablewidgetitem4)
+ if (self.regeltestTable.rowCount() < 1):
+ self.regeltestTable.setRowCount(1)
+ __qtablewidgetitem5 = QTableWidgetItem()
+ self.regeltestTable.setVerticalHeaderItem(0, __qtablewidgetitem5)
+ __qtablewidgetitem6 = QTableWidgetItem()
+ self.regeltestTable.setItem(0, 0, __qtablewidgetitem6)
+ __qtablewidgetitem7 = QTableWidgetItem()
+ self.regeltestTable.setItem(0, 1, __qtablewidgetitem7)
+ __qtablewidgetitem8 = QTableWidgetItem()
+ self.regeltestTable.setItem(0, 2, __qtablewidgetitem8)
+ __qtablewidgetitem9 = QTableWidgetItem()
+ self.regeltestTable.setItem(0, 3, __qtablewidgetitem9)
+ self.regeltestTable.setObjectName(u"regeltestTable")
+ self.regeltestTable.setEditTriggers(QAbstractItemView.NoEditTriggers)
+ self.regeltestTable.setSelectionMode(QAbstractItemView.SingleSelection)
+ self.regeltestTable.setSelectionBehavior(QAbstractItemView.SelectRows)
+ self.regeltestTable.horizontalHeader().setCascadingSectionResizes(False)
+ self.regeltestTable.horizontalHeader().setProperty("showSortIndicator", True)
+ self.regeltestTable.horizontalHeader().setStretchLastSection(True)
+ self.regeltestTable.verticalHeader().setVisible(False)
+ self.regeltestTable.verticalHeader().setStretchLastSection(False)
+
+ self.verticalLayout.addWidget(self.regeltestTable)
+
+ self.horizontalLayout = QHBoxLayout()
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
+ self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+
+ self.horizontalLayout.addItem(self.horizontalSpacer)
+
+ self.load_button = QPushButton(RegeltestArchiveDialog)
+ self.load_button.setObjectName(u"load_button")
+
+ self.horizontalLayout.addWidget(self.load_button)
+
+ self.cancel_button = QPushButton(RegeltestArchiveDialog)
+ self.cancel_button.setObjectName(u"cancel_button")
+
+ self.horizontalLayout.addWidget(self.cancel_button)
+
+ self.verticalLayout.addLayout(self.horizontalLayout)
+
+ self.retranslateUi(RegeltestArchiveDialog)
+ self.load_button.clicked.connect(RegeltestArchiveDialog.accept)
+ self.cancel_button.clicked.connect(RegeltestArchiveDialog.reject)
+
+ QMetaObject.connectSlotsByName(RegeltestArchiveDialog)
+
+ # setupUi
+
+ def retranslateUi(self, RegeltestArchiveDialog):
+ RegeltestArchiveDialog.setWindowTitle(
+ QCoreApplication.translate("RegeltestArchiveDialog", u"Regeltest-Archiv", None))
+ ___qtablewidgetitem = self.regeltestTable.horizontalHeaderItem(0)
+ ___qtablewidgetitem.setText(QCoreApplication.translate("RegeltestArchiveDialog", u"Nr.", None));
+ ___qtablewidgetitem1 = self.regeltestTable.horizontalHeaderItem(1)
+ ___qtablewidgetitem1.setText(QCoreApplication.translate("RegeltestArchiveDialog", u"Titel", None));
+ ___qtablewidgetitem2 = self.regeltestTable.horizontalHeaderItem(2)
+ ___qtablewidgetitem2.setText(QCoreApplication.translate("RegeltestArchiveDialog", u"Anzahl Fragen", None));
+ ___qtablewidgetitem3 = self.regeltestTable.horizontalHeaderItem(3)
+ ___qtablewidgetitem3.setText(QCoreApplication.translate("RegeltestArchiveDialog", u"Maximale Punktzahl", None));
+ ___qtablewidgetitem4 = self.regeltestTable.horizontalHeaderItem(4)
+ ___qtablewidgetitem4.setText(QCoreApplication.translate("RegeltestArchiveDialog", u"Datum", None));
+
+ __sortingEnabled = self.regeltestTable.isSortingEnabled()
+ self.regeltestTable.setSortingEnabled(False)
+ ___qtablewidgetitem5 = self.regeltestTable.item(0, 0)
+ ___qtablewidgetitem5.setText(QCoreApplication.translate("RegeltestArchiveDialog", u"1", None));
+ ___qtablewidgetitem6 = self.regeltestTable.item(0, 1)
+ ___qtablewidgetitem6.setText(QCoreApplication.translate("RegeltestArchiveDialog", u"A / KK Regeltest", None));
+ ___qtablewidgetitem7 = self.regeltestTable.item(0, 2)
+ ___qtablewidgetitem7.setText(QCoreApplication.translate("RegeltestArchiveDialog", u"15", None));
+ ___qtablewidgetitem8 = self.regeltestTable.item(0, 3)
+ ___qtablewidgetitem8.setText(QCoreApplication.translate("RegeltestArchiveDialog", u"30", None));
+ self.regeltestTable.setSortingEnabled(__sortingEnabled)
+
+ self.load_button.setText(QCoreApplication.translate("RegeltestArchiveDialog", u"Laden", None))
+ self.cancel_button.setText(QCoreApplication.translate("RegeltestArchiveDialog", u"Abbrechen", None))
+ # retranslateUi
diff --git a/src/ui_regeltest_save.py b/src/ui_regeltest_save.py
index ca7bea4..295664f 100644
--- a/src/ui_regeltest_save.py
+++ b/src/ui_regeltest_save.py
@@ -10,10 +10,9 @@
from PySide6.QtCore import (QCoreApplication, QMetaObject, QRect,
Qt)
-from PySide6.QtWidgets import (QDialogButtonBox,
- QGridLayout, QHBoxLayout, QLabel, QLineEdit,
- QPushButton, QScrollArea, QSizePolicy, QSpacerItem,
- QSpinBox, QWidget)
+from PySide6.QtWidgets import (QCheckBox, QDialogButtonBox, QGridLayout, QHBoxLayout, QLabel,
+ QLineEdit, QPushButton, QScrollArea, QSizePolicy,
+ QSpacerItem, QSpinBox, QWidget)
class Ui_RegeltestSave(object):
@@ -24,87 +23,80 @@ def setupUi(self, RegeltestSave):
RegeltestSave.setFocusPolicy(Qt.NoFocus)
self.gridLayout = QGridLayout(RegeltestSave)
self.gridLayout.setObjectName(u"gridLayout")
- self.widget_3 = QWidget(RegeltestSave)
- self.widget_3.setObjectName(u"widget_3")
- self.widget_3.setFocusPolicy(Qt.StrongFocus)
- self.horizontalLayout_3 = QHBoxLayout(self.widget_3)
- self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
- self.title_edit = QLineEdit(self.widget_3)
- self.title_edit.setObjectName(u"title_edit")
-
- self.horizontalLayout_3.addWidget(self.title_edit)
-
- self.gridLayout.addWidget(self.widget_3, 0, 2, 1, 1)
-
- self.label = QLabel(RegeltestSave)
- self.label.setObjectName(u"label")
-
- self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
-
self.widget_2 = QWidget(RegeltestSave)
self.widget_2.setObjectName(u"widget_2")
self.horizontalLayout_2 = QHBoxLayout(self.widget_2)
self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
- self.output_edit = QLineEdit(self.widget_2)
- self.output_edit.setObjectName(u"output_edit")
+ self.pdf_edit = QLineEdit(self.widget_2)
+ self.pdf_edit.setObjectName(u"pdf_edit")
- self.horizontalLayout_2.addWidget(self.output_edit)
+ self.horizontalLayout_2.addWidget(self.pdf_edit)
- self.output_edit_button = QPushButton(self.widget_2)
- self.output_edit_button.setObjectName(u"output_edit_button")
+ self.pdf_edit_button = QPushButton(self.widget_2)
+ self.pdf_edit_button.setObjectName(u"pdf_edit_button")
- self.horizontalLayout_2.addWidget(self.output_edit_button)
+ self.horizontalLayout_2.addWidget(self.pdf_edit_button)
self.gridLayout.addWidget(self.widget_2, 3, 2, 1, 1)
- self.buttonBox = QDialogButtonBox(RegeltestSave)
- self.buttonBox.setObjectName(u"buttonBox")
- self.buttonBox.setOrientation(Qt.Horizontal)
- self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok)
-
- self.gridLayout.addWidget(self.buttonBox, 9, 0, 1, 3)
+ self.horizontalLayout_4 = QHBoxLayout()
+ self.horizontalLayout_4.setObjectName(u"horizontalLayout_4")
+ self.activate_mc_button = QPushButton(RegeltestSave)
+ self.activate_mc_button.setObjectName(u"activate_mc_button")
- self.label_3 = QLabel(RegeltestSave)
- self.label_3.setObjectName(u"label_3")
+ self.horizontalLayout_4.addWidget(self.activate_mc_button)
- self.gridLayout.addWidget(self.label_3, 3, 0, 1, 1)
+ self.deactivate_mc_button = QPushButton(RegeltestSave)
+ self.deactivate_mc_button.setObjectName(u"deactivate_mc_button")
- self.scrollArea = QScrollArea(RegeltestSave)
- self.scrollArea.setObjectName(u"scrollArea")
- self.scrollArea.setWidgetResizable(True)
- self.question_scrollable = QWidget()
- self.question_scrollable.setObjectName(u"question_scrollable")
- self.question_scrollable.setGeometry(QRect(0, 0, 740, 142))
- self.scrollArea.setWidget(self.question_scrollable)
+ self.horizontalLayout_4.addWidget(self.deactivate_mc_button)
- self.gridLayout.addWidget(self.scrollArea, 8, 0, 1, 3)
+ self.gridLayout.addLayout(self.horizontalLayout_4, 9, 0, 1, 3)
self.label_2 = QLabel(RegeltestSave)
self.label_2.setObjectName(u"label_2")
self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
- self.horizontalLayout_4 = QHBoxLayout()
- self.horizontalLayout_4.setObjectName(u"horizontalLayout_4")
- self.activate_mc_button = QPushButton(RegeltestSave)
- self.activate_mc_button.setObjectName(u"activate_mc_button")
+ self.label_3 = QLabel(RegeltestSave)
+ self.label_3.setObjectName(u"label_3")
- self.horizontalLayout_4.addWidget(self.activate_mc_button)
+ self.gridLayout.addWidget(self.label_3, 3, 0, 1, 1)
- self.deactivate_mc_button = QPushButton(RegeltestSave)
- self.deactivate_mc_button.setObjectName(u"deactivate_mc_button")
+ self.label = QLabel(RegeltestSave)
+ self.label.setObjectName(u"label")
- self.horizontalLayout_4.addWidget(self.deactivate_mc_button)
+ self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
- self.gridLayout.addLayout(self.horizontalLayout_4, 6, 0, 1, 3)
+ self.widget_3 = QWidget(RegeltestSave)
+ self.widget_3.setObjectName(u"widget_3")
+ self.widget_3.setFocusPolicy(Qt.StrongFocus)
+ self.horizontalLayout_3 = QHBoxLayout(self.widget_3)
+ self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
+ self.title_edit = QLineEdit(self.widget_3)
+ self.title_edit.setObjectName(u"title_edit")
- self.fontsize_spinBox = QSpinBox(RegeltestSave)
- self.fontsize_spinBox.setObjectName(u"fontsize_spinBox")
- self.fontsize_spinBox.setMinimum(9)
- self.fontsize_spinBox.setMaximum(15)
- self.fontsize_spinBox.setValue(11)
+ self.horizontalLayout_3.addWidget(self.title_edit)
+
+
+ self.gridLayout.addWidget(self.widget_3, 0, 2, 1, 1)
+
+ self.scrollArea = QScrollArea(RegeltestSave)
+ self.scrollArea.setObjectName(u"scrollArea")
+ self.scrollArea.setWidgetResizable(True)
+ self.question_scrollable = QWidget()
+ self.question_scrollable.setObjectName(u"question_scrollable")
+ self.question_scrollable.setGeometry(QRect(0, 0, 740, 96))
+ self.scrollArea.setWidget(self.question_scrollable)
+
+ self.gridLayout.addWidget(self.scrollArea, 11, 0, 1, 3)
- self.gridLayout.addWidget(self.fontsize_spinBox, 4, 2, 1, 1)
+ self.buttonBox = QDialogButtonBox(RegeltestSave)
+ self.buttonBox.setObjectName(u"buttonBox")
+ self.buttonBox.setOrientation(Qt.Horizontal)
+ self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok)
+
+ self.gridLayout.addWidget(self.buttonBox, 12, 0, 1, 3)
self.widget = QWidget(RegeltestSave)
self.widget.setObjectName(u"widget")
@@ -125,17 +117,58 @@ def setupUi(self, RegeltestSave):
self.label_4 = QLabel(RegeltestSave)
self.label_4.setObjectName(u"label_4")
- self.gridLayout.addWidget(self.label_4, 4, 0, 1, 1)
+ self.gridLayout.addWidget(self.label_4, 7, 0, 1, 1)
self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
- self.gridLayout.addItem(self.verticalSpacer, 7, 0, 1, 1)
+ self.gridLayout.addItem(self.verticalSpacer, 10, 0, 1, 1)
+
+ self.label_5 = QLabel(RegeltestSave)
+ self.label_5.setObjectName(u"label_5")
+
+ self.gridLayout.addWidget(self.label_5, 5, 0, 1, 1)
+
+ self.widget_4 = QWidget(RegeltestSave)
+ self.widget_4.setObjectName(u"widget_4")
+ self.horizontalLayout_5 = QHBoxLayout(self.widget_4)
+ self.horizontalLayout_5.setObjectName(u"horizontalLayout_5")
+ self.csv_edit = QLineEdit(self.widget_4)
+ self.csv_edit.setObjectName(u"csv_edit")
+
+ self.horizontalLayout_5.addWidget(self.csv_edit)
+
+ self.csv_edit_button = QPushButton(self.widget_4)
+ self.csv_edit_button.setObjectName(u"csv_edit_button")
+
+ self.horizontalLayout_5.addWidget(self.csv_edit_button)
+
+ self.gridLayout.addWidget(self.widget_4, 5, 2, 1, 1)
+
+ self.widget_5 = QWidget(RegeltestSave)
+ self.widget_5.setObjectName(u"widget_5")
+ self.horizontalLayout_6 = QHBoxLayout(self.widget_5)
+ self.horizontalLayout_6.setObjectName(u"horizontalLayout_6")
+ self.fontsize_spinBox = QSpinBox(self.widget_5)
+ self.fontsize_spinBox.setObjectName(u"fontsize_spinBox")
+ self.fontsize_spinBox.setMinimum(9)
+ self.fontsize_spinBox.setMaximum(15)
+ self.fontsize_spinBox.setValue(11)
+
+ self.horizontalLayout_6.addWidget(self.fontsize_spinBox)
+
+ self.gridLayout.addWidget(self.widget_5, 7, 2, 1, 1)
+
+ self.regeltest_archive_checkBox = QCheckBox(RegeltestSave)
+ self.regeltest_archive_checkBox.setObjectName(u"regeltest_archive_checkBox")
+ self.regeltest_archive_checkBox.setChecked(True)
+
+ self.gridLayout.addWidget(self.regeltest_archive_checkBox, 8, 0, 1, 3)
QWidget.setTabOrder(self.title_edit, self.icon_path_edit)
QWidget.setTabOrder(self.icon_path_edit, self.icon_edit_button)
- QWidget.setTabOrder(self.icon_edit_button, self.output_edit)
- QWidget.setTabOrder(self.output_edit, self.output_edit_button)
- QWidget.setTabOrder(self.output_edit_button, self.widget_3)
+ QWidget.setTabOrder(self.icon_edit_button, self.pdf_edit)
+ QWidget.setTabOrder(self.pdf_edit, self.pdf_edit_button)
+ QWidget.setTabOrder(self.pdf_edit_button, self.widget_3)
self.retranslateUi(RegeltestSave)
self.buttonBox.accepted.connect(RegeltestSave.accept)
@@ -147,16 +180,20 @@ def setupUi(self, RegeltestSave):
def retranslateUi(self, RegeltestSave):
RegeltestSave.setWindowTitle(QCoreApplication.translate("RegeltestSave", u"Save Regeltest", None))
- self.label.setText(QCoreApplication.translate("RegeltestSave", u"Titel", None))
- self.output_edit_button.setText(QCoreApplication.translate("RegeltestSave", u"Ausw\u00e4hlen", None))
- self.label_3.setText(QCoreApplication.translate("RegeltestSave", u"Speicherort", None))
- self.label_2.setText(QCoreApplication.translate("RegeltestSave", u"Iconpfad", None))
+ self.pdf_edit_button.setText(QCoreApplication.translate("RegeltestSave", u"Ausw\u00e4hlen", None))
self.activate_mc_button.setText(
QCoreApplication.translate("RegeltestSave", u"Alle Multiple-Choice aktivieren", None))
self.deactivate_mc_button.setText(
QCoreApplication.translate("RegeltestSave", u"Alle Multiple-Choice deaktivieren", None))
- self.fontsize_spinBox.setSuffix(QCoreApplication.translate("RegeltestSave", u" pt", None))
+ self.label_2.setText(QCoreApplication.translate("RegeltestSave", u"Iconpfad", None))
+ self.label_3.setText(QCoreApplication.translate("RegeltestSave", u"Speicherort PDF", None))
+ self.label.setText(QCoreApplication.translate("RegeltestSave", u"Titel", None))
self.icon_edit_button.setText(QCoreApplication.translate("RegeltestSave", u"Ausw\u00e4hlen", None))
self.label_4.setText(QCoreApplication.translate("RegeltestSave", u"Schriftgr\u00f6\u00dfe", None))
+ self.label_5.setText(QCoreApplication.translate("RegeltestSave", u"Speicherort CSV", None))
+ self.csv_edit_button.setText(QCoreApplication.translate("RegeltestSave", u"Ausw\u00e4hlen", None))
+ self.fontsize_spinBox.setSuffix(QCoreApplication.translate("RegeltestSave", u"pt", None))
+ self.regeltest_archive_checkBox.setText(
+ QCoreApplication.translate("RegeltestSave", u"Regeltest zus\u00e4tzlich im Archiv speichern?", None))
# retranslateUi