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