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 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
+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,
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)
+72 -72
View File
@@ -374,6 +374,78 @@
</item>
</layout>
</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">
<attribute name="title">
<string>PDF-Projekte</string>
@@ -448,78 +520,6 @@
</item>
</layout>
</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>
</item>
<item>
+41 -41
View File
@@ -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