further prototyping, added first DB interactions

This commit is contained in:
2026-04-23 15:57:39 +02:00
parent e4ebb1ee7f
commit c5aadd502d
12 changed files with 1196 additions and 283 deletions

View File

@@ -1,28 +1,45 @@
# %%
import dataclasses as dc
import enum
from PySide6.QtCore import QDate, Qt
class FormFieldType(enum.StrEnum):
TEXT = enum.auto()
LONGTEXT = enum.auto()
DATE = enum.auto()
DATETIME = enum.auto()
# %%
@dc.dataclass(slots=True)
class Address:
street: str
number: int
postal_code: str
city: str
class FormField:
key: str
label: str
type: FormFieldType
required: bool
def export(self):
data = {}
for f in dc.fields(self):
val = getattr(self, f.name)
if f.type is int:
val = str(val)
data[f.name] = val
return data
def __post_init__(self) -> None:
self.label = self.label.strip()
if not self.label.endswith(":"):
self.label += ":"
if self.required:
self.label += "*"
# %%
addr = Address("Teststraße", 202, "09111", "Chemnitz")
FormField("name", "Projektbeschreibung", FormFieldType.LONGTEXT, required=True)
# %%
FormField("name", "Projektbeschreibung:", FormFieldType.LONGTEXT, required=True)
# %%
FormField("name", "Projektbeschreibung", FormFieldType.LONGTEXT, required=False)
# %%
FormField("name", "Projektbeschreibung:", FormFieldType.LONGTEXT, required=False)
# %%
addr.export()
# %%
set_date = QDate.fromString("26.07.2026", "dd.MM.yyyy")
# %%
Qt.Tet