Kleine Anpassungen im PdfProjectSettings

This commit is contained in:
2025-07-17 19:12:41 +02:00
parent 91ae941d03
commit 0aed454cd8
4 changed files with 139 additions and 125 deletions
+25 -11
View File
@@ -2,11 +2,17 @@ from os import path
from pathlib import Path from pathlib import Path
from sys import platform from sys import platform
from typing import Tuple, Type from typing import Tuple, Type
from pydantic import Field
from pydantic_yaml import to_yaml_str, parse_yaml_file_as from pydantic_yaml import to_yaml_str, parse_yaml_file_as
from enum import Enum
import logging
from pydantic import BaseModel from pydantic import BaseModel
from pydantic_settings import BaseSettings, PydanticBaseSettingsSource, SettingsConfigDict, JsonConfigSettingsSource from pydantic_settings import BaseSettings, PydanticBaseSettingsSource, SettingsConfigDict, JsonConfigSettingsSource
logger = logging.getLogger(__name__)
app_name = "DocuMentor" app_name = "DocuMentor"
@@ -54,7 +60,15 @@ class XslDir(BaseModel):
id: int id: int
name: str name: str
path_to_root_dir: Path 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): class PostgreSqlDb(BaseModel):
id: int id: int
@@ -64,19 +78,19 @@ class PostgreSqlDb(BaseModel):
database: str database: str
username: str username: str
password: str password: str
ssl_mode: str = "prefer" # disable, allow, prefer, require, verify-ca, verify-full ssl_mode: SSLMode = SSLMode.PREFER
class PdfProject(BaseModel): class PdfProject(BaseModel):
id: int id: int = Field(..., description="Eindeutige Projekt-ID", gt=0)
name: str name: str = Field(..., description="Projekt-Name", min_length=1, max_length=255)
project_dir: Path project_dir: Path = Field(..., description="Pfad zum Projekt-Verzeichnis")
java_vm_id: int java_vm_id: int = Field(..., description="ID der Java VM", gt=0)
diff_pdf_id: int diff_pdf_id: int = Field(..., description="ID der diff-pdf Konfiguration", gt=0)
saxon_jar_id: int saxon_jar_id: int = Field(..., description="ID der Saxon JAR Konfiguration", gt=0)
apache_fop_id: int apache_fop_id: int = Field(..., description="ID der Apache FOP Konfiguration", gt=0)
xsl_dir_id: int xsl_dir_id: int = Field(..., description="ID des XSL-Verzeichnisses", gt=0)
postgre_sql_db_id: int postgre_sql_db_id: int = Field(..., description="ID der PostgreSQL Datenbank", gt=0)
def getXsl(self) -> str: def getXsl(self) -> str:
global app_settings global app_settings
+1 -1
View File
@@ -465,7 +465,7 @@ class AppSettingsDlg(QDialog):
saxon_jar_id=project_data['saxon_jar_id'] if project_data['saxon_jar_id'] != -1 else 1, 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, 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, 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) self.temp_pdf_projects.append(new_project)
+72 -72
View File
@@ -374,6 +374,78 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="tabPostgreSql">
<attribute name="title">
<string>PostgreSQL</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_8">
<item>
<widget class="QTableWidget" name="tablePostgreSqlDbs">
<property name="columnCount">
<number>5</number>
</property>
<column/>
<column/>
<column/>
<column/>
<column/>
</widget>
</item>
<item>
<widget class="QFrame" name="frame_7">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::Shape::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Shadow::Raised</enum>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QPushButton" name="addPostgreSql">
<property name="text">
<string>Hinzufügen</string>
</property>
<property name="icon">
<iconset theme="QIcon::ThemeIcon::ListAdd"/>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="removePostgreSql">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Entfernen</string>
</property>
<property name="icon">
<iconset theme="QIcon::ThemeIcon::ListRemove"/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tabPdfProject"> <widget class="QWidget" name="tabPdfProject">
<attribute name="title"> <attribute name="title">
<string>PDF-Projekte</string> <string>PDF-Projekte</string>
@@ -448,78 +520,6 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="tabPostgreSql">
<attribute name="title">
<string>PostgreSQL</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_8">
<item>
<widget class="QTableWidget" name="tablePostgreSqlDbs">
<property name="columnCount">
<number>5</number>
</property>
<column/>
<column/>
<column/>
<column/>
<column/>
</widget>
</item>
<item>
<widget class="QFrame" name="frame_7">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::Shape::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Shadow::Raised</enum>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QPushButton" name="addPostgreSql">
<property name="text">
<string>Hinzufügen</string>
</property>
<property name="icon">
<iconset theme="QIcon::ThemeIcon::ListAdd"/>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="removePostgreSql">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Entfernen</string>
</property>
<property name="icon">
<iconset theme="QIcon::ThemeIcon::ListRemove"/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget> </widget>
</item> </item>
<item> <item>
+41 -41
View File
@@ -226,44 +226,6 @@ class Ui_Dialog(object):
self.verticalLayout_6.addWidget(self.frame_5) self.verticalLayout_6.addWidget(self.frame_5)
self.tabSettings.addTab(self.tabDiffPdf, "") 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 = QWidget()
self.tabPostgreSql.setObjectName(u"tabPostgreSql") self.tabPostgreSql.setObjectName(u"tabPostgreSql")
self.verticalLayout_8 = QVBoxLayout(self.tabPostgreSql) self.verticalLayout_8 = QVBoxLayout(self.tabPostgreSql)
@@ -302,6 +264,44 @@ class Ui_Dialog(object):
self.verticalLayout_8.addWidget(self.frame_7) self.verticalLayout_8.addWidget(self.frame_7)
self.tabSettings.addTab(self.tabPostgreSql, "") 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) self.verticalLayout.addWidget(self.tabSettings)
@@ -341,11 +341,11 @@ class Ui_Dialog(object):
self.addDiffPdf.setText(QCoreApplication.translate("Dialog", u"Hinzuf\u00fcgen", None)) self.addDiffPdf.setText(QCoreApplication.translate("Dialog", u"Hinzuf\u00fcgen", None))
self.removeDiffPdf.setText(QCoreApplication.translate("Dialog", u"Entfernen", 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.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.addPostgreSql.setText(QCoreApplication.translate("Dialog", u"Hinzuf\u00fcgen", None))
self.removePostgreSql.setText(QCoreApplication.translate("Dialog", u"Entfernen", 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.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 # retranslateUi