From 0aed454cd8ff43904706a15e01fb7cec8d33db70 Mon Sep 17 00:00:00 2001 From: Vitali Graf Date: Thu, 17 Jul 2025 19:12:41 +0200 Subject: [PATCH] Kleine Anpassungen im PdfProjectSettings --- src/conf.py | 36 +++++++--- src/ui/AppSettings.py | 2 +- src/ui/AppSettings.ui | 144 +++++++++++++++++++-------------------- src/ui/AppSettings_ui.py | 82 +++++++++++----------- 4 files changed, 139 insertions(+), 125 deletions(-) diff --git a/src/conf.py b/src/conf.py index 5e33071..dd3b703 100644 --- a/src/conf.py +++ b/src/conf.py @@ -2,11 +2,17 @@ from os import path from pathlib import Path from sys import platform from typing import Tuple, Type +from pydantic import Field from pydantic_yaml import to_yaml_str, parse_yaml_file_as +from enum import Enum +import logging from pydantic import BaseModel from pydantic_settings import BaseSettings, PydanticBaseSettingsSource, SettingsConfigDict, JsonConfigSettingsSource + +logger = logging.getLogger(__name__) + app_name = "DocuMentor" @@ -54,7 +60,15 @@ class XslDir(BaseModel): id: int name: str path_to_root_dir: Path - + + +class SSLMode(str, Enum): + DISABLE = "disable" + ALLOW = "allow" + PREFER = "prefer" + REQUIRE = "require" + VERIFY_CA = "verify-ca" + VERIFY_FULL = "verify-full" class PostgreSqlDb(BaseModel): id: int @@ -64,19 +78,19 @@ class PostgreSqlDb(BaseModel): database: str username: str password: str - ssl_mode: str = "prefer" # disable, allow, prefer, require, verify-ca, verify-full + ssl_mode: SSLMode = SSLMode.PREFER class PdfProject(BaseModel): - id: int - name: str - project_dir: Path - java_vm_id: int - diff_pdf_id: int - saxon_jar_id: int - apache_fop_id: int - xsl_dir_id: int - postgre_sql_db_id: int + id: int = Field(..., description="Eindeutige Projekt-ID", gt=0) + name: str = Field(..., description="Projekt-Name", min_length=1, max_length=255) + project_dir: Path = Field(..., description="Pfad zum Projekt-Verzeichnis") + java_vm_id: int = Field(..., description="ID der Java VM", gt=0) + diff_pdf_id: int = Field(..., description="ID der diff-pdf Konfiguration", gt=0) + saxon_jar_id: int = Field(..., description="ID der Saxon JAR Konfiguration", gt=0) + apache_fop_id: int = Field(..., description="ID der Apache FOP Konfiguration", gt=0) + xsl_dir_id: int = Field(..., description="ID des XSL-Verzeichnisses", gt=0) + postgre_sql_db_id: int = Field(..., description="ID der PostgreSQL Datenbank", gt=0) def getXsl(self) -> str: global app_settings diff --git a/src/ui/AppSettings.py b/src/ui/AppSettings.py index ceb318f..7169912 100644 --- a/src/ui/AppSettings.py +++ b/src/ui/AppSettings.py @@ -465,7 +465,7 @@ class AppSettingsDlg(QDialog): saxon_jar_id=project_data['saxon_jar_id'] if project_data['saxon_jar_id'] != -1 else 1, apache_fop_id=project_data['apache_fop_id'] if project_data['apache_fop_id'] != -1 else 1, xsl_dir_id=project_data['xsl_dir_id'] if project_data['xsl_dir_id'] != -1 else 1, - default_xslt_params={} + postgre_sql_db_id=project_data['postgre_sql_db_id'] if project_data['postgre_sql_db_id'] != -1 else 1, ) self.temp_pdf_projects.append(new_project) diff --git a/src/ui/AppSettings.ui b/src/ui/AppSettings.ui index ad57802..0cccdec 100644 --- a/src/ui/AppSettings.ui +++ b/src/ui/AppSettings.ui @@ -374,6 +374,78 @@ + + + PostgreSQL + + + + + + 5 + + + + + + + + + + + + + 0 + 0 + + + + QFrame::Shape::NoFrame + + + QFrame::Shadow::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Hinzufügen + + + + + + + + + + false + + + Entfernen + + + + + + + + + + + PDF-Projekte @@ -448,78 +520,6 @@ - - - PostgreSQL - - - - - - 5 - - - - - - - - - - - - - 0 - 0 - - - - QFrame::Shape::NoFrame - - - QFrame::Shadow::Raised - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - Hinzufügen - - - - - - - - - - false - - - Entfernen - - - - - - - - - - - diff --git a/src/ui/AppSettings_ui.py b/src/ui/AppSettings_ui.py index 025f68c..4307ac4 100644 --- a/src/ui/AppSettings_ui.py +++ b/src/ui/AppSettings_ui.py @@ -226,44 +226,6 @@ class Ui_Dialog(object): self.verticalLayout_6.addWidget(self.frame_5) self.tabSettings.addTab(self.tabDiffPdf, "") - self.tabPdfProject = QWidget() - self.tabPdfProject.setObjectName(u"tabPdfProject") - self.verticalLayout_7 = QVBoxLayout(self.tabPdfProject) - self.verticalLayout_7.setObjectName(u"verticalLayout_7") - self.tablePdfProjects = QTableWidget(self.tabPdfProject) - if (self.tablePdfProjects.columnCount() < 7): - self.tablePdfProjects.setColumnCount(7) - self.tablePdfProjects.setObjectName(u"tablePdfProjects") - self.tablePdfProjects.setColumnCount(7) - - self.verticalLayout_7.addWidget(self.tablePdfProjects) - - self.frame_6 = QFrame(self.tabPdfProject) - self.frame_6.setObjectName(u"frame_6") - sizePolicy.setHeightForWidth(self.frame_6.sizePolicy().hasHeightForWidth()) - self.frame_6.setSizePolicy(sizePolicy) - self.frame_6.setFrameShape(QFrame.Shape.NoFrame) - self.frame_6.setFrameShadow(QFrame.Shadow.Raised) - self.horizontalLayout_6 = QHBoxLayout(self.frame_6) - self.horizontalLayout_6.setObjectName(u"horizontalLayout_6") - self.horizontalLayout_6.setContentsMargins(0, 0, 0, 0) - self.addProject = QPushButton(self.frame_6) - self.addProject.setObjectName(u"addProject") - self.addProject.setIcon(icon) - - self.horizontalLayout_6.addWidget(self.addProject) - - self.removeProject = QPushButton(self.frame_6) - self.removeProject.setObjectName(u"removeProject") - self.removeProject.setEnabled(False) - self.removeProject.setIcon(icon1) - - self.horizontalLayout_6.addWidget(self.removeProject) - - - self.verticalLayout_7.addWidget(self.frame_6) - - self.tabSettings.addTab(self.tabPdfProject, "") self.tabPostgreSql = QWidget() self.tabPostgreSql.setObjectName(u"tabPostgreSql") self.verticalLayout_8 = QVBoxLayout(self.tabPostgreSql) @@ -302,6 +264,44 @@ class Ui_Dialog(object): self.verticalLayout_8.addWidget(self.frame_7) self.tabSettings.addTab(self.tabPostgreSql, "") + self.tabPdfProject = QWidget() + self.tabPdfProject.setObjectName(u"tabPdfProject") + self.verticalLayout_7 = QVBoxLayout(self.tabPdfProject) + self.verticalLayout_7.setObjectName(u"verticalLayout_7") + self.tablePdfProjects = QTableWidget(self.tabPdfProject) + if (self.tablePdfProjects.columnCount() < 7): + self.tablePdfProjects.setColumnCount(7) + self.tablePdfProjects.setObjectName(u"tablePdfProjects") + self.tablePdfProjects.setColumnCount(7) + + self.verticalLayout_7.addWidget(self.tablePdfProjects) + + self.frame_6 = QFrame(self.tabPdfProject) + self.frame_6.setObjectName(u"frame_6") + sizePolicy.setHeightForWidth(self.frame_6.sizePolicy().hasHeightForWidth()) + self.frame_6.setSizePolicy(sizePolicy) + self.frame_6.setFrameShape(QFrame.Shape.NoFrame) + self.frame_6.setFrameShadow(QFrame.Shadow.Raised) + self.horizontalLayout_6 = QHBoxLayout(self.frame_6) + self.horizontalLayout_6.setObjectName(u"horizontalLayout_6") + self.horizontalLayout_6.setContentsMargins(0, 0, 0, 0) + self.addProject = QPushButton(self.frame_6) + self.addProject.setObjectName(u"addProject") + self.addProject.setIcon(icon) + + self.horizontalLayout_6.addWidget(self.addProject) + + self.removeProject = QPushButton(self.frame_6) + self.removeProject.setObjectName(u"removeProject") + self.removeProject.setEnabled(False) + self.removeProject.setIcon(icon1) + + self.horizontalLayout_6.addWidget(self.removeProject) + + + self.verticalLayout_7.addWidget(self.frame_6) + + self.tabSettings.addTab(self.tabPdfProject, "") self.verticalLayout.addWidget(self.tabSettings) @@ -341,11 +341,11 @@ class Ui_Dialog(object): self.addDiffPdf.setText(QCoreApplication.translate("Dialog", u"Hinzuf\u00fcgen", None)) self.removeDiffPdf.setText(QCoreApplication.translate("Dialog", u"Entfernen", None)) self.tabSettings.setTabText(self.tabSettings.indexOf(self.tabDiffPdf), QCoreApplication.translate("Dialog", u"Diff-PDF", None)) - self.addProject.setText(QCoreApplication.translate("Dialog", u"Hinzuf\u00fcgen", None)) - self.removeProject.setText(QCoreApplication.translate("Dialog", u"Entfernen", None)) - self.tabSettings.setTabText(self.tabSettings.indexOf(self.tabPdfProject), QCoreApplication.translate("Dialog", u"PDF-Projekte", None)) self.addPostgreSql.setText(QCoreApplication.translate("Dialog", u"Hinzuf\u00fcgen", None)) self.removePostgreSql.setText(QCoreApplication.translate("Dialog", u"Entfernen", None)) self.tabSettings.setTabText(self.tabSettings.indexOf(self.tabPostgreSql), QCoreApplication.translate("Dialog", u"PostgreSQL", None)) + self.addProject.setText(QCoreApplication.translate("Dialog", u"Hinzuf\u00fcgen", None)) + self.removeProject.setText(QCoreApplication.translate("Dialog", u"Entfernen", None)) + self.tabSettings.setTabText(self.tabSettings.indexOf(self.tabPdfProject), QCoreApplication.translate("Dialog", u"PDF-Projekte", None)) # retranslateUi