Config aangepasst
Project-Dialog um Postgres DB erweitert
This commit is contained in:
+10
-3
@@ -3,7 +3,6 @@ from pathlib import Path
|
|||||||
from sys import platform
|
from sys import platform
|
||||||
from typing import Tuple, Type
|
from typing import Tuple, Type
|
||||||
from pydantic_yaml import to_yaml_str, parse_yaml_file_as
|
from pydantic_yaml import to_yaml_str, parse_yaml_file_as
|
||||||
import polars as pl
|
|
||||||
|
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from pydantic_settings import BaseSettings, PydanticBaseSettingsSource, SettingsConfigDict, JsonConfigSettingsSource
|
from pydantic_settings import BaseSettings, PydanticBaseSettingsSource, SettingsConfigDict, JsonConfigSettingsSource
|
||||||
@@ -77,7 +76,7 @@ class PdfProject(BaseModel):
|
|||||||
saxon_jar_id: int
|
saxon_jar_id: int
|
||||||
apache_fop_id: int
|
apache_fop_id: int
|
||||||
xsl_dir_id: int
|
xsl_dir_id: int
|
||||||
default_xslt_params: dict[str, str] = {}
|
postgre_sql_db_id: int
|
||||||
|
|
||||||
def getXsl(self) -> str:
|
def getXsl(self) -> str:
|
||||||
global app_settings
|
global app_settings
|
||||||
@@ -109,6 +108,12 @@ class PdfProject(BaseModel):
|
|||||||
|
|
||||||
return value[0] if len(value) else ""
|
return value[0] if len(value) else ""
|
||||||
|
|
||||||
|
def getPostgreSqlDb(self) -> str:
|
||||||
|
global app_settings
|
||||||
|
value = [x.name for x in app_settings.postgresql_dbs if x.id == self.postgre_sql_db_id]
|
||||||
|
|
||||||
|
return value[0] if len(value) else ""
|
||||||
|
|
||||||
|
|
||||||
class AppSettings(BaseSettings):
|
class AppSettings(BaseSettings):
|
||||||
java_vms: list[JavaVm] = []
|
java_vms: list[JavaVm] = []
|
||||||
@@ -155,18 +160,20 @@ class XslFile(BaseModel):
|
|||||||
id: tuple
|
id: tuple
|
||||||
bez: str
|
bez: str
|
||||||
xsl_file: Path
|
xsl_file: Path
|
||||||
|
xslt_params: dict[str, str] = {}
|
||||||
xmls: list[Xml] = []
|
xmls: list[Xml] = []
|
||||||
|
|
||||||
|
|
||||||
class TreeNode(BaseModel):
|
class TreeNode(BaseModel):
|
||||||
id: tuple
|
id: tuple
|
||||||
bez: str
|
bez: str
|
||||||
|
xslt_params: dict[str, str] = {}
|
||||||
children: list["TreeNode|XslFile"]
|
children: list["TreeNode|XslFile"]
|
||||||
|
|
||||||
|
|
||||||
class PdfProjectSettings(BaseModel):
|
class PdfProjectSettings(BaseModel):
|
||||||
"""
|
"""
|
||||||
Speichert Projekt-Einstellungen direkt im Ordner des Projekts in einer Klartextdatei YAML
|
Speichert die Projekteinstellungen direkt im Projektordner in einer .yaml-Datei.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
nodes: list[TreeNode] = []
|
nodes: list[TreeNode] = []
|
||||||
|
|||||||
@@ -580,7 +580,7 @@ class MainWindow(QMainWindow):
|
|||||||
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,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Erstelle Projekt-Ordnerstruktur
|
# Erstelle Projekt-Ordnerstruktur
|
||||||
|
|||||||
+21
-13
@@ -70,34 +70,37 @@ class PdfProjectDlg(QDialog):
|
|||||||
# Java VM ComboBox
|
# Java VM ComboBox
|
||||||
self.ui.cB_JavaVm.clear()
|
self.ui.cB_JavaVm.clear()
|
||||||
for java_vm in app_settings.java_vms:
|
for java_vm in app_settings.java_vms:
|
||||||
display_text = f"Java VM {java_vm.version}"
|
self.ui.cB_JavaVm.addItem(java_vm.version, java_vm.id)
|
||||||
self.ui.cB_JavaVm.addItem(display_text, java_vm.id)
|
|
||||||
if not app_settings.java_vms:
|
if not app_settings.java_vms:
|
||||||
self.ui.cB_JavaVm.addItem("Keine Java VMs konfiguriert", -1)
|
self.ui.cB_JavaVm.addItem("Keine Java VMs konfiguriert", -1)
|
||||||
|
|
||||||
# Saxon Jar ComboBox
|
# Saxon Jar ComboBox
|
||||||
self.ui.cB_SaxonJar.clear()
|
self.ui.cB_SaxonJar.clear()
|
||||||
for saxon_jar in app_settings.saxon_jars:
|
for saxon_jar in app_settings.saxon_jars:
|
||||||
display_text = f"Saxon {saxon_jar.version}"
|
self.ui.cB_SaxonJar.addItem(saxon_jar.version, saxon_jar.id)
|
||||||
self.ui.cB_SaxonJar.addItem(display_text, saxon_jar.id)
|
|
||||||
if not app_settings.saxon_jars:
|
if not app_settings.saxon_jars:
|
||||||
self.ui.cB_SaxonJar.addItem("Keine Saxon JARs konfiguriert", -1)
|
self.ui.cB_SaxonJar.addItem("Keine Saxon JARs konfiguriert", -1)
|
||||||
|
|
||||||
# Apache FOP ComboBox
|
# Apache FOP ComboBox
|
||||||
self.ui.cB_ApacheFop.clear()
|
self.ui.cB_ApacheFop.clear()
|
||||||
for apache_fop in app_settings.apache_fops:
|
for apache_fop in app_settings.apache_fops:
|
||||||
display_text = f"Apache FOP {apache_fop.version}"
|
self.ui.cB_ApacheFop.addItem(apache_fop.version, apache_fop.id)
|
||||||
self.ui.cB_ApacheFop.addItem(display_text, apache_fop.id)
|
|
||||||
if not app_settings.apache_fops:
|
if not app_settings.apache_fops:
|
||||||
self.ui.cB_ApacheFop.addItem("Keine Apache FOP-Instanzen konfiguriert", -1)
|
self.ui.cB_ApacheFop.addItem("Keine Apache FOP-Instanzen konfiguriert", -1)
|
||||||
|
|
||||||
# diff-pdf ComboBox
|
# diff-pdf ComboBox
|
||||||
self.ui.comboBox.clear()
|
self.ui.cB_Diff_Pdf.clear()
|
||||||
for diff_pdf in app_settings.diff_pdfs:
|
for postgres_db in app_settings.diff_pdfs:
|
||||||
display_text = f"diff-pdf {diff_pdf.version}"
|
self.ui.cB_Diff_Pdf.addItem(postgres_db.version, postgres_db.id)
|
||||||
self.ui.comboBox.addItem(display_text, diff_pdf.id)
|
|
||||||
if not app_settings.diff_pdfs:
|
if not app_settings.diff_pdfs:
|
||||||
self.ui.comboBox.addItem("Keine diff-pdf-Instanzen konfiguriert", -1)
|
self.ui.cB_Diff_Pdf.addItem("Keine diff-pdf-Instanzen konfiguriert", -1)
|
||||||
|
|
||||||
|
# Postgres ComboBox
|
||||||
|
self.ui.cB_Postgres.clear()
|
||||||
|
for postgres_db in app_settings.postgresql_dbs:
|
||||||
|
self.ui.cB_Postgres.addItem(postgres_db.name, postgres_db.id)
|
||||||
|
if not app_settings.postgresql_dbs:
|
||||||
|
self.ui.cB_Postgres.addItem("Keine Postgres-Datenbanken konfiguriert", -1)
|
||||||
|
|
||||||
def _load_project_data(self):
|
def _load_project_data(self):
|
||||||
"""Lädt bestehende Projektdaten in die Eingabefelder."""
|
"""Lädt bestehende Projektdaten in die Eingabefelder."""
|
||||||
@@ -125,7 +128,10 @@ class PdfProjectDlg(QDialog):
|
|||||||
self._select_combo_by_data(self.ui.cB_ApacheFop, self.project_data['apache_fop_id'])
|
self._select_combo_by_data(self.ui.cB_ApacheFop, self.project_data['apache_fop_id'])
|
||||||
|
|
||||||
if 'diff_pdf_id' in self.project_data:
|
if 'diff_pdf_id' in self.project_data:
|
||||||
self._select_combo_by_data(self.ui.comboBox, self.project_data['diff_pdf_id'])
|
self._select_combo_by_data(self.ui.cB_Diff_Pdf, self.project_data['diff_pdf_id'])
|
||||||
|
|
||||||
|
if 'postgre_sql_db_id' in self.project_data:
|
||||||
|
self._select_combo_by_data(self.ui.cB_Postgres, self.project_data['postgre_sql_db_id'])
|
||||||
|
|
||||||
def _select_combo_by_data(self, combo_box, data_value):
|
def _select_combo_by_data(self, combo_box, data_value):
|
||||||
"""
|
"""
|
||||||
@@ -219,6 +225,7 @@ class PdfProjectDlg(QDialog):
|
|||||||
)
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
# Alle Validierungen bestanden
|
# Alle Validierungen bestanden
|
||||||
self.accept()
|
self.accept()
|
||||||
|
|
||||||
@@ -236,7 +243,8 @@ class PdfProjectDlg(QDialog):
|
|||||||
'java_vm_id': self.ui.cB_JavaVm.currentData(),
|
'java_vm_id': self.ui.cB_JavaVm.currentData(),
|
||||||
'saxon_jar_id': self.ui.cB_SaxonJar.currentData(),
|
'saxon_jar_id': self.ui.cB_SaxonJar.currentData(),
|
||||||
'apache_fop_id': self.ui.cB_ApacheFop.currentData(),
|
'apache_fop_id': self.ui.cB_ApacheFop.currentData(),
|
||||||
'diff_pdf_id': self.ui.comboBox.currentData()
|
'diff_pdf_id': self.ui.cB_Diff_Pdf.currentData(),
|
||||||
|
'postgre_sql_db_id': self.ui.cB_Postgres.currentData()
|
||||||
}
|
}
|
||||||
|
|
||||||
def _configure_edit_mode(self):
|
def _configure_edit_mode(self):
|
||||||
|
|||||||
+12
-2
@@ -7,7 +7,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>608</width>
|
<width>608</width>
|
||||||
<height>269</height>
|
<height>299</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
@@ -116,7 +116,17 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="6" column="1">
|
<item row="6" column="1">
|
||||||
<widget class="QComboBox" name="comboBox"/>
|
<widget class="QComboBox" name="cB_Diff_Pdf"/>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="0">
|
||||||
|
<widget class="QLabel" name="label_8">
|
||||||
|
<property name="text">
|
||||||
|
<string>Postgres:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="1">
|
||||||
|
<widget class="QComboBox" name="cB_Postgres"/>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
|||||||
+15
-4
@@ -24,7 +24,7 @@ class Ui_projectDlg(object):
|
|||||||
def setupUi(self, projectDlg):
|
def setupUi(self, projectDlg):
|
||||||
if not projectDlg.objectName():
|
if not projectDlg.objectName():
|
||||||
projectDlg.setObjectName(u"projectDlg")
|
projectDlg.setObjectName(u"projectDlg")
|
||||||
projectDlg.resize(608, 269)
|
projectDlg.resize(608, 299)
|
||||||
self.verticalLayout = QVBoxLayout(projectDlg)
|
self.verticalLayout = QVBoxLayout(projectDlg)
|
||||||
self.verticalLayout.setObjectName(u"verticalLayout")
|
self.verticalLayout.setObjectName(u"verticalLayout")
|
||||||
self.widget = QWidget(projectDlg)
|
self.widget = QWidget(projectDlg)
|
||||||
@@ -111,10 +111,20 @@ class Ui_projectDlg(object):
|
|||||||
|
|
||||||
self.formLayout.setWidget(6, QFormLayout.ItemRole.LabelRole, self.label_7)
|
self.formLayout.setWidget(6, QFormLayout.ItemRole.LabelRole, self.label_7)
|
||||||
|
|
||||||
self.comboBox = QComboBox(self.widget)
|
self.cB_Diff_Pdf = QComboBox(self.widget)
|
||||||
self.comboBox.setObjectName(u"comboBox")
|
self.cB_Diff_Pdf.setObjectName(u"cB_Diff_Pdf")
|
||||||
|
|
||||||
self.formLayout.setWidget(6, QFormLayout.ItemRole.FieldRole, self.comboBox)
|
self.formLayout.setWidget(6, QFormLayout.ItemRole.FieldRole, self.cB_Diff_Pdf)
|
||||||
|
|
||||||
|
self.label_8 = QLabel(self.widget)
|
||||||
|
self.label_8.setObjectName(u"label_8")
|
||||||
|
|
||||||
|
self.formLayout.setWidget(7, QFormLayout.ItemRole.LabelRole, self.label_8)
|
||||||
|
|
||||||
|
self.cB_Postgres = QComboBox(self.widget)
|
||||||
|
self.cB_Postgres.setObjectName(u"cB_Postgres")
|
||||||
|
|
||||||
|
self.formLayout.setWidget(7, QFormLayout.ItemRole.FieldRole, self.cB_Postgres)
|
||||||
|
|
||||||
|
|
||||||
self.verticalLayout.addWidget(self.widget)
|
self.verticalLayout.addWidget(self.widget)
|
||||||
@@ -145,5 +155,6 @@ class Ui_projectDlg(object):
|
|||||||
self.label_5.setText(QCoreApplication.translate("projectDlg", u"Saxon Jar:", None))
|
self.label_5.setText(QCoreApplication.translate("projectDlg", u"Saxon Jar:", None))
|
||||||
self.label_6.setText(QCoreApplication.translate("projectDlg", u"Apache FOP:", None))
|
self.label_6.setText(QCoreApplication.translate("projectDlg", u"Apache FOP:", None))
|
||||||
self.label_7.setText(QCoreApplication.translate("projectDlg", u"diff-pdf:", None))
|
self.label_7.setText(QCoreApplication.translate("projectDlg", u"diff-pdf:", None))
|
||||||
|
self.label_8.setText(QCoreApplication.translate("projectDlg", u"Postgres:", None))
|
||||||
# retranslateUi
|
# retranslateUi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user